summaryrefslogtreecommitdiff
path: root/gcc/final.c
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/final.c
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/final.c')
-rw-r--r--gcc/final.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/final.c b/gcc/final.c
index a07a568fc5e..ca38b96f639 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -785,7 +785,7 @@ get_attr_length (insn)
#endif
#ifndef LABEL_ALIGN_AFTER_BARRIER
-#define LABEL_ALIGN_AFTER_BARRIER(LABEL) 1
+#define LABEL_ALIGN_AFTER_BARRIER(LABEL) 0
#endif
#ifndef LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP
@@ -2338,12 +2338,16 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
#else
if (! JUMP_TABLES_IN_TEXT_SECTION)
{
+ int log_align;
+
readonly_data_section ();
-#ifdef READONLY_DATA_SECTION
- ASM_OUTPUT_ALIGN (file,
- exact_log2 (BIGGEST_ALIGNMENT
- / BITS_PER_UNIT));
-#endif /* READONLY_DATA_SECTION */
+
+#ifdef ADDR_VEC_ALIGN
+ log_align = ADDR_VEC_ALIGN (nextbody);
+#else
+ log_align = exact_log2 (BIGGEST_ALIGNMENT / BITS_PER_UNIT);
+#endif
+ ASM_OUTPUT_ALIGN (file, log_align);
}
else
function_section (current_function_decl);