aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-02-16 19:14:09 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-02-16 14:14:09 -0500
commitb71e8e8477eb854aed39b89a3bc5f9107a4b28ee (patch)
tree7858ab0ea19963f5377cd4cabd181a6f4bba68d0 /gcc/recog.c
parent6ee71e49710c62be8d2c216c93fa412d84e7f48d (diff)
downloadgcc-b71e8e8477eb854aed39b89a3bc5f9107a4b28ee.zip
gcc-b71e8e8477eb854aed39b89a3bc5f9107a4b28ee.tar.gz
gcc-b71e8e8477eb854aed39b89a3bc5f9107a4b28ee.tar.bz2
recog.c (validate_replace_rtx): Replace in operands of ZERO_EXTRACT in SET_DEST.
* recog.c (validate_replace_rtx): Replace in operands of ZERO_EXTRACT in SET_DEST. From-SVN: r39773
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 4dab907..f778f60 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -732,8 +732,7 @@ validate_replace_rtx (from, to, insn)
return apply_change_group ();
}
-/* Try replacing every occurrence of FROM in INSN with TO. After all
- changes have been made, validate by seeing if INSN is still valid. */
+/* Try replacing every occurrence of FROM in INSN with TO. */
void
validate_replace_rtx_group (from, to, insn)
@@ -758,6 +757,14 @@ validate_replace_src (from, to, insn)
if (GET_CODE (SET_DEST (PATTERN (insn))) == MEM)
validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 0),
from, to, insn);
+ else if (GET_CODE (SET_DEST (PATTERN (insn))) == ZERO_EXTRACT)
+ {
+ validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 1),
+ from, to, insn);
+ validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 2),
+ from, to, insn);
+ }
+
return apply_change_group ();
}