mips.h (MIPS_STACK_ALIGN): Implement using ROUND_UP macro.
* config/mips/mips.h (MIPS_STACK_ALIGN): Implement using ROUND_UP macro. * config/mips/mips.c (mips_setup_incoming_varargs): Use ROUND_DOWN to calculate off. (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize. (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate rounded_size. From-SVN: r228829
This commit is contained in:
parent
903eccd1d5
commit
3a1d601a2a
3 changed files with 14 additions and 4 deletions
|
@ -1,3 +1,13 @@
|
|||
2015-10-14 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
|
||||
ROUND_UP macro.
|
||||
* config/mips/mips.c (mips_setup_incoming_varargs): Use
|
||||
ROUND_DOWN to calculate off.
|
||||
(mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
|
||||
(mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
|
||||
rounded_size.
|
||||
|
||||
2015-10-14 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
|
||||
|
|
|
@ -6080,7 +6080,7 @@ mips_setup_incoming_varargs (cumulative_args_t cum, machine_mode mode,
|
|||
/* Set OFF to the offset from virtual_incoming_args_rtx of
|
||||
the first float register. The FP save area lies below
|
||||
the integer one, and is aligned to UNITS_PER_FPVALUE bytes. */
|
||||
off = (-gp_saved * UNITS_PER_WORD) & -UNITS_PER_FPVALUE;
|
||||
off = ROUND_DOWN (-gp_saved * UNITS_PER_WORD, UNITS_PER_FPVALUE);
|
||||
off -= fp_saved * UNITS_PER_FPREG;
|
||||
|
||||
mode = TARGET_SINGLE_FLOAT ? SFmode : DFmode;
|
||||
|
@ -6444,7 +6444,7 @@ mips_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
|
|||
unshare_expr (valist), f_gtop, NULL_TREE);
|
||||
off = build3 (COMPONENT_REF, TREE_TYPE (f_goff),
|
||||
unshare_expr (valist), f_goff, NULL_TREE);
|
||||
rsize = (size + UNITS_PER_WORD - 1) & -UNITS_PER_WORD;
|
||||
rsize = ROUND_UP (size, UNITS_PER_WORD);
|
||||
if (rsize > UNITS_PER_WORD)
|
||||
{
|
||||
/* [1] Emit code for: off &= -rsize. */
|
||||
|
@ -11320,7 +11320,7 @@ mips_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size)
|
|||
|
||||
/* Step 1: round SIZE to the previous multiple of the interval. */
|
||||
|
||||
rounded_size = size & -PROBE_INTERVAL;
|
||||
rounded_size = ROUND_DOWN (size, PROBE_INTERVAL);
|
||||
|
||||
|
||||
/* Step 2: compute initial and final value of the loop counter. */
|
||||
|
|
|
@ -2486,7 +2486,7 @@ typedef struct mips_args {
|
|||
/* Treat LOC as a byte offset from the stack pointer and round it up
|
||||
to the next fully-aligned offset. */
|
||||
#define MIPS_STACK_ALIGN(LOC) \
|
||||
(TARGET_NEWABI ? ((LOC) + 15) & -16 : ((LOC) + 7) & -8)
|
||||
(TARGET_NEWABI ? ROUND_UP ((LOC), 16) : ROUND_UP ((LOC), 8))
|
||||
|
||||
|
||||
/* Output assembler code to FILE to increment profiler label # LABELNO
|
||||
|
|
Loading…
Add table
Reference in a new issue