aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.md
diff options
context:
space:
mode:
authorRichard Sandiford <richard@codesourcery.com>2007-03-07 09:02:14 +0000
committerRichard Sandiford <richard@codesourcery.com>2007-03-07 09:02:14 +0000
commit984b17fc0d7ef38a1e0d7f824fdbbe39c2c37ac6 (patch)
treeeb38f6b5024536d2a0d27737e35ec58fac5d7355 /gcc/config/i386/i386.md
parent2046c701e0f7bdb22033ab0c6430a18cd7f281d0 (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@122654 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/i386.md')
-rw-r--r--gcc/config/i386/i386.md4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index f66318b86eb..507edd69065 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -14353,7 +14353,9 @@
rtx op0, op1;
enum rtx_code code;
- if (TARGET_64BIT)
+ /* We can't use @GOTOFF for text labels on VxWorks;
+ see gotoff_operand. */
+ if (TARGET_64BIT || TARGET_VXWORKS_RTP)
{
code = PLUS;
op0 = operands[0];