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