This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix output_andsi3 for 64-bit hosts


The expression

  (INTVAL (operands[2]) | 0xffff) == (HOST_WIDE_INT)0xffffffff

will never be true if HOST_WIDE_INT has 64 bits since CONST_INT values are
always sign extended.

Andreas.

2004-07-25  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.c (output_andsi3): Fix last change for 64-bit
	hosts.

Index: gcc/config/m68k/m68k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68k/m68k.c,v
retrieving revision 1.136
diff -u -p -a -u -p -a -r1.136 gcc/config/m68k/m68k.c
--- gcc/config/m68k/m68k.c	24 Jul 2004 11:12:29 -0000	1.136
+++ gcc/config/m68k/m68k.c	24 Jul 2004 22:20:19 -0000
@@ -3201,7 +3201,7 @@ output_andsi3 (rtx *operands)
 {
   int logval;
   if (GET_CODE (operands[2]) == CONST_INT
-      && (INTVAL (operands[2]) | 0xffff) == (HOST_WIDE_INT)0xffffffff
+      && (INTVAL (operands[2]) | 0xffff) == -1
       && (DATA_REG_P (operands[0])
 	  || offsettable_memref_p (operands[0]))
       && !TARGET_COLDFIRE)

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]