aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-10-16 18:39:47 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-10-16 18:39:47 -0700
commitf88c65f7e37e6842e6ea3c84022a16f9fa9492c8 (patch)
tree0278d65c37795602590af63f453e4fe59489296b /gcc/config
parentb5823a4422a16cfbe1b48fde4d82fd7e421f5241 (diff)
downloadgcc-f88c65f7e37e6842e6ea3c84022a16f9fa9492c8.zip
gcc-f88c65f7e37e6842e6ea3c84022a16f9fa9492c8.tar.gz
gcc-f88c65f7e37e6842e6ea3c84022a16f9fa9492c8.tar.bz2
configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
* configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check. * configure, config.in: Rebuild. * config/i386/i386.c (ix86_output_addr_vec_elt): New. (ix86_output_addr_diff_elt): New. * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them. (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. (JUMP_TABLES_IN_TEXT_SECTION): New. * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA. * config/i386/i386-protos.h: Update. * config/i386/386bsd.h, config/i386/beos-elf.h, config/i386/freebsd-aout.h, config/i386/freebsd.h, config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h, config/i386/netbsd-elf.h, config/i386/netbsd.h, config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove. From-SVN: r46303
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/386bsd.h16
-rw-r--r--gcc/config/i386/beos-elf.h11
-rw-r--r--gcc/config/i386/freebsd-aout.h16
-rw-r--r--gcc/config/i386/freebsd.h11
-rw-r--r--gcc/config/i386/i386-interix.h15
-rw-r--r--gcc/config/i386/i386-protos.h4
-rw-r--r--gcc/config/i386/i386.c34
-rw-r--r--gcc/config/i386/i386.h18
-rw-r--r--gcc/config/i386/i386.md7
-rw-r--r--gcc/config/i386/i386elf.h13
-rw-r--r--gcc/config/i386/linux.h11
-rw-r--r--gcc/config/i386/netbsd-elf.h10
-rw-r--r--gcc/config/i386/netbsd.h16
-rw-r--r--gcc/config/i386/openbsd.h18
-rw-r--r--gcc/config/i386/ptx4-i.h13
-rw-r--r--gcc/config/i386/rtemself.h11
-rw-r--r--gcc/config/i386/sco5.h12
-rw-r--r--gcc/config/i386/sysv4.h13
-rw-r--r--gcc/config/i386/x86-64.h14
19 files changed, 55 insertions, 208 deletions
diff --git a/gcc/config/i386/386bsd.h b/gcc/config/i386/386bsd.h
index 84d1794..a34e6e5 100644
--- a/gcc/config/i386/386bsd.h
+++ b/gcc/config/i386/386bsd.h
@@ -47,22 +47,6 @@
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
-
-/* The following macros are stolen from i386v4.h */
-/* These have to be defined to get PIC code correct */
-
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-
-#define JUMP_TABLES_IN_TEXT_SECTION 1
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
diff --git a/gcc/config/i386/beos-elf.h b/gcc/config/i386/beos-elf.h
index be948a3..d4c0de4 100644
--- a/gcc/config/i386/beos-elf.h
+++ b/gcc/config/i386/beos-elf.h
@@ -37,17 +37,6 @@ Boston, MA 02111-1307, USA. */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START " #"
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
diff --git a/gcc/config/i386/freebsd-aout.h b/gcc/config/i386/freebsd-aout.h
index a2c318f..6dc0a1d 100644
--- a/gcc/config/i386/freebsd-aout.h
+++ b/gcc/config/i386/freebsd-aout.h
@@ -76,22 +76,6 @@ Boston, MA 02111-1307, USA. */
/* FreeBSD using a.out does not support DWARF2 unwinding mechanisms. */
#define DWARF2_UNWIND_INFO 0
-/* The following macros are stolen from i386v4.h */
-/* These have to be defined to get PIC code correct */
-
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-
-#define JUMP_TABLES_IN_TEXT_SECTION 1
-
/* Don't default to pcc-struct-return, because in FreeBSD we prefer the
superior nature of the older gcc way. */
#define DEFAULT_PCC_STRUCT_RETURN 0
diff --git a/gcc/config/i386/freebsd.h b/gcc/config/i386/freebsd.h
index 2d34117..ba15268 100644
--- a/gcc/config/i386/freebsd.h
+++ b/gcc/config/i386/freebsd.h
@@ -38,17 +38,6 @@ Boston, MA 02111-1307, USA. */
#undef SET_ASM_OP
#define SET_ASM_OP "\t.set\t"
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf ((FILE), "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
diff --git a/gcc/config/i386/i386-interix.h b/gcc/config/i386/i386-interix.h
index 5b114106..3da0807 100644
--- a/gcc/config/i386/i386-interix.h
+++ b/gcc/config/i386/i386-interix.h
@@ -227,21 +227,6 @@ Boston, MA 02111-1307, USA. */
} \
while (0)
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs.
- PE format differs on what PC-relative offsets look like (see
- coff_i386_rtype_to_howto), and we need to compensate (by one word) here. */
-
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long __GLOBAL_OFFSET_TABLE_+[.-%s%d+4]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-
-#define JUMP_TABLES_IN_TEXT_SECTION 1
-
/* Emit code to check the stack when allocating more that 4000
bytes in one go. */
diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
index 410b84e..111dc16 100644
--- a/gcc/config/i386/i386-protos.h
+++ b/gcc/config/i386/i386-protos.h
@@ -36,6 +36,9 @@ extern void ix86_expand_epilogue PARAMS ((int));
extern void ix86_output_function_block_profiler PARAMS ((FILE *, int));
extern void ix86_output_block_profiler PARAMS ((FILE *, int));
+extern void ix86_output_addr_vec_elt PARAMS ((FILE *, int));
+extern void ix86_output_addr_diff_elt PARAMS ((FILE *, int, int));
+
#ifdef RTX_CODE
extern int ix86_aligned_p PARAMS ((rtx));
@@ -94,6 +97,7 @@ extern void print_operand PARAMS ((FILE*, rtx, int));
extern void print_operand_address PARAMS ((FILE*, rtx));
extern void split_di PARAMS ((rtx[], int, rtx[], rtx[]));
+extern void split_ti PARAMS ((rtx[], int, rtx[], rtx[]));
extern const char *output_387_binary_op PARAMS ((rtx, rtx*));
extern const char *output_fix_trunc PARAMS ((rtx, rtx*));
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 00b28a9..6be389c 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -6659,6 +6659,40 @@ ix86_output_block_profiler (file, blockno)
break;
}
}
+
+void
+ix86_output_addr_vec_elt (file, value)
+ FILE *file;
+ int value;
+{
+ const char *directive = ASM_LONG;
+
+ if (TARGET_64BIT)
+ {
+#ifdef ASM_QUAD
+ directive = ASM_QUAD;
+#else
+ abort ();
+#endif
+ }
+
+ fprintf (file, "%s%s%d\n", directive, LPREFIX, value);
+}
+
+void
+ix86_output_addr_diff_elt (file, value, rel)
+ FILE *file;
+ int value, rel;
+{
+ if (TARGET_64BIT)
+ fprintf (file, "%s%s%d-.+4+(.-%s%d)\n",
+ ASM_LONG, LPREFIX, value, LPREFIX, rel);
+ else if (HAVE_AS_GOTOFF_IN_DATA)
+ fprintf (file, "%s%s%d@GOTOFF\n", ASM_LONG, LPREFIX, value);
+ else
+ asm_fprintf (file, "%s%U_GLOBAL_OFFSET_TABLE_+[.-%s%d]\n",
+ ASM_LONG, LPREFIX, value);
+}
void
ix86_expand_move (mode, operands)
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 75b72d8..49c1b27 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2979,19 +2979,21 @@ do { long l; \
#define ASM_OUTPUT_REG_POP(FILE,REGNO) \
asm_fprintf (FILE, "\tpop{l}\t%%e%s\n", reg_names[REGNO])
-/* This is how to output an element of a case-vector that is absolute.
- */
+/* This is how to output an element of a case-vector that is absolute. */
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
- fprintf (FILE, "%s%s%d\n", TARGET_64BIT ? ASM_QUAD : ASM_LONG, LPREFIX, VALUE)
+ ix86_output_addr_vec_elt (FILE, VALUE)
-/* This is how to output an element of a case-vector that is relative.
- We don't use these on the 386 yet, because the ATT assembler can't do
- forward reference the differences.
- */
+/* This is how to output an element of a case-vector that is relative. */
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "%s%s%d-%s%d\n",ASM_LONG, LPREFIX, VALUE, LPREFIX, REL)
+ ix86_output_addr_diff_elt (FILE, VALUE, REL)
+
+/* Under some conditions we need jump tables in the text section, because
+ the assembler cannot handle label differences between sections. */
+
+#define JUMP_TABLES_IN_TEXT_SECTION \
+ (!TARGET_64BIT && flag_pic && !HAVE_AS_GOTOFF_IN_DATA)
/* A C statement that outputs an address constant appropriate to
for DWARF debugging. */
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index c02702a..e12c4bd 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -13123,6 +13123,13 @@
gen_rtx_LABEL_REF (Pmode, operands[1]),
NULL_RTX, 0,
OPTAB_DIRECT);
+ else if (HAVE_AS_GOTOFF_IN_DATA)
+ {
+ operands[0] = expand_simple_binop (Pmode, PLUS, operands[0],
+ pic_offset_table_rtx, NULL_RTX,
+ 1, OPTAB_DIRECT);
+ current_function_uses_pic_offset_table = 1;
+ }
else
{
operands[0] = expand_simple_binop (Pmode, MINUS, pic_offset_table_rtx,
diff --git a/gcc/config/i386/i386elf.h b/gcc/config/i386/i386elf.h
index 34ceed5..2f47573 100644
--- a/gcc/config/i386/i386elf.h
+++ b/gcc/config/i386/i386elf.h
@@ -156,19 +156,6 @@ do { long value[3]; \
} \
while (0)
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-
-#define JUMP_TABLES_IN_TEXT_SECTION 1
-
#define LOCAL_LABEL_PREFIX "."
/* Switch into a generic section. */
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
index c80a3fe..9ace75f 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
@@ -43,17 +43,6 @@ Boston, MA 02111-1307, USA. */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START "#"
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
diff --git a/gcc/config/i386/netbsd-elf.h b/gcc/config/i386/netbsd-elf.h
index 48d8129..e37b1c1 100644
--- a/gcc/config/i386/netbsd-elf.h
+++ b/gcc/config/i386/netbsd-elf.h
@@ -168,16 +168,6 @@ Boston, MA 02111-1307, USA. */
}
#endif
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf ((FILE), "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
/*
* We always use gas here, so we don't worry about ECOFF assembler problems.
*/
diff --git a/gcc/config/i386/netbsd.h b/gcc/config/i386/netbsd.h
index 8ff61bc..8f5ba20 100644
--- a/gcc/config/i386/netbsd.h
+++ b/gcc/config/i386/netbsd.h
@@ -35,22 +35,6 @@
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
-
-/* The following macros are stolen from i386v4.h */
-/* These have to be defined to get PIC code correct */
-
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-
-#define JUMP_TABLES_IN_TEXT_SECTION 1
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
diff --git a/gcc/config/i386/openbsd.h b/gcc/config/i386/openbsd.h
index 4705775..a07ee15 100644
--- a/gcc/config/i386/openbsd.h
+++ b/gcc/config/i386/openbsd.h
@@ -59,24 +59,6 @@ Boston, MA 02111-1307, USA. */
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
-/* The following macros were originally stolen from i386v4.h.
- These have to be defined to get PIC code correct. */
-
-/* Assembler format: dispatch tables. */
-
-/* How to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Assembler format: sections. */
-
-/* Indicate when jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
/* Stack & calling: aggregate returns. */
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
diff --git a/gcc/config/i386/ptx4-i.h b/gcc/config/i386/ptx4-i.h
index 735408e..ad2df8e 100644
--- a/gcc/config/i386/ptx4-i.h
+++ b/gcc/config/i386/ptx4-i.h
@@ -150,16 +150,3 @@ do { long value[3]; \
fprintf ((FILE), "\n"); \
} \
while (0)
-
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-
-#define JUMP_TABLES_IN_TEXT_SECTION 1
diff --git a/gcc/config/i386/rtemself.h b/gcc/config/i386/rtemself.h
index 003f248..ce59e7f 100644
--- a/gcc/config/i386/rtemself.h
+++ b/gcc/config/i386/rtemself.h
@@ -38,17 +38,6 @@ Boston, MA 02111-1307, USA. */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 1
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]
diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h
index 16d5fcf..b406512 100644
--- a/gcc/config/i386/sco5.h
+++ b/gcc/config/i386/sco5.h
@@ -237,15 +237,6 @@ do { \
sprintf (LABEL, ".%s%d", (PREFIX), (NUM)); \
} while (0)
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
-do { \
- if (TARGET_ELF) \
- fprintf (FILE, "%s_GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", ASM_LONG, LPREFIX, VALUE); \
- else \
- fprintf (FILE, "%s%s%d-%s%d\n", ASM_LONG, LPREFIX,VALUE,LPREFIX,REL); \
-} while (0)
-
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
do { \
@@ -533,9 +524,6 @@ init_section () \
((TARGET_ELF) ? 0 : \
(current_function_calls_setjmp || current_function_calls_longjmp))
-#undef JUMP_TABLES_IN_TEXT_SECTION
-#define JUMP_TABLES_IN_TEXT_SECTION (TARGET_ELF && flag_pic)
-
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX \
((TARGET_ELF) ? "" : ".")
diff --git a/gcc/config/i386/sysv4.h b/gcc/config/i386/sysv4.h
index f56d583..56cd238 100644
--- a/gcc/config/i386/sysv4.h
+++ b/gcc/config/i386/sysv4.h
@@ -159,19 +159,6 @@ do { long value[3]; \
} \
while (0)
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
NAME whose size is SIZE bytes and alignment is ALIGN bytes.
diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
index baf5b24..8c9912d 100644
--- a/gcc/config/i386/x86-64.h
+++ b/gcc/config/i386/x86-64.h
@@ -27,20 +27,6 @@ Boston, MA 02111-1307, USA. */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START "#"
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- if (TARGET_64BIT) \
- fprintf (FILE, "\t.long %s%d-.+4+(.-%s%d)\n", LPREFIX, VALUE, LPREFIX, REL); \
- else \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic && !TARGET_64BIT)
-
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])