diff options
author | Roman Zippel <zippel@linux-m68k.org> | 2007-06-25 18:43:50 +0000 |
---|---|---|
committer | Roman Zippel <zippel@gcc.gnu.org> | 2007-06-25 18:43:50 +0000 |
commit | bf32249ec2e8df94fa91c0c6d673ec44dec63da3 (patch) | |
tree | f532b1beb2543eae48436638100f0fabc01aba92 /gcc | |
parent | 8de10a622a1311281ab59cee7d56ade678afbfb1 (diff) | |
download | gcc-bf32249ec2e8df94fa91c0c6d673ec44dec63da3.zip gcc-bf32249ec2e8df94fa91c0c6d673ec44dec63da3.tar.gz gcc-bf32249ec2e8df94fa91c0c6d673ec44dec63da3.tar.bz2 |
m68k.h (DATA_REGNO_P, [...]): Use IN_RANGE.
* config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
FP_REGNO_P): Use IN_RANGE.
(REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
(REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
(DATA_REG_P): Use DATA_REGNO_P.
(FP_REG_P): Use FP_REGNO_P.
(ADDRESS_REG_P): Use ADDRESS_REGNO_P.
* config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
From-SVN: r126001
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.c | 4 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.h | 28 |
3 files changed, 29 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 616b311..e57e057 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2007-06-25 Roman Zippel <zippel@linux-m68k.org> + + * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P, + FP_REGNO_P): Use IN_RANGE. + (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove. + (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New. + (DATA_REG_P): Use DATA_REGNO_P. + (FP_REG_P): Use FP_REGNO_P. + (ADDRESS_REG_P): Use ADDRESS_REGNO_P. + * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use + REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P. + 2007-06-24 Jan Hubicka <jh@suse.cz> PR middle-end/30563 diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 039649c..ec65a88 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -1609,7 +1609,7 @@ m68k_legitimate_base_reg_p (rtx x, bool strict_p) return (REG_P (x) && (strict_p ? REGNO_OK_FOR_BASE_P (REGNO (x)) - : !DATA_REGNO_P (REGNO (x)) && !FP_REGNO_P (REGNO (x)))); + : REGNO_OK_FOR_BASE_NONSTRICT_P (REGNO (x)))); } /* Return true if X is a legitimate index register. STRICT_P says @@ -1624,7 +1624,7 @@ m68k_legitimate_index_reg_p (rtx x, bool strict_p) return (REG_P (x) && (strict_p ? REGNO_OK_FOR_INDEX_P (REGNO (x)) - : !FP_REGNO_P (REGNO (x)))); + : REGNO_OK_FOR_INDEX_NONSTRICT_P (REGNO (x)))); } /* Return true if X is a legitimate index expression for a (d8,An,Xn) or diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index e84994b..3ff2484 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -662,16 +662,16 @@ __transfer_from_trampoline () \ /* Macros to check register numbers against specific register classes. */ /* True for data registers, D0 through D7. */ -#define DATA_REGNO_P(REGNO) ((unsigned int) (REGNO) < 8) +#define DATA_REGNO_P(REGNO) IN_RANGE (REGNO, 0, 7) /* True for address registers, A0 through A7. */ -#define ADDRESS_REGNO_P(REGNO) (((unsigned int) (REGNO) - 8) < 8) +#define ADDRESS_REGNO_P(REGNO) IN_RANGE (REGNO, 8, 15) /* True for integer registers, D0 through D7 and A0 through A7. */ -#define INT_REGNO_P(REGNO) ((unsigned int) (REGNO) < 16) +#define INT_REGNO_P(REGNO) IN_RANGE (REGNO, 0, 15) /* True for floating point registers, FP0 through FP7. */ -#define FP_REGNO_P(REGNO) (((unsigned int) (REGNO) - 16) < 8) +#define FP_REGNO_P(REGNO) IN_RANGE (REGNO, 16, 23) #define REGNO_OK_FOR_INDEX_P(REGNO) \ (INT_REGNO_P (REGNO) \ @@ -681,13 +681,15 @@ __transfer_from_trampoline () \ (ADDRESS_REGNO_P (REGNO) \ || ADDRESS_REGNO_P (reg_renumber[REGNO])) -#define REGNO_OK_FOR_DATA_P(REGNO) \ - (DATA_REGNO_P (REGNO) \ - || DATA_REGNO_P (reg_renumber[REGNO])) +#define REGNO_OK_FOR_INDEX_NONSTRICT_P(REGNO) \ + (INT_REGNO_P (REGNO) \ + || REGNO == ARG_POINTER_REGNUM \ + || REGNO >= FIRST_PSEUDO_REGISTER) -#define REGNO_OK_FOR_FP_P(REGNO) \ - (FP_REGNO_P (REGNO) \ - || FP_REGNO_P (reg_renumber[REGNO])) +#define REGNO_OK_FOR_BASE_NONSTRICT_P(REGNO) \ + (ADDRESS_REGNO_P (REGNO) \ + || REGNO == ARG_POINTER_REGNUM \ + || REGNO >= FIRST_PSEUDO_REGISTER) /* Now macros that check whether X is a register and also, strictly, whether it is in a specified class. @@ -697,13 +699,13 @@ __transfer_from_trampoline () \ define_optimization. */ /* 1 if X is a data register. */ -#define DATA_REG_P(X) (REG_P (X) && REGNO_OK_FOR_DATA_P (REGNO (X))) +#define DATA_REG_P(X) (REG_P (X) && DATA_REGNO_P (REGNO (X))) /* 1 if X is an fp register. */ -#define FP_REG_P(X) (REG_P (X) && REGNO_OK_FOR_FP_P (REGNO (X))) +#define FP_REG_P(X) (REG_P (X) && FP_REGNO_P (REGNO (X))) /* 1 if X is an address register */ -#define ADDRESS_REG_P(X) (REG_P (X) && REGNO_OK_FOR_BASE_P (REGNO (X))) +#define ADDRESS_REG_P(X) (REG_P (X) && ADDRESS_REGNO_P (REGNO (X))) /* True if SYMBOL + OFFSET constants must refer to something within SYMBOL's section. */ |