aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-07-08 01:53:30 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-07-08 01:53:30 -0700
commitd5d6a58b0a44b5f08fb3ccfc73719fddbb2509b6 (patch)
tree81e5dcdb5a3aadfb25d2c8ada38a25d62fcf7882 /gcc
parent25076a0731021f8a564379efc25f9a3962130558 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.md31
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