diff options
author | Richard Henderson <rth@redhat.com> | 2001-07-08 01:53:30 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-07-08 01:53:30 -0700 |
commit | d5d6a58b0a44b5f08fb3ccfc73719fddbb2509b6 (patch) | |
tree | 81e5dcdb5a3aadfb25d2c8ada38a25d62fcf7882 | |
parent | 25076a0731021f8a564379efc25f9a3962130558 (diff) | |
download | gcc-d5d6a58b0a44b5f08fb3ccfc73719fddbb2509b6.zip gcc-d5d6a58b0a44b5f08fb3ccfc73719fddbb2509b6.tar.gz gcc-d5d6a58b0a44b5f08fb3ccfc73719fddbb2509b6.tar.bz2 |
i386.md: Remove constraints strings from define_split and define_peephole2 patterns.
* config/i386/i386.md: Remove constraints strings from define_split
and define_peephole2 patterns.
(eh_return_si, eh_return_di): Split eh_return_1 for modes.
(eh_return): Use them.
From-SVN: r43846
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 31 |
2 files changed, 28 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1c2bcd3..8e50084 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2001-07-08 Richard Henderson <rth@redhat.com> + * config/i386/i386.md: Remove constraints strings from define_split + and define_peephole2 patterns. + (eh_return_si, eh_return_di): Split eh_return_1 for modes. + (eh_return): Use them. + +2001-07-08 Richard Henderson <rth@redhat.com> + * doc/tm.texi (Exception Handling): New subnode of Stack and Calling. Document MD_FALLBACK_FRAME_STATE_FOR. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 1743ed3..a07c169 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -8039,7 +8039,7 @@ (define_split [(set (reg 17) (compare (zero_extract - (match_operand 0 "nonimmediate_operand" "rm") + (match_operand 0 "nonimmediate_operand" "") (match_operand 1 "const_int_operand" "") (match_operand 2 "const_int_operand" "")) (const_int 0)))] @@ -13449,13 +13449,24 @@ tmp = gen_rtx_MEM (Pmode, tmp); emit_move_insn (tmp, ra); - emit_insn (gen_eh_return_1 (sa)); + if (Pmode == SImode) + emit_insn (gen_eh_return_si (sa)); + else + emit_insn (gen_eh_return_di (sa)); emit_barrier (); DONE; }) -(define_insn_and_split "eh_return_1" - [(unspec_volatile [(match_operand 0 "register_operand" "c")] 13)] +(define_insn_and_split "eh_return_si" + [(unspec_volatile [(match_operand:SI 0 "register_operand" "c")] 13)] + "" + "#" + "reload_completed" + [(const_int 1)] + "ix86_expand_epilogue (2); DONE;") + +(define_insn_and_split "eh_return_di" + [(unspec_volatile [(match_operand:DI 0 "register_operand" "c")] 13)] "" "#" "reload_completed" @@ -16608,8 +16619,8 @@ ;; lifetime information then. (define_peephole2 - [(set (match_operand:SI 0 "nonimmediate_operand" "=rm") - (not:SI (match_operand:SI 1 "nonimmediate_operand" "0")))] + [(set (match_operand:SI 0 "nonimmediate_operand" "") + (not:SI (match_operand:SI 1 "nonimmediate_operand" "")))] "!optimize_size && peep2_regno_dead_p (0, FLAGS_REG) && ((TARGET_PENTIUM @@ -16622,8 +16633,8 @@ "") (define_peephole2 - [(set (match_operand:HI 0 "nonimmediate_operand" "=rm") - (not:HI (match_operand:HI 1 "nonimmediate_operand" "0")))] + [(set (match_operand:HI 0 "nonimmediate_operand" "") + (not:HI (match_operand:HI 1 "nonimmediate_operand" "")))] "!optimize_size && peep2_regno_dead_p (0, FLAGS_REG) && ((TARGET_PENTIUM @@ -16636,8 +16647,8 @@ "") (define_peephole2 - [(set (match_operand:QI 0 "nonimmediate_operand" "=rm") - (not:QI (match_operand:QI 1 "nonimmediate_operand" "0")))] + [(set (match_operand:QI 0 "nonimmediate_operand" "") + (not:QI (match_operand:QI 1 "nonimmediate_operand" "")))] "!optimize_size && peep2_regno_dead_p (0, FLAGS_REG) && ((TARGET_PENTIUM |