diff options
Diffstat (limited to 'gnu/egcs/gcc')
-rw-r--r-- | gnu/egcs/gcc/config/m88k/m88k.c | 7 |
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; } |