Patch for egcs
H.J. Lu
hjl@lucon.org
Wed Apr 8 23:35:00 GMT 1998
>
> These are the testsuite results for egcs-2.91.22 on the
> i386-pc-linux-gnulibc1 system. I had to add --disable-nls to configure
> to compile egcs. What about making --disable-nls a default option for
> the texinfo configure?
>
> Peter Schmid
>
> gcc:
> gcc.sum:FAIL: gcc.c-torture/compile/980329-1.c, -O2
> /tmp/cca17739.s: Assembler messages:
> /tmp/cca17739.s:75: Error: register does not match opcode suffix
>
The bug is in egcs. However, the current binutils doesn't check
if an asm instruction is valid or not. Mine doees.
H.J.
----
Wed Apr 8 11:42:21 1998 H.J. Lu (hjl@gnu.org)
* config/i386/i386.md (movqi+1): Handle invalid QI register.
Index: config/i386/i386.md
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.1.1.11
diff -u -r1.1.1.11 i386.md
--- i386.md 1998/04/05 19:08:58 1.1.1.11
+++ i386.md 1998/04/08 18:37:53
@@ -1113,8 +1113,14 @@
&& no_labels_between_p (XEXP (link, 0), insn)
/* Make sure the reg hasn't been clobbered. */
&& ! reg_set_between_p (operands[0], XEXP (link, 0), insn))
- /* Fastest way to change a 0 to a 1. */
- return AS1 (inc%B0,%0);
+ {
+ /* Fastest way to change a 0 to a 1.
+ If inc%B0 isn't allowed, use inc%L0. */
+ if (NON_QI_REG_P (operands[0]))
+ return AS1 (inc%L0,%0);
+ else
+ return AS1 (inc%B0,%0);
+ }
/* If mov%B0 isn't allowed for one of these regs, use mov%L0. */
if (NON_QI_REG_P (operands[0]) || NON_QI_REG_P (operands[1]))
More information about the Gcc
mailing list