Commit 12877f09 by John David Anglin Committed by John David Anglin

pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers used for DImode and TImode.

	* pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
	used for DImode and TImode.

From-SVN: r53387
parent 387f9e32
2002-05-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
* pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
used for DImode and TImode.
2002-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 2002-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
* cpplex.c (_cpp_lex_direct): When in a directive at EOF * cpplex.c (_cpp_lex_direct): When in a directive at EOF
......
...@@ -164,8 +164,11 @@ ...@@ -164,8 +164,11 @@
: ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)) : ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD))
/* Value is 1 if hard register REGNO can hold a value of machine-mode MODE. /* Value is 1 if hard register REGNO can hold a value of machine-mode MODE.
On the HP-PA, the cpu registers can hold any mode. We On the HP-PA, the cpu registers can hold any mode. For DImode, we
force this to be an even register is it cannot hold the full mode. */ choose a set of general register that includes the incoming arguments
and the return value. We specify a set with no overlaps so that we don't
have to specify that the destination register in patterns using this mode
is an early clobber. */
#define HARD_REGNO_MODE_OK(REGNO, MODE) \ #define HARD_REGNO_MODE_OK(REGNO, MODE) \
((REGNO) == 0 ? (MODE) == CCmode || (MODE) == CCFPmode \ ((REGNO) == 0 ? (MODE) == CCmode || (MODE) == CCFPmode \
/* On 1.0 machines, don't allow wide non-fp modes in fp regs. */ \ /* On 1.0 machines, don't allow wide non-fp modes in fp regs. */ \
...@@ -173,9 +176,11 @@ ...@@ -173,9 +176,11 @@
? GET_MODE_SIZE (MODE) <= 4 || GET_MODE_CLASS (MODE) == MODE_FLOAT \ ? GET_MODE_SIZE (MODE) <= 4 || GET_MODE_CLASS (MODE) == MODE_FLOAT \
: FP_REGNO_P (REGNO) \ : FP_REGNO_P (REGNO) \
? GET_MODE_SIZE (MODE) <= 4 || ((REGNO) & 1) == 0 \ ? GET_MODE_SIZE (MODE) <= 4 || ((REGNO) & 1) == 0 \
/* Make wide modes be in aligned registers. */ \
: (GET_MODE_SIZE (MODE) <= UNITS_PER_WORD \ : (GET_MODE_SIZE (MODE) <= UNITS_PER_WORD \
|| (GET_MODE_SIZE (MODE) <= 4 * UNITS_PER_WORD && ((REGNO) & 1) == 0))) || (GET_MODE_SIZE (MODE) == 2 * UNITS_PER_WORD \
&& ((((REGNO) & 1) == 1 && (REGNO) <= 25) || (REGNO) == 28)) \
|| (GET_MODE_SIZE (MODE) == 4 * UNITS_PER_WORD \
&& (((REGNO) & 3) == 3 && (REGNO) <= 23))))
/* How to renumber registers for dbx and gdb. /* How to renumber registers for dbx and gdb.
......
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