From 0002b1a854d38d9ea0e663ca5ca82c9908e5bb8b Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sat, 27 Mar 1993 11:40:27 -0700 Subject: [PATCH] * pa.md (cacheflush): New pattern. From-SVN: r3893 --- gcc/config/pa/pa.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index ed528b41580..97a82f3aecb 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -2897,3 +2897,14 @@ else return \"fmpysub,sgl %1,%2,%0,%5,%3\"; }") + +;; Flush the I and D cache line found at the address in operand 0. +;; This is used by the trampoline code for nested functions. +;; So long as the trampoline itself is less than 32 bytes this +;; is sufficient. +(define_insn "cacheflush" + [(unspec_volatile [(const_int 1)] 0) + (use (match_operand:SI 0 "" ""))] + "" + "fdc %0\;sync\;fic %0\;sync\;nop\;nop\;nop\;nop\;nop\;nop\;nop" + [(set_attr "length" "11")]) -- 2.30.2