Commit 0f8def68 by Jan-Benedict Glaw Committed by John David Anglin

vax.md: define_constant VAXens AP...

	* config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
	registers and use them (specifically the stack pointer).
	* config/vax/vax.h: Use above defines right here.

From-SVN: r99702
parent d001241c
2005-05-14 Jan-Benedict Glaw <jbglaw@lug-owl.de> 2005-05-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
registers and use them (specifically the stack pointer).
* config/vax/vax.h: Use above defines right here.
* config/vax/vax.c: (override_options) Remove 'register' keyword. * config/vax/vax.c: (override_options) Remove 'register' keyword.
(split_quadword_operands) Likewise. (rev_cond_name) Likewise. (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
(vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
......
...@@ -167,13 +167,13 @@ Boston, MA 02111-1307, USA. */ ...@@ -167,13 +167,13 @@ Boston, MA 02111-1307, USA. */
The values of these macros are register numbers. */ The values of these macros are register numbers. */
/* VAX pc is overloaded on a register. */ /* VAX pc is overloaded on a register. */
#define PC_REGNUM 15 #define PC_REGNUM VAX_PC_REGNUM
/* Register to use for pushing function arguments. */ /* Register to use for pushing function arguments. */
#define STACK_POINTER_REGNUM 14 #define STACK_POINTER_REGNUM VAX_SP_REGNUM
/* Base register for access to local variables of the function. */ /* Base register for access to local variables of the function. */
#define FRAME_POINTER_REGNUM 13 #define FRAME_POINTER_REGNUM VAX_FP_REGNUM
/* Value should be nonzero if functions must have frame pointers. /* Value should be nonzero if functions must have frame pointers.
Zero means the frame pointer need not be set up (and parms Zero means the frame pointer need not be set up (and parms
...@@ -182,7 +182,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -182,7 +182,7 @@ Boston, MA 02111-1307, USA. */
#define FRAME_POINTER_REQUIRED 1 #define FRAME_POINTER_REQUIRED 1
/* Base register for access to arguments of the function. */ /* Base register for access to arguments of the function. */
#define ARG_POINTER_REGNUM 12 #define ARG_POINTER_REGNUM VAX_AP_REGNUM
/* Register in which static-chain is passed to a function. */ /* Register in which static-chain is passed to a function. */
#define STATIC_CHAIN_REGNUM 0 #define STATIC_CHAIN_REGNUM 0
......
...@@ -31,9 +31,13 @@ ...@@ -31,9 +31,13 @@
;; UNSPEC_VOLATILE usage: ;; UNSPEC_VOLATILE usage:
(define_constants (define_constants
[(VUNSPEC_BLOCKAGE 0) ; `blockage' insn to prevent scheduling across an [(VUNSPEC_BLOCKAGE 0) ; `blockage' insn to prevent scheduling across an
; insn in the code. ; insn in the code.
(VUNSPEC_SYNC_ISTREAM 1) ; sequence of insns to sync the I-stream (VUNSPEC_SYNC_ISTREAM 1) ; sequence of insns to sync the I-stream
(VAX_AP_REGNUM 12) ; Register 12 contains the argument pointer
(VAX_FP_REGNUM 13) ; Register 13 contains the frame pointer
(VAX_SP_REGNUM 14) ; Register 14 contains the stack pointer
(VAX_PC_REGNUM 15) ; Register 15 contains the program counter
] ]
) )
...@@ -1196,8 +1200,8 @@ ...@@ -1196,8 +1200,8 @@
(define_expand "call_pop" (define_expand "call_pop"
[(parallel [(call (match_operand:QI 0 "memory_operand" "") [(parallel [(call (match_operand:QI 0 "memory_operand" "")
(match_operand:SI 1 "const_int_operand" "")) (match_operand:SI 1 "const_int_operand" ""))
(set (reg:SI 14) (set (reg:SI VAX_SP_REGNUM)
(plus:SI (reg:SI 14) (plus:SI (reg:SI VAX_SP_REGNUM)
(match_operand:SI 3 "immediate_operand" "")))])] (match_operand:SI 3 "immediate_operand" "")))])]
"" ""
{ {
...@@ -1213,8 +1217,8 @@ ...@@ -1213,8 +1217,8 @@
(define_insn "*call_pop" (define_insn "*call_pop"
[(call (match_operand:QI 0 "memory_operand" "m") [(call (match_operand:QI 0 "memory_operand" "m")
(match_operand:SI 1 "const_int_operand" "n")) (match_operand:SI 1 "const_int_operand" "n"))
(set (reg:SI 14) (plus:SI (reg:SI 14) (set (reg:SI VAX_SP_REGNUM) (plus:SI (reg:SI VAX_SP_REGNUM)
(match_operand:SI 2 "immediate_operand" "i")))] (match_operand:SI 2 "immediate_operand" "i")))]
"" ""
{ {
operands[1] = GEN_INT ((INTVAL (operands[1]) - 4) / 4); operands[1] = GEN_INT ((INTVAL (operands[1]) - 4) / 4);
...@@ -1225,8 +1229,8 @@ ...@@ -1225,8 +1229,8 @@
[(parallel [(set (match_operand 0 "" "") [(parallel [(set (match_operand 0 "" "")
(call (match_operand:QI 1 "memory_operand" "") (call (match_operand:QI 1 "memory_operand" "")
(match_operand:SI 2 "const_int_operand" ""))) (match_operand:SI 2 "const_int_operand" "")))
(set (reg:SI 14) (set (reg:SI VAX_SP_REGNUM)
(plus:SI (reg:SI 14) (plus:SI (reg:SI VAX_SP_REGNUM)
(match_operand:SI 4 "immediate_operand" "")))])] (match_operand:SI 4 "immediate_operand" "")))])]
"" ""
{ {
...@@ -1243,8 +1247,8 @@ ...@@ -1243,8 +1247,8 @@
[(set (match_operand 0 "" "") [(set (match_operand 0 "" "")
(call (match_operand:QI 1 "memory_operand" "m") (call (match_operand:QI 1 "memory_operand" "m")
(match_operand:SI 2 "const_int_operand" "n"))) (match_operand:SI 2 "const_int_operand" "n")))
(set (reg:SI 14) (plus:SI (reg:SI 14) (set (reg:SI VAX_SP_REGNUM) (plus:SI (reg:SI VAX_SP_REGNUM)
(match_operand:SI 3 "immediate_operand" "i")))] (match_operand:SI 3 "immediate_operand" "i")))]
"" ""
"* "*
{ {
......
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