summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-08 17:57:35 +0000
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-08 17:57:35 +0000
commit963bef11d45655c9a5184be654b13854923fb9d2 (patch)
tree5a6e710fcca5b53c824aa5b33417c1fe8c23136d
parentf8c48f0c0e545c50015dac92681976a1b864d208 (diff)
downloadgcc-963bef11d45655c9a5184be654b13854923fb9d2.tar.gz
PR bootstrap/46358
* config/i386/i386.c (ix86_expand_split_stack_prologue): Avoid warnings when HOST_WIDE_INT is 32 bit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166445 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ae81d678c70..9b4dccdeebf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -22,6 +22,10 @@
* caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
assert that REG is a hard register number before using it as an index.
+ PR bootstrap/46358
+ * config/i386/i386.c (ix86_expand_split_stack_prologue):
+ Avoid warnings when HOST_WIDE_INT is 32 bit.
+
2010-11-08 Eric Botcazou <ebotcazou@adacore.com>
PR target/46208
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 9efc0df689d..29e4620e4ee 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -11171,9 +11171,9 @@ ix86_expand_split_stack_prologue (void)
different function: __morestack_large. We pass the
argument size in the upper 32 bits of r10 and pass the
frame size in the lower 32 bits. */
- gcc_assert ((allocate & 0xffffffff) == allocate);
- gcc_assert (((HOST_WIDE_INT) args_size & 0xffffffff)
- == (HOST_WIDE_INT) args_size);
+ gcc_assert ((allocate & (HOST_WIDE_INT) 0xffffffff) == allocate);
+ gcc_assert (((unsigned HOST_WIDE_INT) args_size & 0xffffffff)
+ == (unsigned HOST_WIDE_INT) args_size);
if (split_stack_fn_large == NULL_RTX)
split_stack_fn_large =
@@ -11202,7 +11202,7 @@ ix86_expand_split_stack_prologue (void)
fn = reg11;
- argval = ((HOST_WIDE_INT) args_size << 32) + allocate;
+ argval = (((HOST_WIDE_INT) args_size << 16) << 16) + allocate;
emit_move_insn (reg10, GEN_INT (argval));
}
else