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
This commit is contained in:
Richard Henderson 1999-04-23 09:58:24 -07:00 committed by Richard Henderson
parent 4cb02ea162
commit 4c020733f4
3 changed files with 51 additions and 32 deletions

View File

@ -1,3 +1,10 @@
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>
* alpha32.h (INITIALIZE_TRAMPOLINE): Get offsets right.

View File

@ -3297,7 +3297,7 @@ alpha_does_function_need_gp ()
void
alpha_write_verstamp (file)
FILE *file;
FILE *file ATTRIBUTE_UNUSED;
{
#ifdef MS_STAMP
fprintf (file, "\t.verstamp %d %d\n", MS_STAMP, LS_STAMP);

View File

@ -1002,26 +1002,25 @@ extern int alpha_memory_latency;
On Alpha the value is found in $0 for integer functions and
$f0 for floating-point functions. */
#define FUNCTION_VALUE(VALTYPE, FUNC) \
gen_rtx (REG, \
((INTEGRAL_TYPE_P (VALTYPE) \
&& TYPE_PRECISION (VALTYPE) < BITS_PER_WORD) \
|| POINTER_TYPE_P (VALTYPE)) \
? word_mode : TYPE_MODE (VALTYPE), \
((TARGET_FPREGS \
&& (TREE_CODE (VALTYPE) == REAL_TYPE \
|| TREE_CODE (VALTYPE) == COMPLEX_TYPE)) \
? 32 : 0))
#define FUNCTION_VALUE(VALTYPE, FUNC) \
gen_rtx_REG (((INTEGRAL_TYPE_P (VALTYPE) \
&& TYPE_PRECISION (VALTYPE) < BITS_PER_WORD) \
|| POINTER_TYPE_P (VALTYPE)) \
? word_mode : TYPE_MODE (VALTYPE), \
((TARGET_FPREGS \
&& (TREE_CODE (VALTYPE) == REAL_TYPE \
|| TREE_CODE (VALTYPE) == COMPLEX_TYPE)) \
? 32 : 0))
/* Define how to find the value returned by a library function
assuming the value has mode MODE. */
#define LIBCALL_VALUE(MODE) \
gen_rtx (REG, MODE, \
(TARGET_FPREGS \
&& (GET_MODE_CLASS (MODE) == MODE_FLOAT \
|| GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
? 32 : 0))
#define LIBCALL_VALUE(MODE) \
gen_rtx_REG (MODE, \
(TARGET_FPREGS \
&& (GET_MODE_CLASS (MODE) == MODE_FLOAT \
|| GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
? 32 : 0))
/* The definition of this macro implies that there are cases where
a scalar value cannot be returned in registers.
@ -1426,21 +1425,34 @@ extern void alpha_init_expanders ();
First define the basic valid address. */
#define GO_IF_LEGITIMATE_SIMPLE_ADDRESS(MODE, X, ADDR) \
{ if (REG_P (X) && REG_OK_FOR_BASE_P (X)) \
goto ADDR; \
if (CONSTANT_ADDRESS_P (X)) \
goto ADDR; \
if (GET_CODE (X) == PLUS \
&& REG_P (XEXP (X, 0))) \
{ \
if (REG_OK_FP_BASE_P (XEXP (X, 0)) \
&& GET_CODE (XEXP (X, 1)) == CONST_INT) \
goto ADDR; \
if (REG_OK_FOR_BASE_P (XEXP (X, 0)) \
&& CONSTANT_ADDRESS_P (XEXP (X, 1))) \
goto ADDR; \
} \
#define GO_IF_LEGITIMATE_SIMPLE_ADDRESS(MODE, X, ADDR) \
{ \
rtx tmp = (X); \
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) && REG_OK_FOR_BASE_P (tmp)) \
goto ADDR; \
if (CONSTANT_ADDRESS_P (X)) \
goto ADDR; \
if (GET_CODE (X) == PLUS) \
{ \
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