diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2003-02-26 23:09:58 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2003-02-26 23:09:58 +0000 |
commit | 65c045482b5b629a2ac5098a083f1a6566e888e8 (patch) | |
tree | bb82fd600d50271ab4fa36c3dc68debb48a0f875 /gcc/builtins.c | |
parent | c41536f56a6a1217ca42091a358992d902b7be34 (diff) | |
download | gcc-65c045482b5b629a2ac5098a083f1a6566e888e8.zip gcc-65c045482b5b629a2ac5098a083f1a6566e888e8.tar.gz gcc-65c045482b5b629a2ac5098a083f1a6566e888e8.tar.bz2 |
builtins.c (purge_builtin_constant_p): Handle subreg of constant_p_rtx too.
* builtins.c (purge_builtin_constant_p): Handle subreg of
constant_p_rtx too.
From-SVN: r63490
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 81e38db..d2505cd 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -4952,9 +4952,12 @@ purge_builtin_constant_p () for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) if (INSN_P (insn) && (set = single_set (insn)) != NULL_RTX - && GET_CODE (SET_SRC (set)) == CONSTANT_P_RTX) + && (GET_CODE (arg = SET_SRC (set)) == CONSTANT_P_RTX + || (GET_CODE (arg) == SUBREG + && (GET_CODE (arg = SUBREG_REG (arg)) + == CONSTANT_P_RTX)))) { - arg = XEXP (SET_SRC (set), 0); + arg = XEXP (arg, 0); new = CONSTANT_P (arg) ? const1_rtx : const0_rtx; validate_change (insn, &SET_SRC (set), new, 0); |