summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/config/i386/i386.c25
2 files changed, 28 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f521727e76..da8f9680798 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,18 @@
+2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
+
+ PR bootstrap/44713
+ * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
+ (function_arg_advance_32): Const-ify TYPE parameter.
+ (function_arg_advance_64): Likewise. Change type of NAMED to bool.
+ (ix86_function_arg_advance): Change type of NAMED to bool.
+ (function_arg_32): Const-ify CUM and TYPE parameters.
+ (function_arg_64): Likewise. Change type of NAMED to bool.
+ (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
+ to bool.
+ (ix86_function_arg): Change type of NAMED to bool.
+ (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
+ last argument as a bool.
+
2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
* doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index d94b47f191a..8d952975818 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -5180,7 +5180,7 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, /* Argument info to initialize */
NULL. */
static enum machine_mode
-type_natural_mode (const_tree type, CUMULATIVE_ARGS *cum)
+type_natural_mode (const_tree type, const CUMULATIVE_ARGS *cum)
{
enum machine_mode mode = TYPE_MODE (type);
@@ -5937,7 +5937,8 @@ construct_container (enum machine_mode mode, enum machine_mode orig_mode,
static void
function_arg_advance_32 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
- tree type, HOST_WIDE_INT bytes, HOST_WIDE_INT words)
+ const_tree type, HOST_WIDE_INT bytes,
+ HOST_WIDE_INT words)
{
switch (mode)
{
@@ -6025,7 +6026,7 @@ function_arg_advance_32 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
static void
function_arg_advance_64 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
- tree type, HOST_WIDE_INT words, int named)
+ const_tree type, HOST_WIDE_INT words, bool named)
{
int int_nregs, sse_nregs;
@@ -6067,7 +6068,7 @@ function_arg_advance_ms_64 (CUMULATIVE_ARGS *cum, HOST_WIDE_INT bytes,
static void
ix86_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
- const_tree type, int named)
+ const_tree type, bool named)
{
HOST_WIDE_INT bytes, words;
@@ -6102,8 +6103,8 @@ ix86_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
(otherwise it is an extra parameter matching an ellipsis). */
static rtx
-function_arg_32 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
- enum machine_mode orig_mode, tree type,
+function_arg_32 (const CUMULATIVE_ARGS *cum, enum machine_mode mode,
+ enum machine_mode orig_mode, const_tree type,
HOST_WIDE_INT bytes, HOST_WIDE_INT words)
{
static bool warnedsse, warnedmmx;
@@ -6219,8 +6220,8 @@ function_arg_32 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
}
static rtx
-function_arg_64 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
- enum machine_mode orig_mode, tree type, int named)
+function_arg_64 (const CUMULATIVE_ARGS *cum, enum machine_mode mode,
+ enum machine_mode orig_mode, const_tree type, bool named)
{
/* Handle a hidden AL argument containing number of registers
for varargs x86-64 functions. */
@@ -6255,8 +6256,8 @@ function_arg_64 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
}
static rtx
-function_arg_ms_64 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
- enum machine_mode orig_mode, int named,
+function_arg_ms_64 (const CUMULATIVE_ARGS *cum, enum machine_mode mode,
+ enum machine_mode orig_mode, bool named,
HOST_WIDE_INT bytes)
{
unsigned int regno;
@@ -6314,7 +6315,7 @@ function_arg_ms_64 (CUMULATIVE_ARGS *cum, enum machine_mode mode,
static rtx
ix86_function_arg (const CUMULATIVE_ARGS *cum, enum machine_mode omode,
- const_tree type, int named)
+ const_tree type, bool named)
{
enum machine_mode mode = omode;
HOST_WIDE_INT bytes, words;
@@ -7047,7 +7048,7 @@ ix86_setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
For stdargs, we do want to skip the last named argument. */
next_cum = *cum;
if (stdarg_p (fntype))
- function_arg_advance (&next_cum, mode, type, 1);
+ ix86_function_arg_advance (&next_cum, mode, type, true);
if (cum->call_abi == MS_ABI)
setup_incoming_varargs_ms_64 (&next_cum);