This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: SSE scalar move paterns


On Mon, Feb 12, 2001 at 11:15:16PM +0100, Jan Hubicka wrote:
> Only questional bit is probably the 'Y' constraint I define to be SSE_REGS
> when SSE2 is availbale.  This is basically just to reduce number of patterns
> in the compiler. Perhaps we should document it as gcc internal.

It's mildly unfortunate that 'x' is SSE1 so that 'y' and 'Y' don't match.
Not worth worrying about, I'd guess.

> 	* i386.c (print_reg): Use ANY_FP_REG instead of FP_REG
> 	* i386.h (MASK_128BIT_LONG_DOUBLE): Renumber
> 	(MASK_SSE2): New.
> 	(MASK_MIX_SSE_I387): New.
> 	(TARGET_SSE): SSE2 imply SSE.
> 	(TARGET_SSE2, TARGET_MIX_SSE_I387): New.
> 	(TARGET_SWITCHES): Add "sse2", "mix-sse-i387".
> 	(enum reg_class): Add new classes.
> 	(REG_CLASS_NAMES): Likewise.
> 	(REG_CLASS_CONTENTS): Likewise.
> 	(ANY_FP_REG_P, ANY_FP_REGNO_P, SSE_REG_P, SSE_FLOAT_MODE): New macros.
> 	(REG_CLASS_FROM_LETTER): 'x' and 'y' is SSE_REGS only when SSE is
> 	supported. Add 'Y' to be SSE_REGS when SSE2 is supported.
> 	(CLASS_MAX_NREGS): Use new macros.
> 	(REGISTER_MOVE_COST): Rewrite using SECONDARY_MEMORY_MAYBE_NEEDED.
> 	* i386.md (pushsf, movsf): Support SSE.
> 	(pushdf_nointeger, pushdf_integer, pushdf): Support SSE, update
> 	splitters to use ANY_FP_REGNO_P.
> 	(movdf_nointeger, movdf_integer): Likewise.

Ok.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]