aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2025-01-15 22:08:59 -0700
committerJeff Law <jlaw@ventanamicro.com>2025-01-15 22:08:59 -0700
commit423e9a8ad59e6972cd6f25238cd328080fed11cc (patch)
tree5cebc7fcd460b6a19e4e4a1f5f262c29cab0232b
parent6e593fcda49b1001e87e94ab709607b4fb2c66cf (diff)
downloadgcc-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.cc16
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;
}