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)
