mips.h (MIPS_STACK_ALIGN): Implement using ROUND_UP macro.
authorUros Bizjak <ubizjak@gmail.com>
Wed, 14 Oct 2015 21:52:37 +0000 (23:52 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 14 Oct 2015 21:52:37 +0000 (23:52 +0200)
* 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

gcc/ChangeLog
gcc/config/mips/mips.c
gcc/config/mips/mips.h

index 3b08986ed0ec94881fa7307bb55e9659be4dadcd..30860c45647d27c1be8e5da04ea62e1978326711 100644 (file)
@@ -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.
index a4bb454bee9ff57959a824774b6b1d666a99733e..521b587366958d31586060844140c6f4193ed51d 100644 (file)
@@ -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.  */
index be86c109b6c3c99b2eb46fdef2df504c94f2a881..501d283845b67803afa5c82fde6cb379044b9a67 100644 (file)
@@ -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))
 
 \f
 /* Output assembler code to FILE to increment profiler label # LABELNO