OSDN Git Service

Handle address output and call patterns for x32.
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Jul 2011 22:38:47 +0000 (22:38 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Jul 2011 22:38:47 +0000 (22:38 +0000)
commit9636738d250f3761bcec22f34fe778179e547c27
treeb0f28a85e8824eaa6cda1da6d936c38b9926e5af
parent2e337e8f16949d1b3b52186e1f2f181740dbbe29
Handle address output and call patterns for x32.

2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
    Uros Bizjak  <ubizjak@gmail.com>
    Richard Henderson  <rth@redhat.com>

* config/i386/constraints.md (w): New.

* config/i386/i386.c (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 indirect_branch_operand.
(*indirect_jump): Likewise.  Replace constraint "m" with "w".
(tablejump): Replace nonimmediate_operand with
indirect_branch_operand.  Convert operand 0 to Pmode for x32 if
not PIC.
(*tablejump_1): Replace nonimmediate_operand with
indirect_branch_operand.  Replace constraint "m" with "w".
(*call_vzeroupper): Replace constraint "m" with "w".
(*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.
(set_got_offset_rex64): Check TARGET_LP64 instead of
TARGET_64BIT.

* config/i386/predicates.md (indirect_branch_operand): New.
(call_insn_operand): Support x32.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176539 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/constraints.md
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/predicates.md