aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-02-06 05:59:15 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-02-06 05:59:15 +0000
commit11b635fe000d5ab12664f33cac2305762cbf7e46 (patch)
tree1a8ab1587c0acbfddf24abc85ad6c0021b4020c3
parentace3ffcd316976e021c61c58c57a394c21b69045 (diff)
downloadgcc-11b635fe000d5ab12664f33cac2305762cbf7e46.zip
gcc-11b635fe000d5ab12664f33cac2305762cbf7e46.tar.gz
gcc-11b635fe000d5ab12664f33cac2305762cbf7e46.tar.bz2
genemit.c (gen_exp): Use const_int_rtx whenever possible.
* genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever possible. From-SVN: r77379
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/genemit.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5833a50..a1edf05 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
+ * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
+ possible.
+
+2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
+
* reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
note containing (plus (reg) (const_int)), where reg is an
eliminable reg, then perform the register elimination without
diff --git a/gcc/genemit.c b/gcc/genemit.c
index f1a2abd..00cf842 100644
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -243,6 +243,10 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used)
printf ("const1_rtx");
else if (INTVAL (x) == -1)
printf ("constm1_rtx");
+ else if (-MAX_SAVED_CONST_INT <= INTVAL (x)
+ && INTVAL (x) <= MAX_SAVED_CONST_INT)
+ printf ("const_int_rtx[MAX_SAVED_CONST_INT + (%d)]",
+ (int) INTVAL (x));
else if (INTVAL (x) == STORE_FLAG_VALUE)
printf ("const_true_rtx");
else