sparc.c (finalize_pic): Don't output arbitrary alignment, use FUNCTION_BOUNDARY instead.
authorDavid S. Miller <davem@pierdol.cobaltmicro.com>
Tue, 1 Sep 1998 16:59:46 +0000 (16:59 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Tue, 1 Sep 1998 16:59:46 +0000 (09:59 -0700)
* config/sparc/sparc.c (finalize_pic): Don't output arbitrary
alignment, use FUNCTION_BOUNDARY instead.
(sparc_output_deferred_case_vectors): Likewise.

From-SVN: r22162

gcc/ChangeLog
gcc/config/sparc/sparc.c

index e7665f38a00cd6e4b1f6b8fd504a37144c927188..5e26f60d5975a31c531dd13bca5248ea065331df 100644 (file)
@@ -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.
index 9784f1dad4da6c4443baa6d9f371b28b9434ec9b..c7ce12aa1bd6114a54a25a909a5bd5b227b70d1c 100644 (file)
@@ -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));