PATCH [5/n] X32: Supprot 32bit address

H.J. Lu hjl.tools@gmail.com
Fri Jul 15 13:36:00 GMT 2011


On Fri, Jul 15, 2011 at 5:49 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Sun, Jul 10, 2011 at 12:20 AM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>
>> TARGET_MEM_REF only works on ptr_mode.  That means base and index parts
>> of x86 address operand in x32 mode may be in ptr_mode.  This patch
>> supports 32bit base and index parts in x32 mode.  OK for trunk?
>>
>> Thanks.
>>
>>
>> H.J.
>> ---
>> 2011-07-09  H.J. Lu  <hongjiu.lu@intel.com>
>>
>>        * config/i386/i386.c (ix86_simplify_base_index_disp): New.
>>        (ix86_decompose_address): Support 32bit address in x32 mode.
>>        (ix86_legitimate_address_p): Likewise.
>>        (ix86_fixup_binary_operands): Likewise.
>
> Why don't you handle translations in TARGET_LEGITIMIZE_ADDRESS (or
> maybe also LEGITIMIZE_RELOAD_ADDRESS) ?
>

It is because ix86_decompose_address is also called from:

predicates.md:  ok = ix86_decompose_address (op, &parts);
predicates.md:  ok = ix86_decompose_address (op, &parts);
predicates.md:  ok = ix86_decompose_address (XEXP (op, 0), &parts);
predicates.md:  ok = ix86_decompose_address (XEXP (op, 0), &parts);
predicates.md:  ok = ix86_decompose_address (XEXP (op, 0), &parts);


-- 
H.J.



More information about the Gcc-patches mailing list