aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom Wood <wood@gnu.org>1992-06-29 20:46:19 +0000
committerTom Wood <wood@gnu.org>1992-06-29 20:46:19 +0000
commit3e72128498c6e557e19a6692dd900add55fbf21f (patch)
tree96a8200ddd48034fb6d7dfc02fe32683213e3cac /gcc
parentcffed10acfb74bb77062c39b4c8f9c324be28e6d (diff)
downloadgcc-3e72128498c6e557e19a6692dd900add55fbf21f.zip
gcc-3e72128498c6e557e19a6692dd900add55fbf21f.tar.gz
gcc-3e72128498c6e557e19a6692dd900add55fbf21f.tar.bz2
(prologue, epilogue, profiler, locate1, locate2): New
patterns for representing prologues and epilogues. From-SVN: r1345
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m88k/m88k.md34
1 files changed, 33 insertions, 1 deletions
diff --git a/gcc/config/m88k/m88k.md b/gcc/config/m88k/m88k.md
index 29366ab..db640b4 100644
--- a/gcc/config/m88k/m88k.md
+++ b/gcc/config/m88k/m88k.md
@@ -28,7 +28,7 @@
(define_expand "m88k_sccs_id"
[(match_operand:SI 0 "" "")]
""
- "{ static char sccs_id[] = \"@(#)m88k.md 2.2.3.6 27 Jun 1992 06:29:32\";
+ "{ static char sccs_id[] = \"@(#)m88k.md 2.2.3.13 29 Jun 1992 16:41:06\";
FAIL; }")
;; Attribute specifications
@@ -1009,6 +1009,22 @@
}"
[(set_attr "type" "branch")])
+(define_insn "locate1"
+ [(set (match_operand:SI 0 "register_operand" "r")
+ (high:SI (unspec:SI [(label_ref (match_operand 1 "" ""))] 0)))]
+ ""
+ "or.u %0,%#r0,%#hi16(%1#abdiff)")
+
+(define_insn "locate2"
+ [(parallel [(set (reg:SI 1) (pc))
+ (set (match_operand:SI 0 "register_operand" "r")
+ (lo_sum:SI (match_dup 0)
+ (unspec:SI
+ [(label_ref (match_operand 1 "" ""))] 0)))])]
+ ""
+ "bsr.n %1\;or %0,%0,%#lo16(%1#abdiff)\\n%1:"
+ [(set_attr "length" "2")])
+
;; SImode move instructions
(define_expand "movsi"
@@ -3075,6 +3091,22 @@
"jmp%. %#r1"
[(set_attr "type" "jump")])
+(define_expand "prologue"
+ [(const_int 0)]
+ ""
+ "m88k_expand_prologue (); DONE;")
+
+(define_expand "epilogue"
+ [(set (pc) (reg:SI 1))]
+ ""
+ "m88k_expand_epilogue ();")
+
+(define_insn "profiler"
+ [(unspec_volatile [(const_int 0)] 0)]
+ ""
+ ""
+ [(set_attr "length" "0")])
+
(define_insn "indirect_jump"
[(set (pc) (match_operand:SI 0 "register_operand" "r"))]
""