]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
authorUros Bizjak <uros@kss-loka.si>
Sat, 28 Oct 2006 20:25:27 +0000 (22:25 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sat, 28 Oct 2006 20:25:27 +0000 (22:25 +0200)
        * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
        (NON_QI_REG_P): Use IN_RANGE.
        (REX_INT_REGNO_P): Use IN_RANGE.
        (FP_REGNO_P): Use IN_RANGE.
        (SSE_REGNO_P): Use IN_RANGE.
        (REX_SSE_REGNO_P): Use IN_RANGE.
        (MMX_REGNO_P): Use IN_RANGE.
        (STACK_REGNO_P): New macro.
        (STACK_REG_P): Use STACK_REGNO_P.
        (NON_STACK_REG_P): Use STACK_REGNO_P.
        (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
        (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
        (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
        (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
        (HARD_REGNO_RENAME_OK): Use !IN_RANGE.

From-SVN: r118109

gcc/ChangeLog
gcc/config/i386/i386.h

index 344caf396e059c4192e6efc79d4a5e81d19ab8e4..cfa63d96af108939394bb6466cadf72ca4fea9db 100644 (file)
@@ -1,3 +1,21 @@
+2006-10-28  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
+       (NON_QI_REG_P): Use IN_RANGE.
+       (REX_INT_REGNO_P): Use IN_RANGE.
+       (FP_REGNO_P): Use IN_RANGE.
+       (SSE_REGNO_P): Use IN_RANGE.
+       (REX_SSE_REGNO_P): Use IN_RANGE.
+       (MMX_REGNO_P): Use IN_RANGE.
+       (STACK_REGNO_P): New macro.
+       (STACK_REG_P): Use STACK_REGNO_P.
+       (NON_STACK_REG_P): Use STACK_REGNO_P.
+       (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
+       (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
+       (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
+       (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
+       (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
+
 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
 
        * except.h (output_function_exception_table): Add 'const char*' param.
index cc7e8907d504ba4c971ab3cb2c8ef6e998d5bb3f..9fc54505ca882fd59f6a55ce9d570efe4f8db8e8 100644 (file)
@@ -1175,11 +1175,10 @@ enum reg_class
 
 #define SMALL_REGISTER_CLASSES 1
 
-#define QI_REG_P(X) \
-  (REG_P (X) && REGNO (X) < 4)
+#define QI_REG_P(X) (REG_P (X) && REGNO (X) < 4)
 
 #define GENERAL_REGNO_P(N) \
-  ((N) < 8 || REX_INT_REGNO_P (N))
+  ((N) <= STACK_POINTER_REGNUM || REX_INT_REGNO_P (N))
 
 #define GENERAL_REG_P(X) \
   (REG_P (X) && GENERAL_REGNO_P (REGNO (X)))
@@ -1187,39 +1186,38 @@ enum reg_class
 #define ANY_QI_REG_P(X) (TARGET_64BIT ? GENERAL_REG_P(X) : QI_REG_P (X))
 
 #define NON_QI_REG_P(X) \
-  (REG_P (X) && REGNO (X) >= 4 && REGNO (X) < FIRST_PSEUDO_REGISTER)
+  (REG_P (X) && IN_RANGE (REGNO (X), 4, FIRST_PSEUDO_REGISTER - 1))
 
-#define REX_INT_REGNO_P(N) ((N) >= FIRST_REX_INT_REG && (N) <= LAST_REX_INT_REG)
+#define REX_INT_REGNO_P(N) \
+  IN_RANGE ((N), FIRST_REX_INT_REG, LAST_REX_INT_REG)
 #define REX_INT_REG_P(X) (REG_P (X) && REX_INT_REGNO_P (REGNO (X)))
 
 #define FP_REG_P(X) (REG_P (X) && FP_REGNO_P (REGNO (X)))
-#define FP_REGNO_P(N) ((N) >= FIRST_STACK_REG && (N) <= LAST_STACK_REG)
+#define FP_REGNO_P(N) IN_RANGE ((N), FIRST_STACK_REG, LAST_STACK_REG)
 #define ANY_FP_REG_P(X) (REG_P (X) && ANY_FP_REGNO_P (REGNO (X)))
 #define ANY_FP_REGNO_P(N) (FP_REGNO_P (N) || SSE_REGNO_P (N))
 
-#define SSE_REGNO_P(N) \
-  (((N) >= FIRST_SSE_REG && (N) <= LAST_SSE_REG) \
-   || ((N) >= FIRST_REX_SSE_REG && (N) <= LAST_REX_SSE_REG))
+#define SSE_REG_P(N) (REG_P (N) && SSE_REGNO_P (REGNO (N)))
+#define SSE_REGNO_P(N)                                         \
+  (IN_RANGE ((N), FIRST_SSE_REG, LAST_SSE_REG)                 \
+   || REX_SSE_REGNO_P (N))
 
 #define REX_SSE_REGNO_P(N) \
-   ((N) >= FIRST_REX_SSE_REG && (N) <= LAST_REX_SSE_REG)
+  IN_RANGE ((N), FIRST_REX_SSE_REG, LAST_REX_SSE_REG)
 
 #define SSE_REGNO(N) \
   ((N) < 8 ? FIRST_SSE_REG + (N) : FIRST_REX_SSE_REG + (N) - 8)
-#define SSE_REG_P(N) (REG_P (N) && SSE_REGNO_P (REGNO (N)))
 
 #define SSE_FLOAT_MODE_P(MODE) \
   ((TARGET_SSE && (MODE) == SFmode) || (TARGET_SSE2 && (MODE) == DFmode))
 
-#define MMX_REGNO_P(N) ((N) >= FIRST_MMX_REG && (N) <= LAST_MMX_REG)
 #define MMX_REG_P(XOP) (REG_P (XOP) && MMX_REGNO_P (REGNO (XOP)))
+#define MMX_REGNO_P(N) IN_RANGE ((N), FIRST_MMX_REG, LAST_MMX_REG)
 
-#define STACK_REG_P(XOP)               \
-  (REG_P (XOP) &&                      \
-   REGNO (XOP) >= FIRST_STACK_REG &&   \
-   REGNO (XOP) <= LAST_STACK_REG)
-
-#define NON_STACK_REG_P(XOP) (REG_P (XOP) && ! STACK_REG_P (XOP))
+#define STACK_REG_P(XOP) (REG_P (XOP) && STACK_REGNO_P (REGNO (XOP)))
+#define NON_STACK_REG_P(XOP) \
+  (REG_P (XOP) && ! STACK_REGNO_P (REGNO (XOP)))
+#define STACK_REGNO_P(N) IN_RANGE ((N), FIRST_STACK_REG, LAST_STACK_REG)
 
 #define STACK_TOP_P(XOP) (REG_P (XOP) && REGNO (XOP) == FIRST_STACK_REG)
 
@@ -1567,21 +1565,15 @@ typedef struct ix86_args {
 
 #define REGNO_OK_FOR_INDEX_P(REGNO)                                    \
   ((REGNO) < STACK_POINTER_REGNUM                                      \
-   || (REGNO >= FIRST_REX_INT_REG                                      \
-       && (REGNO) <= LAST_REX_INT_REG)                                 \
-   || ((unsigned) reg_renumber[(REGNO)] >= FIRST_REX_INT_REG           \
-       && (unsigned) reg_renumber[(REGNO)] <= LAST_REX_INT_REG)                \
-   || (unsigned) reg_renumber[(REGNO)] < STACK_POINTER_REGNUM)
+   || REX_INT_REGNO_P (REGNO)                                          \
+   || (unsigned) reg_renumber[(REGNO)] < STACK_POINTER_REGNUM          \
+   || REX_INT_REGNO_P ((unsigned) reg_renumber[(REGNO)]))
 
 #define REGNO_OK_FOR_BASE_P(REGNO)                                     \
-  ((REGNO) <= STACK_POINTER_REGNUM                                     \
+  (GENERAL_REGNO_P (REGNO)                                             \
    || (REGNO) == ARG_POINTER_REGNUM                                    \
    || (REGNO) == FRAME_POINTER_REGNUM                                  \
-   || (REGNO >= FIRST_REX_INT_REG                                      \
-       && (REGNO) <= LAST_REX_INT_REG)                                 \
-   || ((unsigned) reg_renumber[(REGNO)] >= FIRST_REX_INT_REG           \
-       && (unsigned) reg_renumber[(REGNO)] <= LAST_REX_INT_REG)                \
-   || (unsigned) reg_renumber[(REGNO)] <= STACK_POINTER_REGNUM)
+   || GENERAL_REGNO_P ((unsigned) reg_renumber[(REGNO)]))
 
 #define REGNO_OK_FOR_SIREG_P(REGNO) \
   ((REGNO) == 4 || reg_renumber[(REGNO)] == 4)
@@ -1605,16 +1597,13 @@ typedef struct ix86_args {
 /* Non strict versions, pseudos are ok.  */
 #define REG_OK_FOR_INDEX_NONSTRICT_P(X)                                        \
   (REGNO (X) < STACK_POINTER_REGNUM                                    \
-   || (REGNO (X) >= FIRST_REX_INT_REG                                  \
-       && REGNO (X) <= LAST_REX_INT_REG)                               \
+   || REX_INT_REGNO_P (REGNO (X))                                      \
    || REGNO (X) >= FIRST_PSEUDO_REGISTER)
 
 #define REG_OK_FOR_BASE_NONSTRICT_P(X)                                 \
-  (REGNO (X) <= STACK_POINTER_REGNUM                                   \
+  (GENERAL_REGNO_P (REGNO (X))                                         \
    || REGNO (X) == ARG_POINTER_REGNUM                                  \
    || REGNO (X) == FRAME_POINTER_REGNUM                                \
-   || (REGNO (X) >= FIRST_REX_INT_REG                                  \
-       && REGNO (X) <= LAST_REX_INT_REG)                               \
    || REGNO (X) >= FIRST_PSEUDO_REGISTER)
 
 /* Strict versions, hard registers only */
@@ -2224,7 +2213,7 @@ enum ix86_stack_slot
    ??? Maybe Pentium chips benefits from renaming, someone can try....  */
 
 #define HARD_REGNO_RENAME_OK(SRC, TARGET)  \
-   ((SRC) < FIRST_STACK_REG || (SRC) > LAST_STACK_REG)
+  (! IN_RANGE ((SRC), FIRST_STACK_REG, LAST_STACK_REG))
 
 \f
 #define DLL_IMPORT_EXPORT_PREFIX '#'