OSDN Git Service

* simplify-rtx.c (simplify_subreg): Fix CONCAT simplification;
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 May 2001 17:48:42 +0000 (17:48 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 May 2001 17:48:42 +0000 (17:48 +0000)
fix hard register simplification.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42529 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/simplify-rtx.c

index 15250f6..fa80107 100644 (file)
@@ -1,3 +1,8 @@
+Thu May 24 19:47:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * simplify-rtx.c (simplify_subreg): Fix CONCAT simplification;
+       fix hard register simplification.
+
 Thu May 24 00:15:17 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Add all of CPP_SPEC instead
index a4ca80f..621bd90 100644 (file)
@@ -2346,7 +2346,7 @@ simplify_subreg (outermode, op, innermode, byte)
      suppress this simplification.  If the hard register is the stack,
      frame, or argument pointer, leave this as a SUBREG.  */
 
-  if (REG_P (op) == REG
+  if (REG_P (op)
       && REGNO (op) < FIRST_PSEUDO_REGISTER
       && REGNO (op) != FRAME_POINTER_REGNUM
 #if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
@@ -2389,7 +2389,7 @@ simplify_subreg (outermode, op, innermode, byte)
       rtx part = is_realpart ? XEXP (op, 0) : XEXP (op, 1);
       unsigned int final_offset;
 
-      final_offset = SUBREG_BYTE (op) % (GET_MODE_UNIT_SIZE (innermode) / 2);
+      final_offset = byte % (GET_MODE_UNIT_SIZE (innermode) / 2);
       return simplify_subreg (outermode, part, GET_MODE (part), final_offset);
     }