diff options
author | Tom Wood <wood@gnu.org> | 1992-06-29 20:46:19 +0000 |
---|---|---|
committer | Tom Wood <wood@gnu.org> | 1992-06-29 20:46:19 +0000 |
commit | 3e72128498c6e557e19a6692dd900add55fbf21f (patch) | |
tree | 96a8200ddd48034fb6d7dfc02fe32683213e3cac /gcc | |
parent | cffed10acfb74bb77062c39b4c8f9c324be28e6d (diff) | |
download | gcc-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.md | 34 |
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"))] "" |