addressof and alpha_expand_block_move

Mike Stump mrs@wrs.com
Fri Jan 23 14:48:00 GMT 1998


> Date: Tue, 20 Jan 1998 16:56:16 -0800
> From: Richard Henderson <rth@cygnus.com>
> To: egcs@cygnus.com

> Tue Jan 20 16:43:49 1998  Richard Henderson   <rth@cygnus.com>

> 	* alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Allow addressof
> 	where we would accept a reg.

> ! #define GO_IF_LEGITIMATE_SIMPLE_ADDRESS(MODE, X, ADDR)	\

> !   /* Accept addressof since it will eventually become	\
> !      a register or an offset of the FP.  */		\
> !   if (GET_CODE (X) == ADDRESSOF)			\
> !     goto ADDR;						\

> !   if (GET_CODE (X) == PLUS				\
> !       && ((REG_P (XEXP (X, 0))				\
> !            && REG_OK_FOR_BASE_P (XEXP (X, 0))		\
> !            && CONSTANT_ADDRESS_P (XEXP (X, 1)))		\
> ! 	  || GET_CODE (XEXP (X, 0)) == ADDRESSOF))	\
> !     goto ADDR;						\

I can help but wonder if there are machine independent semantics that
we can put in that will apply to existing GO_IF_LEGITIMATE_ADDRESSes
that render your alpha.h change unnecessary...  It seems unclean to
have to embed knowledge of address-of into the file in this way.



More information about the Gcc mailing list