This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PING: PATCH [4/n]: Prepare x32: Permute the conversion and addition if one operand is a constant
On Wed, Jul 13, 2011 at 18:39, H.J. Lu <hjl.tools@gmail.com> wrote:
>> Why? ?Certainly Y = 8 has 31-bit (or less) precision. ?So it has the same
>> representation in SImode and DImode, and the test above on XEXP (x, 1)
>> succeeds.
>
> And then we permute conversion and addition, which leads to the issue you
> raised above. ?In another word, the current code permutes conversion
> and addition.
No, only if we have ptr_extend. It may be buggy as well, but let's
make sure first that x32 is done right, then perhaps whoever cares can
fix ptr_extend if it has to be fixed. I don't know the semantics of
ia64 addp4 so I cannot tell.
> I opened a new bug:
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49721
Good, thanks.
> My current code looks like:
>
> ? case CONST:
> ? ? ?temp = convert_memory_address_addr_space_1 (to_mode, XEXP (x, 0),
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?as, no_emit,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ignore_address_wrap_around);
Here I stopped reading. It's not what I asked for, so at least you
should say clearly _why_.
Paolo