summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2002-09-01 21:01:12 +0000
committerkan <kan@FreeBSD.org>2002-09-01 21:01:12 +0000
commit9c10215d37debbea17e30ffcf9a283895fa095d9 (patch)
tree1c0691ebaad3ce22d9c72de48a05c005328be922 /contrib/gcc/emit-rtl.c
parent8ac78c3b49427008654e4623b5adc7b630794a2b (diff)
downloadFreeBSD-src-9c10215d37debbea17e30ffcf9a283895fa095d9.zip
FreeBSD-src-9c10215d37debbea17e30ffcf9a283895fa095d9.tar.gz
Merge FreeBSD modifications into gcc 3.2.1-prerelease:
1.2 do not create paradoxical FLOAT_MODE subregs I am not sure if this is still required. Approved by: obrien
Diffstat (limited to 'contrib/gcc/emit-rtl.c')
-rw-r--r--contrib/gcc/emit-rtl.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/contrib/gcc/emit-rtl.c b/contrib/gcc/emit-rtl.c
index 78f729a..fd8d8e4 100644
--- a/contrib/gcc/emit-rtl.c
+++ b/contrib/gcc/emit-rtl.c
@@ -357,6 +357,14 @@ gen_rtx_CONST_INT (mode, arg)
return (rtx) *slot;
}
+rtx
+gen_int_mode (c, mode)
+ HOST_WIDE_INT c;
+ enum machine_mode mode;
+{
+ return GEN_INT (trunc_int_for_mode (c, mode));
+}
+
/* CONST_DOUBLEs needs special handling because their length is known
only at run-time. */
@@ -2168,6 +2176,7 @@ widen_memory_access (memref, mode, offset)
/* Similarly for the decl. */
else if (DECL_P (expr)
&& DECL_SIZE_UNIT (expr)
+ && TREE_CODE (DECL_SIZE_UNIT (expr)) == INTEGER_CST
&& compare_tree_int (DECL_SIZE_UNIT (expr), size) >= 0
&& (! memoffset || INTVAL (memoffset) >= 0))
break;
@@ -5030,7 +5039,7 @@ init_emit_once (line_numbers)
tries to use these variables. */
for (i = - MAX_SAVED_CONST_INT; i <= MAX_SAVED_CONST_INT; i++)
const_int_rtx[i + MAX_SAVED_CONST_INT] =
- gen_rtx_raw_CONST_INT (VOIDmode, i);
+ gen_rtx_raw_CONST_INT (VOIDmode, (HOST_WIDE_INT) i);
ggc_add_rtx_root (const_int_rtx, 2 * MAX_SAVED_CONST_INT + 1);
if (STORE_FLAG_VALUE >= - MAX_SAVED_CONST_INT
OpenPOWER on IntegriCloud