PATCH: PR target/49860: [x32] Error: cannot represent relocation type BFD_RELOC_64 in x32 mode

Uros Bizjak ubizjak@gmail.com
Wed Jul 27 13:22:00 GMT 2011


On Wed, Jul 27, 2011 at 2:44 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Wed, Jul 27, 2011 at 1:06 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>> On Wed, Jul 27, 2011 at 6:31 AM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>
>>> The offsetted memory references always work for x32.  OK for trunk?
>>
>> No, this is the same issue as in [1]. Please fix the assembler to
>> zero-extend this relocation.
>>
>
> It is about address range.  The  offsetted memory references are for x32
> since they are OK for TARGET_32BIT.  There is no difference between
> TARGET_X32 and TARGET_32BIT on this.

Pmode is still in DImode and DImode addresses are *valid* addresses.
For the testcase from PR,
expand generates SImode symbol that is later extended to DImode and
handled through movabs.

Your patch just papers over this fact. Please see how
*movdi_internal_rex64 handles immediates.

Uros.



More information about the Gcc-patches mailing list