This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: SPARC: consolidate 7 move expanders
- From: David S. Miller <davem at davemloft dot net>
- To: ebotcazou at libertysurf dot fr
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sun, 22 May 2005 21:11:26 -0700 (PDT)
- Subject: Re: SPARC: consolidate 7 move expanders
- References: <200505230206.26057.ebotcazou@libertysurf.fr>
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.