diff options
author | Keith Packard <keithp@keithp.com> | 2025-01-15 22:08:59 -0700 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro.com> | 2025-01-15 22:08:59 -0700 |
commit | 423e9a8ad59e6972cd6f25238cd328080fed11cc (patch) | |
tree | 5cebc7fcd460b6a19e4e4a1f5f262c29cab0232b | |
parent | 6e593fcda49b1001e87e94ab709607b4fb2c66cf (diff) | |
download | gcc-423e9a8ad59e6972cd6f25238cd328080fed11cc.zip gcc-423e9a8ad59e6972cd6f25238cd328080fed11cc.tar.gz gcc-423e9a8ad59e6972cd6f25238cd328080fed11cc.tar.bz2 |
lm32: Compute pretend_size in setup_incoming_varargs even if no_rtl
gcc/
* config/lm32/lm32.cc (setup_incoming_varargs): Adjust the
conditionals so that pretend_size is always computed, even
if no_rtl is set.
-rw-r--r-- | gcc/config/lm32/lm32.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/config/lm32/lm32.cc b/gcc/config/lm32/lm32.cc index dfec286..b677953 100644 --- a/gcc/config/lm32/lm32.cc +++ b/gcc/config/lm32/lm32.cc @@ -705,16 +705,18 @@ lm32_setup_incoming_varargs (cumulative_args_t cum_v, ((size + UNITS_PER_WORD - 1) / UNITS_PER_WORD); } - if ((first_anon_arg < (LM32_FIRST_ARG_REG + LM32_NUM_ARG_REGS)) && !no_rtl) + if (FUNCTION_ARG_REGNO_P (first_anon_arg)) { - int first_reg_offset = first_anon_arg; int size = LM32_FIRST_ARG_REG + LM32_NUM_ARG_REGS - first_anon_arg; - rtx regblock; - regblock = gen_rtx_MEM (BLKmode, - plus_constant (Pmode, arg_pointer_rtx, - FIRST_PARM_OFFSET (0))); - move_block_from_reg (first_reg_offset, regblock, size); + if (!no_rtl) + { + rtx regblock + = gen_rtx_MEM (BLKmode, + plus_constant (Pmode, arg_pointer_rtx, + FIRST_PARM_OFFSET (0))); + move_block_from_reg (first_anon_arg, regblock, size); + } *pretend_size = size * UNITS_PER_WORD; } |