diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/config/vax/vax.h | 8 | ||||
| -rw-r--r-- | gcc/config/vax/vax.md | 24 | 
3 files changed, 22 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e0aba2775c7..91408182ce0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@  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.  	(split_quadword_operands) Likewise. (rev_cond_name) Likewise.  	(vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h index 3fed80b0f53..86259880e80 100644 --- a/gcc/config/vax/vax.h +++ b/gcc/config/vax/vax.h @@ -167,13 +167,13 @@ Boston, MA 02111-1307, USA.  */     The values of these macros are register numbers.  */  /* VAX pc is overloaded on a register.  */ -#define PC_REGNUM 15 +#define PC_REGNUM VAX_PC_REGNUM  /* 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.  */ -#define FRAME_POINTER_REGNUM 13 +#define FRAME_POINTER_REGNUM VAX_FP_REGNUM  /* Value should be nonzero if functions must have frame pointers.     Zero means the frame pointer need not be set up (and parms @@ -182,7 +182,7 @@ Boston, MA 02111-1307, USA.  */  #define FRAME_POINTER_REQUIRED 1  /* 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.  */  #define STATIC_CHAIN_REGNUM 0 diff --git a/gcc/config/vax/vax.md b/gcc/config/vax/vax.md index 78aa140a0e5..a77f8412965 100644 --- a/gcc/config/vax/vax.md +++ b/gcc/config/vax/vax.md @@ -31,9 +31,13 @@  ;; UNSPEC_VOLATILE usage:  (define_constants -  [(VUNSPEC_BLOCKAGE 0)     ; `blockage' insn to prevent scheduling across an -			    ;   insn in the code. +  [(VUNSPEC_BLOCKAGE 0)	    ; `blockage' insn to prevent scheduling across an +			    ; insn in the code.     (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 @@  (define_expand "call_pop"    [(parallel [(call (match_operand:QI 0 "memory_operand" "")  		    (match_operand:SI 1 "const_int_operand" "")) -	      (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" "")))])]    ""  { @@ -1213,8 +1217,8 @@  (define_insn "*call_pop"    [(call (match_operand:QI 0 "memory_operand" "m")  	 (match_operand:SI 1 "const_int_operand" "n")) -   (set (reg:SI 14) (plus:SI (reg:SI 14) -			     (match_operand:SI 2 "immediate_operand" "i")))] +   (set (reg:SI VAX_SP_REGNUM) (plus:SI (reg:SI VAX_SP_REGNUM) +					(match_operand:SI 2 "immediate_operand" "i")))]    ""  {    operands[1] = GEN_INT ((INTVAL (operands[1]) - 4) / 4); @@ -1225,8 +1229,8 @@    [(parallel [(set (match_operand 0 "" "")  		   (call (match_operand:QI 1 "memory_operand" "")  			 (match_operand:SI 2 "const_int_operand" ""))) -	      (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 4 "immediate_operand" "")))])]    ""  { @@ -1243,8 +1247,8 @@    [(set (match_operand 0 "" "")  	(call (match_operand:QI 1 "memory_operand" "m")  	      (match_operand:SI 2 "const_int_operand" "n"))) -   (set (reg:SI 14) (plus:SI (reg:SI 14) -			     (match_operand:SI 3 "immediate_operand" "i")))] +   (set (reg:SI VAX_SP_REGNUM) (plus:SI (reg:SI VAX_SP_REGNUM) +					(match_operand:SI 3 "immediate_operand" "i")))]    ""    "*  {  | 

