aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-05-24 19:48:42 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2001-05-24 17:48:42 +0000
commit0fff42224259393ee1d0631f446581e48aede6e5 (patch)
tree0e2cdaaff42879c4c38e86de22c5835502b11ff4
parent5a2136e82cfa858335a49e11603091ec7f1aab2b (diff)
downloadgcc-0fff42224259393ee1d0631f446581e48aede6e5.zip
gcc-0fff42224259393ee1d0631f446581e48aede6e5.tar.gz
gcc-0fff42224259393ee1d0631f446581e48aede6e5.tar.bz2
simplify-rtx.c (simplify_subreg): Fix CONCAT simplification; fix hard register simplification.
* simplify-rtx.c (simplify_subreg): Fix CONCAT simplification; fix hard register simplification. From-SVN: r42529
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/simplify-rtx.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 15250f6..fa80107 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index a4ca80f..621bd90 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -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);
}