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: 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


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