diff options
author | Richard Henderson <rth@redhat.com> | 2001-06-14 13:15:19 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-06-14 13:15:19 -0700 |
commit | 68f4edf0790977a1842dbd2acf8de7febf7aa94a (patch) | |
tree | 182245d3e281a9d46c64920a2f759b5f027f5896 /gcc | |
parent | 894b7c636ab389757cc11a5197444f6252cb2303 (diff) | |
download | gcc-68f4edf0790977a1842dbd2acf8de7febf7aa94a.zip gcc-68f4edf0790977a1842dbd2acf8de7febf7aa94a.tar.gz gcc-68f4edf0790977a1842dbd2acf8de7febf7aa94a.tar.bz2 |
* config/mips/mips.md (exception_receiver): New.
From-SVN: r43379
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/mips/mips.md | 23 |
2 files changed, 26 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f99787..1e63d0d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2001-06-14 Richard Henderson <rth@redhat.com> + + * config/mips/mips.md (exception_receiver): New. + 2001-06-14 Daniel J. Berlin <dan@cgsoftware.com> * doc/gcc.texi: Update passes documentation to be more in tune diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 5b8d00e..b01e484 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -30,13 +30,14 @@ ;; Number USE ;; 0 movsi_ul ;; 1 movsi_us, get_fnaddr -;; 2 loadgp ;; 3 eh_set_return ;; 20 builtin_setjmp_setup ;; ;; UNSPEC_VOLATILE values ;; 0 blockage +;; 2 loadgp ;; 3 builtin_longjmp +;; 4 exception_receiver ;; 10 consttable_qi ;; 11 consttable_hi ;; 12 consttable_si @@ -9571,6 +9572,26 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\;j\\t%2" operands[0]); DONE; }") + +(define_insn "exception_receiver" + [(unspec_volatile [(const_int 0)] 4)] + "TARGET_ABICALLS && (mips_abi == ABI_32 || mips_abi == ABI_O64)" + "* +{ + rtx loc; + + operands[0] = pic_offset_table_rtx; + if (frame_pointer_needed) + loc = hard_frame_pointer_rtx; + else + loc = stack_pointer_rtx; + loc = plus_constant (loc, current_frame_info.args_size); + operands[1] = gen_rtx_MEM (Pmode, loc); + + return mips_move_1word (operands, insn, 0); +}" + [(set_attr "type" "load") + (set_attr "length" "8")]) ;; ;; .................... |