https://gcc.gnu.org/g:812eccfa4da088eac83353f4d311a394c2886c7b

commit r17-4271-g812eccfa4da088eac83353f4d311a394c2886c7b
Author: Takayuki 'January June' Suwa <[email protected]>
Date:   Sun Sep 13 05:10:21 2026 +0900

    xtensa: Eliminate GP/BR/FP/ACC_REG_NUM macros
    
    Constant macros such as GP_REG_NUM, used in the definitions of the
    GP_REG_P(), BR_REG_P(), FP_REG_P() and ACC_REG_P() macros, are used only
    for that purpose, and their constant definitions can be eliminated by
    applying the start and end numbers of each hardware register to the
    IN_RANGE() macro instead.
    
    gcc/ChangeLog:
    
            * config/xtensa/xtensa.h
            (GP_REG_NUM, BR_REG_NUM, FP_REG_NUM, ACC_REG_NUM): Remove.
            (GP_REG_P, BR_REG_P, FP_REG_P, ACC_REG_P):
            Change to use the IN_RANGE() macro.

Diff:
---
 gcc/config/xtensa/xtensa.h | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index eea7323b326a..ae0f32bbb2e8 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -262,29 +262,25 @@ along with GCC; see the file COPYING3.  If not see
 /* Internal macros to classify a register number.  */
 
 /* 16 address registers + fake registers */
-#define GP_REG_FIRST 0
-#define GP_REG_LAST  17
-#define GP_REG_NUM   (GP_REG_LAST - GP_REG_FIRST + 1)
+#define GP_REG_FIRST   0
+#define GP_REG_LAST    17
 
 /* Coprocessor registers */
-#define BR_REG_FIRST 18
-#define BR_REG_LAST  18
-#define BR_REG_NUM   (BR_REG_LAST - BR_REG_FIRST + 1)
+#define BR_REG_FIRST   18
+#define BR_REG_LAST    18
 
 /* 16 floating-point registers */
-#define FP_REG_FIRST 19
-#define FP_REG_LAST  34
-#define FP_REG_NUM   (FP_REG_LAST - FP_REG_FIRST + 1)
+#define FP_REG_FIRST   19
+#define FP_REG_LAST    34
 
 /* MAC16 accumulator */
-#define ACC_REG_FIRST 35
-#define ACC_REG_LAST 35
-#define ACC_REG_NUM  (ACC_REG_LAST - ACC_REG_FIRST + 1)
-
-#define GP_REG_P(REGNO) ((unsigned) ((REGNO) - GP_REG_FIRST) < GP_REG_NUM)
-#define BR_REG_P(REGNO) ((unsigned) ((REGNO) - BR_REG_FIRST) < BR_REG_NUM)
-#define FP_REG_P(REGNO) ((unsigned) ((REGNO) - FP_REG_FIRST) < FP_REG_NUM)
-#define ACC_REG_P(REGNO) ((unsigned) ((REGNO) - ACC_REG_FIRST) < ACC_REG_NUM)
+#define ACC_REG_FIRST  35
+#define ACC_REG_LAST   35
+
+#define GP_REG_P(REGNO)  (IN_RANGE ((REGNO), GP_REG_FIRST, GP_REG_LAST))
+#define BR_REG_P(REGNO)  (IN_RANGE ((REGNO), BR_REG_FIRST, BR_REG_LAST))
+#define FP_REG_P(REGNO)  (IN_RANGE ((REGNO), FP_REG_FIRST, FP_REG_LAST))
+#define ACC_REG_P(REGNO) (IN_RANGE ((REGNO), ACC_REG_FIRST, ACC_REG_LAST))
 
 /* Register to use for pushing function arguments.  */
 #define STACK_POINTER_REGNUM (GP_REG_FIRST + 1)

Reply via email to