aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-05-19 11:51:32 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-05-19 07:51:32 -0400
commite86f9f3267b0127af29d48afc8e803c8e0028ae2 (patch)
treef1349933ad673ebcd68c11621455ddb300fa4a77 /gcc
parent30cf266f9443bc624bf965ea91f1018ac40904db (diff)
downloadgcc-e86f9f3267b0127af29d48afc8e803c8e0028ae2.zip
gcc-e86f9f3267b0127af29d48afc8e803c8e0028ae2.tar.gz
gcc-e86f9f3267b0127af29d48afc8e803c8e0028ae2.tar.bz2
recog.c (general_operand): Modify last change to allow it if reload has completed.
* recog.c (general_operand): Modify last change to allow it if reload has completed. From-SVN: r42309
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/recog.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a086e99..d859850 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Sat May 19 07:53:42 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * recog.c (general_operand): Modify last change to allow it if reload
+ has completed.
+
Sat May 19 10:23:54 CEST 2001 Jan Hubicka <jh@suse.cz>
* recog.c (general_operand): Prohibit nonzero subreg bytes on
diff --git a/gcc/recog.c b/gcc/recog.c
index 5e78336..833a122 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -961,8 +961,12 @@ general_operand (op, mode)
#endif
/* Avoid memories with nonzero SUBREG_BYTE, as offsetting the memory
may result in incorrect reference. We should simplify all valid
- subregs of MEM anyway. */
- if (SUBREG_BYTE (op) && GET_CODE (SUBREG_REG (op)) == MEM)
+ subregs of MEM anyway. But allow this after reload because we
+ might be called from cleanup_subreg_operands.
+
+ ??? This is a kludge. */
+ if (!reload_completed && SUBREG_BYTE (op) != 0
+ && GET_CODE (SUBREG_REG (op)) == MEM)
return 0;
op = SUBREG_REG (op);