Commit 4c020733 by Richard Henderson Committed by Richard Henderson

alpha.c (alpha_write_verstamp): Mark `file' unused.

        * alpha.c (alpha_write_verstamp): Mark `file' unused.
        * alpha.h (FUNCTION_VALUE): Use gen_rtx_REG not gen_rtx.
        (LIBCALL_VALUE): Likewise.
        (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Handle normal subregs.

From-SVN: r26607
parent 4cb02ea1
Fri Apr 23 16:57:40 1999 Richard Henderson <rth@cygnus.com>
* alpha.c (alpha_write_verstamp): Mark `file' unused.
* alpha.h (FUNCTION_VALUE): Use gen_rtx_REG not gen_rtx.
(LIBCALL_VALUE): Likewise.
(GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Handle normal subregs.
Fri Apr 23 14:57:33 1999 Donn Terry <donn@interix.com> Fri Apr 23 14:57:33 1999 Donn Terry <donn@interix.com>
* alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right. * alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right.
......
...@@ -3297,7 +3297,7 @@ alpha_does_function_need_gp () ...@@ -3297,7 +3297,7 @@ alpha_does_function_need_gp ()
void void
alpha_write_verstamp (file) alpha_write_verstamp (file)
FILE *file; FILE *file ATTRIBUTE_UNUSED;
{ {
#ifdef MS_STAMP #ifdef MS_STAMP
fprintf (file, "\t.verstamp %d %d\n", MS_STAMP, LS_STAMP); fprintf (file, "\t.verstamp %d %d\n", MS_STAMP, LS_STAMP);
......
...@@ -1002,26 +1002,25 @@ extern int alpha_memory_latency; ...@@ -1002,26 +1002,25 @@ extern int alpha_memory_latency;
On Alpha the value is found in $0 for integer functions and On Alpha the value is found in $0 for integer functions and
$f0 for floating-point functions. */ $f0 for floating-point functions. */
#define FUNCTION_VALUE(VALTYPE, FUNC) \ #define FUNCTION_VALUE(VALTYPE, FUNC) \
gen_rtx (REG, \ gen_rtx_REG (((INTEGRAL_TYPE_P (VALTYPE) \
((INTEGRAL_TYPE_P (VALTYPE) \ && TYPE_PRECISION (VALTYPE) < BITS_PER_WORD) \
&& TYPE_PRECISION (VALTYPE) < BITS_PER_WORD) \ || POINTER_TYPE_P (VALTYPE)) \
|| POINTER_TYPE_P (VALTYPE)) \ ? word_mode : TYPE_MODE (VALTYPE), \
? word_mode : TYPE_MODE (VALTYPE), \ ((TARGET_FPREGS \
((TARGET_FPREGS \ && (TREE_CODE (VALTYPE) == REAL_TYPE \
&& (TREE_CODE (VALTYPE) == REAL_TYPE \ || TREE_CODE (VALTYPE) == COMPLEX_TYPE)) \
|| TREE_CODE (VALTYPE) == COMPLEX_TYPE)) \ ? 32 : 0))
? 32 : 0))
/* Define how to find the value returned by a library function /* Define how to find the value returned by a library function
assuming the value has mode MODE. */ assuming the value has mode MODE. */
#define LIBCALL_VALUE(MODE) \ #define LIBCALL_VALUE(MODE) \
gen_rtx (REG, MODE, \ gen_rtx_REG (MODE, \
(TARGET_FPREGS \ (TARGET_FPREGS \
&& (GET_MODE_CLASS (MODE) == MODE_FLOAT \ && (GET_MODE_CLASS (MODE) == MODE_FLOAT \
|| GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \ || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
? 32 : 0)) ? 32 : 0))
/* The definition of this macro implies that there are cases where /* The definition of this macro implies that there are cases where
a scalar value cannot be returned in registers. a scalar value cannot be returned in registers.
...@@ -1426,21 +1425,34 @@ extern void alpha_init_expanders (); ...@@ -1426,21 +1425,34 @@ extern void alpha_init_expanders ();
First define the basic valid address. */ First define the basic valid address. */
#define GO_IF_LEGITIMATE_SIMPLE_ADDRESS(MODE, X, ADDR) \ #define GO_IF_LEGITIMATE_SIMPLE_ADDRESS(MODE, X, ADDR) \
{ if (REG_P (X) && REG_OK_FOR_BASE_P (X)) \ { \
goto ADDR; \ rtx tmp = (X); \
if (CONSTANT_ADDRESS_P (X)) \ if (GET_CODE (tmp) == SUBREG \
goto ADDR; \ && (GET_MODE_SIZE (GET_MODE (tmp)) \
if (GET_CODE (X) == PLUS \ < GET_MODE_SIZE (GET_MODE (SUBREG_REG (tmp))))) \
&& REG_P (XEXP (X, 0))) \ tmp = SUBREG_REG (tmp); \
{ \ if (REG_P (tmp) && REG_OK_FOR_BASE_P (tmp)) \
if (REG_OK_FP_BASE_P (XEXP (X, 0)) \ goto ADDR; \
&& GET_CODE (XEXP (X, 1)) == CONST_INT) \ if (CONSTANT_ADDRESS_P (X)) \
goto ADDR; \ goto ADDR; \
if (REG_OK_FOR_BASE_P (XEXP (X, 0)) \ if (GET_CODE (X) == PLUS) \
&& CONSTANT_ADDRESS_P (XEXP (X, 1))) \ { \
goto ADDR; \ tmp = XEXP (X, 0); \
} \ if (GET_CODE (tmp) == SUBREG \
&& (GET_MODE_SIZE (GET_MODE (tmp)) \
< GET_MODE_SIZE (GET_MODE (SUBREG_REG (tmp))))) \
tmp = SUBREG_REG (tmp); \
if (REG_P (tmp)) \
{ \
if (REG_OK_FP_BASE_P (tmp) \
&& GET_CODE (XEXP (X, 1)) == CONST_INT) \
goto ADDR; \
if (REG_OK_FOR_BASE_P (tmp) \
&& CONSTANT_ADDRESS_P (XEXP (X, 1))) \
goto ADDR; \
} \
} \
} }
/* Now accept the simple address, or, for DImode only, an AND of a simple /* Now accept the simple address, or, for DImode only, an AND of a simple
......
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