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]
Other format: [Raw text]

Re: SPARC: consolidate 7 move expanders


From: Eric Botcazou <ebotcazou@libertysurf.fr>
Date: Mon, 23 May 2005 02:06:25 +0200

> Does anyone have an opinion as to whether the lines
> 
>   /* Working with CONST_INTs is easier, so convert a double if needed.  */
>   if (GET_CODE (operands[1]) == CONST_DOUBLE
>       && GET_MODE (operands[1]) == VOIDmode
> #if HOST_BITS_PER_WIDE_INT == 32
>       && (mode != DImode
> 	  || ((CONST_DOUBLE_HIGH (operands[1]) == 0
> 	       && (CONST_DOUBLE_LOW (operands[1]) & 0x80000000) == 0)
> 	      || (CONST_DOUBLE_HIGH (operands[1]) == (HOST_WIDE_INT) 0xffffffff
> 	          && (CONST_DOUBLE_LOW (operands[1]) & 0x80000000) != 0)))
> #endif
>     )
>     operands[1] = gen_int_mode (CONST_DOUBLE_LOW (operands[1]), mode);
> 
> and, for the FP modes, the lines
> 
>       /* emit_group_store will send such bogosity to us when it is
>          not storing directly into memory.  So fix this up to avoid
>          crashes in output_constant_pool.  */
>       if (operands [1] == const0_rtx)
> 	operands[1] = CONST0_RTX (mode);
> 
> still make sense nowadays?  Thanks in advance.

The integer one is definitely not needed any longer.

The FP one I have no idea, it definitely did trigger during regression
testing back when I added that conditional.


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