This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix recent i386 breakage caused by Jun, 27th changes
- To: gcc-patches at gcc dot gnu dot org
- Subject: [PATCH] Fix recent i386 breakage caused by Jun, 27th changes
- From: Jakub Jelinek <jakub at redhat dot com>
- Date: Mon, 3 Jul 2000 15:36:21 +0200
- Cc: jh at suse dot cz
- Reply-To: Jakub Jelinek <jakub at redhat dot com>
Hi!
Tue Jun 27 12:14:12 MET DST 2000 Jan Hubicka <jh@suse.cz>
will cause the i386 backend to sometimes happily emit
xorb %si, %si
and in some other cases just ICE.
We cannot optimize and x, -256 with xorb x, x if we are not sure x is
Q_REGS. This patch tries to enforce it. Ok to commit?
2000-07-03 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
of 'r'. Use q_regs_operand.
(andsi_1+2): Use q_regs_operand.
--- gcc/config/i386/i386.md.jj Sun Jul 2 10:37:13 2000
+++ gcc/config/i386/i386.md Mon Jul 3 15:13:58 2000
@@ -1853,7 +1853,7 @@
(set_attr "mode" "QI")])
(define_insn "*movstrictqi_xor"
- [(set (strict_low_part (match_operand:QI 0 "register_operand" "=r"))
+ [(set (strict_low_part (match_operand:QI 0 "q_regs_operand" "=q"))
(match_operand:QI 1 "const0_operand" "i"))
(clobber (reg:CC 17))]
"reload_completed && (!TARGET_USE_MOV0 || optimize_size)"
@@ -5000,7 +5000,7 @@
"operands[1] = gen_lowpart (HImode, operands[0]);")
(define_split
- [(set (match_operand:SI 0 "register_operand" "")
+ [(set (match_operand:SI 0 "q_regs_operand" "")
(and:SI (match_dup 0)
(const_int -256)))
(clobber (reg:CC 17))]
Jakub