Commit 747e2d0e by John David Anglin Committed by John David Anglin

pa-64.h (ARG_POINTER_REGNUM, [...]): Delete.

	* pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
	* pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
	* pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
	* pa64-regs.h (REG_ALLOC_ORDER): Likewise.

From-SVN: r84649
parent c1b4f64d
2004-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
* pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
* pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
* pa64-regs.h (REG_ALLOC_ORDER): Likewise.
2004-07-13 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/16443
......
......@@ -74,17 +74,12 @@ Boston, MA 02111-1307, USA. */
?!? This may not work reliably. Keep an eye out for problems. */
#undef SECONDARY_MEMORY_NEEDED_RTX
/* ?!? This needs to be made compile-time selectable.
The PA64 runtime model has arguments that grow to higher addresses
(like most other targets). The older runtime model has arguments
that grow to lower addresses. What fun. */
#undef ARGS_GROW_DOWNWARD
#undef ARG_POINTER_REGNUM
#define ARG_POINTER_REGNUM 29
#undef STATIC_CHAIN_REGNUM
#define STATIC_CHAIN_REGNUM 31
/* If defined, a C expression which determines whether the default
implementation of va_arg will attempt to pad down before reading the
......
......@@ -533,10 +533,10 @@ do { \
do {(VAR) = - compute_frame_size (get_frame_size (), 0);} while (0)
/* Base register for access to arguments of the function. */
#define ARG_POINTER_REGNUM 3
#define ARG_POINTER_REGNUM (TARGET_64BIT ? 29 : 3)
/* Register in which static-chain is passed to a function. */
#define STATIC_CHAIN_REGNUM 29
#define STATIC_CHAIN_REGNUM (TARGET_64BIT ? 31 : 29)
/* Register used to address the offset table for position-independent
data references. */
......
......@@ -119,7 +119,8 @@
registers will generally not be allocated across a call).
Experimentation has shown slightly better results by allocating
FP registers first.
FP registers first. We allocate the caller-saved registers more
or less in reverse order to their allocation as arguments.
FP registers are ordered so that all L registers are selected before
R registers. This works around a false dependency interlock on the
......@@ -130,14 +131,14 @@
{ \
/* caller-saved fp regs. */ \
68, 70, 72, 74, 76, 78, 80, 82, \
84, 86, 40, 42, 44, 46, 32, 34, \
36, 38, \
84, 86, 40, 42, 44, 46, 38, 36, \
34, 32, \
69, 71, 73, 75, 77, 79, 81, 83, \
85, 87, 41, 43, 45, 47, 33, 35, \
37, 39, \
85, 87, 41, 43, 45, 47, 39, 37, \
35, 33, \
/* caller-saved general regs. */ \
19, 20, 21, 22, 23, 24, 25, 26, \
27, 28, 29, 31, 2, \
28, 19, 20, 21, 22, 31, 27, 29, \
23, 24, 25, 26, 2, \
/* callee-saved fp regs. */ \
48, 50, 52, 54, 56, 58, 60, 62, \
64, 66, \
......
......@@ -118,22 +118,18 @@ Boston, MA 02111-1307, USA. */
registers will generally not be allocated across a call).
Experimentation has shown slightly better results by allocating
FP registers first.
FP registers are ordered so that all L registers are selected before
R registers. This works around a false dependency interlock on the
PA8000 when accessing the high and low parts of an FP register
independently. */
FP registers first. We allocate the caller-saved registers more
or less in reverse order to their allocation as arguments. */
#define REG_ALLOC_ORDER \
{ \
/* caller-saved fp regs. */ \
50, 51, 52, 53, 54, 55, 56, 57, \
58, 59, 36, 37, 38, 39, 32, 33, \
34, 35, \
58, 59, 39, 38, 37, 36, 35, 34, \
33, 32, \
/* caller-saved general regs. */ \
19, 20, 21, 22, 23, 24, 25, 26, \
27, 28, 29, 31, 2, \
28, 31, 19, 20, 21, 22, 23, 24, \
25, 26, 29, 2, \
/* callee-saved fp regs. */ \
40, 41, 42, 43, 44, 45, 46, 47, \
48, 49, \
......@@ -141,7 +137,7 @@ Boston, MA 02111-1307, USA. */
3, 4, 5, 6, 7, 8, 9, 10, \
11, 12, 13, 14, 15, 16, 17, 18, \
/* special registers. */ \
1, 30, 0, 60}
1, 27, 30, 0, 60}
/* Return number of consecutive hard regs needed starting at reg REGNO
......
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