i386.c (output_set_got): Add a GOT initialization sequence for VxWorks PIC.
authorRichard Sandiford <richard@codesourcery.com>
Wed, 7 Mar 2007 09:02:14 +0000 (09:02 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 7 Mar 2007 09:02:14 +0000 (09:02 +0000)
commit170bdabaa286a79f565a6e8c6a9bcc514e19a7c2
treeeb38f6b5024536d2a0d27737e35ec58fac5d7355
parent26b5109ffe854436b7146e9eea898083a3b063de
i386.c (output_set_got): Add a GOT initialization sequence for VxWorks PIC.

gcc/
* config/i386/i386.c (output_set_got): Add a GOT initialization
sequence for VxWorks PIC.
(legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
around labels as well as symbols.  Use gotoff_operand instead
of local_symbolic_operand.
(legitimize_pic_address): Use gotoff_operand instead of
local_symbolic_operand.  Use @GOT accesses for labels as
well as symbols.
(ix86_output_addr_diff_elt): Use PC-relative rather than
GP-relative offsets for VxWorks PIC.
(ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
no_new_pseudos.  Check whether the returned register is op0.
* config/i386/i386.md (tablejump): Use PC-relative rather than
GP-relative offsets for VxWorks PIC.
* config/i386/predicates.md (gotoff_operand): New predicate.

From-SVN: r122654
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/predicates.md