summaryrefslogtreecommitdiff
path: root/gcc/config/ia64/ia64.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-08-22 08:31:44 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-08-22 08:31:44 +0000
commitfeb8ef57dbef254d81a683ad764ef7253e296164 (patch)
treea01c3fec4756997f1c5a4fa55e4010e535f98cb9 /gcc/config/ia64/ia64.h
parent811aa2572b2d35ad8306d5ae6583de81b1d4827d (diff)
downloadgcc-feb8ef57dbef254d81a683ad764ef7253e296164.tar.gz
* final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
(final_scan_insn): Consider jump tables data even if we have no independant text section if !JUMP_TABLES_IN_TEXT_SECTION. Use ADDR_VEC_ALIGN. * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove. (ASM_OUTPUT_CASE_END): Remove. (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references. * config/ia64/ia64.md (tablejump): Decode pc-relative references. * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45103 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/ia64/ia64.h')
-rw-r--r--gcc/config/ia64/ia64.h30
1 files changed, 3 insertions, 27 deletions
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index 40fbf941c75..ccd6df7fbaa 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -1933,19 +1933,6 @@ do { \
#define BSS_SECTION_ASM_OP "\t.bss"
-/* Define this macro if jump tables (for `tablejump' insns) should be output in
- the text section, along with the assembler instructions. */
-
-/* ??? It is probably better for the jump tables to be in the rodata section,
- which is where they go by default. Unfortunately, that currently does not
- work, because of some problem with pcrelative relocations not getting
- resolved correctly. */
-/* ??? FIXME ??? rth says that we should use @gprel to solve this problem. */
-/* ??? If jump tables are in the text section, then we can use 4 byte
- entries instead of 8 byte entries. */
-
-#define JUMP_TABLES_IN_TEXT_SECTION 1
-
/* Define this macro if references to a symbol must be treated differently
depending on something about the variable or function named by the symbol
(such as what section it is in). */
@@ -2437,19 +2424,13 @@ do { \
/* ??? Depends on the pointer size. */
#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL) \
- fprintf (STREAM, "\tdata8 .L%d-.L%d\n", VALUE, REL)
+ fprintf (STREAM, "\tdata8 @pcrel(.L%d)\n", VALUE)
/* This is how to output an element of a case-vector that is absolute.
(Ia64 does not use such vectors, but we must define this macro anyway.) */
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) abort ()
-/* Define this if something special must be output at the end of a jump-table.
- We need to align back to a 16 byte boundary because offsets are smaller than
- instructions. */
-
-#define ASM_OUTPUT_CASE_END(STREAM, NUM, TABLE) ASM_OUTPUT_ALIGN (STREAM, 4)
-
/* Jump tables only need 8 byte alignment. */
#define ADDR_VEC_ALIGN(ADDR_VEC) 3
@@ -2488,21 +2469,16 @@ do { \
/* Assembler Commands for Alignment. */
-/* The alignment (log base 2) to put in front of LABEL, which follows
- a BARRIER. */
-
/* ??? Investigate. */
-/* ??? Emitting align directives increases the size of the line number debug
- info, because each .align forces use of an extended opcode. Perhaps try
- to fix this in the assembler? */
+/* The alignment (log base 2) to put in front of LABEL, which follows
+ a BARRIER. */
/* #define LABEL_ALIGN_AFTER_BARRIER(LABEL) */
/* The desired alignment for the location counter at the beginning
of a loop. */
-/* ??? Investigate. */
/* #define LOOP_ALIGN(LABEL) */
/* Define this macro if `ASM_OUTPUT_SKIP' should not be used in the text