diff options
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index c04ed32801f..726ba23c3fc 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "stringpool.h" +#include "attribs.h" #include "gimple.h" #include "flags.h" #include "expr.h" @@ -981,6 +985,7 @@ store_unaligned_arguments_into_pseudos (struct arg_data *args, int num_actuals) for (i = 0; i < num_actuals; i++) if (args[i].reg != 0 && ! args[i].pass_on_stack + && GET_CODE (args[i].reg) != PARALLEL && args[i].mode == BLKmode && MEM_P (args[i].value) && (MEM_ALIGN (args[i].value) @@ -1325,6 +1330,7 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED, #else args[i].reg != 0, #endif + reg_parm_stack_space, args[i].pass_on_stack ? 0 : args[i].partial, fndecl, args_size, &args[i].locate); #ifdef BLOCK_REG_PADDING @@ -3735,7 +3741,8 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value, #else argvec[count].reg != 0, #endif - 0, NULL_TREE, &args_size, &argvec[count].locate); + reg_parm_stack_space, 0, + NULL_TREE, &args_size, &argvec[count].locate); if (argvec[count].reg == 0 || argvec[count].partial != 0 || reg_parm_stack_space > 0) @@ -3822,7 +3829,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value, #else argvec[count].reg != 0, #endif - argvec[count].partial, + reg_parm_stack_space, argvec[count].partial, NULL_TREE, &args_size, &argvec[count].locate); args_size.constant += argvec[count].locate.size.constant; gcc_assert (!argvec[count].locate.size.var); |