It's just INTVAL now, which is shorter and clearer.

Bootstrapped and tested on powerpc64-linux --enable-languages=c,c++,fortran
--disable-libsanitizer, -m64,-m32,-m32/-mpowerpc64, no regressions.  Okay
to apply?


gcc/
2013-05-04  Segher Boessenkool  <seg...@kernel.crashing.org>

        * config/rs6000/rs6000.c (INT_LOWPART): Delete.
        (extract_MB): Adjust.
        (extract_ME): Adjust.
        (print_operand): Adjust.

---
 gcc/config/rs6000/rs6000.c | 34 +++++++++++++++-------------------
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index dc3e4e5..dbe8980 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -14843,17 +14843,13 @@ rs6000_init_machine_status (void)
   return ggc_alloc_cleared_machine_function ();
 }
 
-/* These macros test for integers and extract the low-order bits.  */
-#define INT_P(X)  \
-(GET_CODE (X) == CONST_INT && GET_MODE (X) == VOIDmode)
-
-#define INT_LOWPART(X) INTVAL (X)
+#define INT_P(X) (GET_CODE (X) == CONST_INT && GET_MODE (X) == VOIDmode)
 
 int
 extract_MB (rtx op)
 {
   int i;
-  unsigned long val = INT_LOWPART (op);
+  unsigned long val = INTVAL (op);
 
   /* If the high bit is zero, the value is the first 1 bit we find
      from the left.  */
@@ -14885,7 +14881,7 @@ int
 extract_ME (rtx op)
 {
   int i;
-  unsigned long val = INT_LOWPART (op);
+  unsigned long val = INTVAL (op);
 
   /* If the low bit is zero, the value is the first 1 bit we find from
      the right.  */
@@ -15006,7 +15002,7 @@ print_operand (FILE *file, rtx x, int code)
       /* If constant, low-order 16 bits of constant, unsigned.
         Otherwise, write normally.  */
       if (INT_P (x))
-       fprintf (file, HOST_WIDE_INT_PRINT_DEC, INT_LOWPART (x) & 0xffff);
+       fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x) & 0xffff);
       else
        print_operand (file, x, 0);
       return;
@@ -15014,7 +15010,7 @@ print_operand (FILE *file, rtx x, int code)
     case 'B':
       /* If the low-order bit is zero, write 'r'; otherwise, write 'l'
         for 64-bit mask direction.  */
-      putc (((INT_LOWPART (x) & 1) == 0 ? 'r' : 'l'), file);
+      putc (((INTVAL (x) & 1) == 0 ? 'r' : 'l'), file);
       return;
 
       /* %c is output_addr_const if a CONSTANT_ADDRESS_P, otherwise
@@ -15072,7 +15068,7 @@ print_operand (FILE *file, rtx x, int code)
       /* If constant, output low-order five bits.  Otherwise, write
         normally.  */
       if (INT_P (x))
-       fprintf (file, HOST_WIDE_INT_PRINT_DEC, INT_LOWPART (x) & 31);
+       fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x) & 31);
       else
        print_operand (file, x, 0);
       return;
@@ -15081,7 +15077,7 @@ print_operand (FILE *file, rtx x, int code)
       /* If constant, output low-order six bits.  Otherwise, write
         normally.  */
       if (INT_P (x))
-       fprintf (file, HOST_WIDE_INT_PRINT_DEC, INT_LOWPART (x) & 63);
+       fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x) & 63);
       else
        print_operand (file, x, 0);
       return;
@@ -15118,7 +15114,7 @@ print_operand (FILE *file, rtx x, int code)
       if (! INT_P (x))
        output_operand_lossage ("invalid %%k value");
       else
-       fprintf (file, HOST_WIDE_INT_PRINT_DEC, ~ INT_LOWPART (x));
+       fprintf (file, HOST_WIDE_INT_PRINT_DEC, ~ INTVAL (x));
       return;
 
     case 'K':
@@ -15203,8 +15199,8 @@ print_operand (FILE *file, rtx x, int code)
     case 'p':
       /* X is a CONST_INT that is a power of two.  Output the logarithm.  */
       if (! INT_P (x)
-         || INT_LOWPART (x) < 0
-         || (i = exact_log2 (INT_LOWPART (x))) < 0)
+         || INTVAL (x) < 0
+         || (i = exact_log2 (INTVAL (x))) < 0)
        output_operand_lossage ("invalid %%p value");
       else
        fprintf (file, "%d", i);
@@ -15277,7 +15273,7 @@ print_operand (FILE *file, rtx x, int code)
       if (! INT_P (x))
        output_operand_lossage ("invalid %%s value");
       else
-       fprintf (file, HOST_WIDE_INT_PRINT_DEC, (32 - INT_LOWPART (x)) & 31);
+       fprintf (file, HOST_WIDE_INT_PRINT_DEC, (32 - INTVAL (x)) & 31);
       return;
 
     case 'S':
@@ -15287,7 +15283,7 @@ print_operand (FILE *file, rtx x, int code)
       if (! mask64_operand (x, DImode))
        output_operand_lossage ("invalid %%S value");
 
-      uval = INT_LOWPART (x);
+      uval = INTVAL (x);
 
       if (uval & 1)    /* Clear Left */
        {
@@ -15338,7 +15334,7 @@ print_operand (FILE *file, rtx x, int code)
        output_operand_lossage ("invalid %%u value");
       else
        fprintf (file, HOST_WIDE_INT_PRINT_HEX,
-                (INT_LOWPART (x) >> 16) & 0xffff);
+                (INTVAL (x) >> 16) & 0xffff);
       return;
 
     case 'v':
@@ -15347,7 +15343,7 @@ print_operand (FILE *file, rtx x, int code)
        output_operand_lossage ("invalid %%v value");
       else
        fprintf (file, HOST_WIDE_INT_PRINT_HEX,
-                (INT_LOWPART (x) >> 16) & 0xffff);
+                (INTVAL (x) >> 16) & 0xffff);
       return;
 
     case 'U':
@@ -15403,7 +15399,7 @@ print_operand (FILE *file, rtx x, int code)
         normally.  */
       if (INT_P (x))
        fprintf (file, HOST_WIDE_INT_PRINT_DEC,
-                ((INT_LOWPART (x) & 0xffff) ^ 0x8000) - 0x8000);
+                ((INTVAL (x) & 0xffff) ^ 0x8000) - 0x8000);
       else
        print_operand (file, x, 0);
       return;
-- 
1.8.1.4

Reply via email to