diff options
-rw-r--r-- | gcc/calls.c | 2 | ||||
-rw-r--r-- | gcc/function.c | 12 |
2 files changed, 8 insertions, 6 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index b17d1971fdf..6435a1ff7a6 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2581,6 +2581,7 @@ emit_library_call VPROTO((rtx orgfun, int no_queue, enum machine_mode outmode, rtx fun; int inc; int count; + struct args_size alignment_pad; rtx argblock = 0; CUMULATIVE_ARGS args_so_far; struct arg { rtx value; enum machine_mode mode; rtx reg; int partial; @@ -3643,7 +3644,6 @@ emit_library_call_value VPROTO((rtx orgfun, rtx value, int no_queue, highest_outgoing_arg_in_use = initial_highest_arg_in_use; stack_usage_map = initial_stack_usage_map; #endif - struct args_size alignment_pad; return value; } diff --git a/gcc/function.c b/gcc/function.c index fe1b5ee189b..f6f5d88ede4 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -5008,14 +5008,16 @@ pad_to_arg_alignment (offset_ptr, boundary, alignment_pad) alignment_pad->var = size_binop (MINUS_EXPR, offset_ptr->var, save_var); } else - offset_ptr->constant = + { + offset_ptr->constant = #ifdef ARGS_GROW_DOWNWARD - FLOOR_ROUND (offset_ptr->constant, boundary_in_bytes); + FLOOR_ROUND (offset_ptr->constant, boundary_in_bytes); #else - CEIL_ROUND (offset_ptr->constant, boundary_in_bytes); + CEIL_ROUND (offset_ptr->constant, boundary_in_bytes); #endif - if (boundary > PARM_BOUNDARY) - alignment_pad->constant = offset_ptr->constant - save_constant; + if (boundary > PARM_BOUNDARY) + alignment_pad->constant = offset_ptr->constant - save_constant; + } } } |