Commit bf32249e by Roman Zippel Committed by Roman Zippel

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
parent 8de10a62
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> 2007-06-24 Jan Hubicka <jh@suse.cz>
PR middle-end/30563 PR middle-end/30563
......
...@@ -1609,7 +1609,7 @@ m68k_legitimate_base_reg_p (rtx x, bool strict_p) ...@@ -1609,7 +1609,7 @@ m68k_legitimate_base_reg_p (rtx x, bool strict_p)
return (REG_P (x) return (REG_P (x)
&& (strict_p && (strict_p
? REGNO_OK_FOR_BASE_P (REGNO (x)) ? 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 /* 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) ...@@ -1624,7 +1624,7 @@ m68k_legitimate_index_reg_p (rtx x, bool strict_p)
return (REG_P (x) return (REG_P (x)
&& (strict_p && (strict_p
? REGNO_OK_FOR_INDEX_P (REGNO (x)) ? 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 /* Return true if X is a legitimate index expression for a (d8,An,Xn) or
......
...@@ -662,16 +662,16 @@ __transfer_from_trampoline () \ ...@@ -662,16 +662,16 @@ __transfer_from_trampoline () \
/* Macros to check register numbers against specific register classes. */ /* Macros to check register numbers against specific register classes. */
/* True for data registers, D0 through D7. */ /* 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. */ /* 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. */ /* 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. */ /* 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) \ #define REGNO_OK_FOR_INDEX_P(REGNO) \
(INT_REGNO_P (REGNO) \ (INT_REGNO_P (REGNO) \
...@@ -681,13 +681,15 @@ __transfer_from_trampoline () \ ...@@ -681,13 +681,15 @@ __transfer_from_trampoline () \
(ADDRESS_REGNO_P (REGNO) \ (ADDRESS_REGNO_P (REGNO) \
|| ADDRESS_REGNO_P (reg_renumber[REGNO])) || ADDRESS_REGNO_P (reg_renumber[REGNO]))
#define REGNO_OK_FOR_DATA_P(REGNO) \ #define REGNO_OK_FOR_INDEX_NONSTRICT_P(REGNO) \
(DATA_REGNO_P (REGNO) \ (INT_REGNO_P (REGNO) \
|| DATA_REGNO_P (reg_renumber[REGNO])) || REGNO == ARG_POINTER_REGNUM \
|| REGNO >= FIRST_PSEUDO_REGISTER)
#define REGNO_OK_FOR_FP_P(REGNO) \ #define REGNO_OK_FOR_BASE_NONSTRICT_P(REGNO) \
(FP_REGNO_P (REGNO) \ (ADDRESS_REGNO_P (REGNO) \
|| FP_REGNO_P (reg_renumber[REGNO])) || REGNO == ARG_POINTER_REGNUM \
|| REGNO >= FIRST_PSEUDO_REGISTER)
/* Now macros that check whether X is a register and also, /* Now macros that check whether X is a register and also,
strictly, whether it is in a specified class. strictly, whether it is in a specified class.
...@@ -697,13 +699,13 @@ __transfer_from_trampoline () \ ...@@ -697,13 +699,13 @@ __transfer_from_trampoline () \
define_optimization. */ define_optimization. */
/* 1 if X is a data register. */ /* 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. */ /* 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 */ /* 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 /* True if SYMBOL + OFFSET constants must refer to something within
SYMBOL's section. */ SYMBOL's section. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment