aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2024-03-20 16:59:56 +0100
committerJakub Jelinek <jakub@redhat.com>2024-03-20 16:59:56 +0100
commitb22a9c7dd29a14a217de8b86d3e100e4e8b7785e (patch)
tree568d13546954fdf5e68bcf5ffdb311bf60b0201d
parent921eb457c5b105bcd84eaeac22067e9b03d5b9d1 (diff)
downloadgcc-b22a9c7dd29a14a217de8b86d3e100e4e8b7785e.zip
gcc-b22a9c7dd29a14a217de8b86d3e100e4e8b7785e.tar.gz
gcc-b22a9c7dd29a14a217de8b86d3e100e4e8b7785e.tar.bz2
nds32: Fix up nds32_setup_incoming_varargs [PR114175]
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.
-rw-r--r--gcc/config/nds32/nds32.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/nds32/nds32.cc b/gcc/config/nds32/nds32.cc
index 463df86..f5ea1da 100644
--- a/gcc/config/nds32/nds32.cc
+++ b/gcc/config/nds32/nds32.cc
@@ -2374,7 +2374,8 @@ nds32_setup_incoming_varargs (cumulative_args_t ca,
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);