summaryrefslogtreecommitdiff
path: root/gcc/regclass.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1998-12-29 11:36:22 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1998-12-29 11:36:22 +0000
commit2c776a540e4a9e3202b6f78c7dfe46020aba0bc6 (patch)
tree8baca97ed11c13d1b3be83dcd58d2863c4017a2a /gcc/regclass.c
parenta249931c7f76e7650e9372d795eef854d9c8af87 (diff)
downloadgcc-2c776a540e4a9e3202b6f78c7dfe46020aba0bc6.tar.gz
Richard Kenner <kenner@vlsi1.ultra.nyu.edu>:
* rtl.def (CONSTANT_P_RTX): Clarify commentary. * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to consider constant CONSTRUCTOR constant and to defer some cases to cse. * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX. * regclass.c (reg_scan_mark_refs, case CONST): Likewise. Richard Henderson <rth@cygnus.com> * expr.c (init_expr_once): Kill can_handle_constant_p recognition. * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24439 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regclass.c')
-rw-r--r--gcc/regclass.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/regclass.c b/gcc/regclass.c
index b442cc266be..489f8240407 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -2032,8 +2032,12 @@ reg_scan_mark_refs (x, insn, note_flag, min_regno)
code = GET_CODE (x);
switch (code)
{
- case CONST_INT:
case CONST:
+ if (GET_CODE (XEXP (x, 0)) == CONSTANT_P_RTX)
+ reg_scan_mark_refs (XEXP (XEXP (x, 0), 0), insn, note_flag, min_regno);
+ return;
+
+ case CONST_INT:
case CONST_DOUBLE:
case CC0:
case PC: