diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-03-27 11:40:27 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-03-27 11:40:27 -0700 |
commit | 0002b1a854d38d9ea0e663ca5ca82c9908e5bb8b (patch) | |
tree | f7b275c05418b1bcf6a365a669776a7cd4ba0c8f /gcc | |
parent | f18c8576634a5872b6c18e4f66bcb1acb26eebca (diff) | |
download | gcc-0002b1a854d38d9ea0e663ca5ca82c9908e5bb8b.zip gcc-0002b1a854d38d9ea0e663ca5ca82c9908e5bb8b.tar.gz gcc-0002b1a854d38d9ea0e663ca5ca82c9908e5bb8b.tar.bz2 |
* pa.md (cacheflush): New pattern.
From-SVN: r3893
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/pa/pa.md | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index ed528b4..97a82f3 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")]) |