aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sparc/sparc.c14
2 files changed, 17 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e7665f3..5e26f60 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Tue Sep 1 15:55:17 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
+
+ * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
+ alignment, use FUNCTION_BOUNDARY instead.
+ (sparc_output_deferred_case_vectors): Likewise.
+
Mon Aug 31 17:25:41 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
* config/sparc/sparc.md (movsf_const_intreg): Kill warning.
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 9784f1d..c7ce12a 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -2556,10 +2556,14 @@ finalize_pic ()
/* If we havn't emitted the special get_pc helper function, do so now. */
if (get_pc_symbol_name[0] == 0)
{
- ASM_GENERATE_INTERNAL_LABEL (get_pc_symbol_name, "LGETPC", 0);
+ int align;
+ ASM_GENERATE_INTERNAL_LABEL (get_pc_symbol_name, "LGETPC", 0);
text_section ();
- ASM_OUTPUT_ALIGN (asm_out_file, 3);
+
+ align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT);
+ if (align > 0)
+ ASM_OUTPUT_ALIGN (asm_out_file, align);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "LGETPC", 0);
fputs ("\tretl\n\tadd %o7,%l7,%l7\n", asm_out_file);
}
@@ -7235,10 +7239,14 @@ static void
sparc_output_deferred_case_vectors ()
{
rtx t;
+ int align;
/* Align to cache line in the function's code section. */
function_section (current_function_decl);
- ASM_OUTPUT_ALIGN (asm_out_file, 5);
+
+ align = floor_log2 (FUNCTION_BOUNDARY / BITS_PER_UNIT);
+ if (align > 0)
+ ASM_OUTPUT_ALIGN (asm_out_file, 5);
for (t = sparc_addr_list; t ; t = XEXP (t, 1))
sparc_output_addr_vec (XEXP (t, 0));