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: PATCH [7/n] X32: Handle address output and calls patterns


On Tue, Jul 19, 2011 at 6:16 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Jul 19, 2011 at 10:25 AM, Richard Henderson <rth@redhat.com> wrote:
>> On 07/19/2011 10:18 AM, H.J. Lu wrote:
>>> I had it in my x32 tree. But I reverted:
>>>
>>> http://gcc.gnu.org/ml/gcc-patches/2011-02/msg00954.html
>>>
>>> since Pmode is used in non-PIC tablejump, we have to put 64bit value for
>>> labels with 0 upper 32bits in tablejump for x32.
>>
>> The mode is completely controled by CASE_VECTOR_MODE.
>>
>
> Here is the updated patch. ?OK for trunk?
>

A small change.  It always use 64bit register for indirect branch.

-- 
H.J.
---
2011-07-18  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_print_operand): Always use 64bit
	register for indirect branch.
	(ix86_output_addr_vec_elt): Check TARGET_LP64 instead of
	TARGET_64BIT for ASM_QUAD.

	* config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
	instead of TARGET_64BIT.

	* config/i386/i386.md (*indirect_jump): Replace
	nonimmediate_operand with x32_indirect_branch_operand.
	(*tablejump_1): Likewise.
	(*call_vzeroupper): Replace call_insn_operand with
	x32_call_insn_operand.
	(*call): Likewise.
	(*call_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_rex64_ms_sysv): Likewise.
	(*call_value_vzeroupper): Likewise.
	(*call_value): Likewise.
	(*call_value_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_value_rex64_ms_sysv): Likewise.
	(*tablejump_1_x32): New.

	* config/i386/predicates.md (x32_indirect_branch_operand): New.
	(x32_call_insn_operand): Likewise.

Attachment: gcc-x32-symbol-3.patch
Description: Text document


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