summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc/config/m88k/m88k.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/egcs/gcc/config/m88k/m88k.c')
-rw-r--r--gnu/egcs/gcc/config/m88k/m88k.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gnu/egcs/gcc/config/m88k/m88k.c b/gnu/egcs/gcc/config/m88k/m88k.c
index 76b860fc907..8cb0b533139 100644
--- a/gnu/egcs/gcc/config/m88k/m88k.c
+++ b/gnu/egcs/gcc/config/m88k/m88k.c
@@ -2591,9 +2591,6 @@ m88k_function_arg_advance (args_so_far, mode, type, named)
mode = BLKmode;
bytes = (mode != BLKmode) ? GET_MODE_SIZE (mode) : int_size_in_bytes(type);
- if ((*args_so_far & 1) && (mode == DImode || mode == DFmode
- || ((type != 0) && TYPE_ALIGN (type) > BITS_PER_WORD)))
- (*args_so_far)++;
/* as soon as we put a structure of 32 bytes or more on stack, everything
needs to go on stack, or varargs will lose. */
@@ -2607,6 +2604,10 @@ m88k_function_arg_advance (args_so_far, mode, type, named)
&& (TYPE_ALIGN (type) != BITS_PER_WORD || bytes != UNITS_PER_WORD))
return;
+ if ((*args_so_far & 1) && (mode == DImode || mode == DFmode
+ || ((type != 0) && TYPE_ALIGN (type) > BITS_PER_WORD)))
+ (*args_so_far)++;
+
(*args_so_far) += (bytes + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
}