diff options
author | kan <kan@FreeBSD.org> | 2002-09-01 21:01:12 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2002-09-01 21:01:12 +0000 |
commit | 9c10215d37debbea17e30ffcf9a283895fa095d9 (patch) | |
tree | 1c0691ebaad3ce22d9c72de48a05c005328be922 /contrib/gcc/emit-rtl.c | |
parent | 8ac78c3b49427008654e4623b5adc7b630794a2b (diff) | |
download | FreeBSD-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.c | 11 |
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 |