aboutsummaryrefslogtreecommitdiff
path: root/gcc/regclass.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>1998-12-29 03:36:22 -0800
committerRichard Henderson <rth@gcc.gnu.org>1998-12-29 03:36:22 -0800
commit185ebd6c71d791ea2f333a23382589620e9bf848 (patch)
tree8baca97ed11c13d1b3be83dcd58d2863c4017a2a /gcc/regclass.c
parenteb8da8684cfdf019f0b0edfd834a479ac366f1d4 (diff)
downloadgcc-185ebd6c71d791ea2f333a23382589620e9bf848.zip
gcc-185ebd6c71d791ea2f333a23382589620e9bf848.tar.gz
gcc-185ebd6c71d791ea2f333a23382589620e9bf848.tar.bz2
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. From-SVN: r24439
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 b442cc2..489f824 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: