Message ID | ZfsJnVLgzDpj/kvi@tucnak |
---|---|
State | New |
Headers | show |
Series | [committed] nds32: Fix up nds32_setup_incoming_varargs [PR114175] | expand |
On 3/20/24 10:06 AM, Jakub Jelinek wrote: > Hi! > > Like for x86-64, alpha or rs6000, nds32 seems to be affected too. > > Just visually checked differences in c23-stdarg-9.c assembly in a cross > without/with the patch, committed to trunk. > > 2024-03-20 Jakub Jelinek <jakub@redhat.com> > > PR target/114175 > * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip > function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions > if arg.type is NULL. No gdbsim for the nds32 processor. So no execution tests. Built fine though. jeff
--- gcc/config/nds32/nds32.cc.jj 2024-01-03 12:01:22.862487765 +0100 +++ gcc/config/nds32/nds32.cc 2024-03-20 16:13:47.460283181 +0100 @@ -2374,7 +2374,8 @@ nds32_setup_incoming_varargs (cumulative for varargs. */ total_args_regs = NDS32_MAX_GPR_REGS_FOR_ARGS + NDS32_GPR_ARG_FIRST_REGNUM; - if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl))) + if (!TYPE_NO_NAMED_ARGS_STDARG_P (TREE_TYPE (current_function_decl)) + || arg.type != NULL_TREE) num_of_used_regs = NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG (cum->gpr_offset, arg.mode, arg.type) + NDS32_NEED_N_REGS_FOR_ARG (arg.mode, arg.type);