This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] MicroBlaze use default ident output generation


Remove the MicroBlaze specific TARGET_ASM_OUTPUT_IDENT definition, and
use the default.

This resolves issues associated with the use of the .sdata2 operation in
cases where emitted assembly after the ident output is incorrectly in
the .sdata2 section instead of .text or any other expected section.
Which results in assembly failures including operations with symbols
across different segments.

gcc/ChangeLog

2017-11-16  Nathan Rossi  <nathan@nathanrossi.com>

	PR target/83013
	* config/microblaze/microblaze-protos.h
	(microblaze_asm_output_ident): Delete
	* config/microblaze/microblaze.c (microblaze_asm_output_ident): Delete
	* config/microblaze/microblaze.h (TARGET_ASM_OUTPUT_IDENT): Default
---
 gcc/config/microblaze/microblaze-protos.h |  1 -
 gcc/config/microblaze/microblaze.c        | 24 ------------------------
 gcc/config/microblaze/microblaze.h        |  2 +-
 3 files changed, 1 insertion(+), 26 deletions(-)

diff --git a/gcc/config/microblaze/microblaze-protos.h b/gcc/config/microblaze/microblaze-protos.h
index 747ef35971..3d3e8c5a64 100644
--- a/gcc/config/microblaze/microblaze-protos.h
+++ b/gcc/config/microblaze/microblaze-protos.h
@@ -51,7 +51,6 @@ extern int microblaze_regno_ok_for_base_p (int, int);
 extern HOST_WIDE_INT microblaze_initial_elimination_offset (int, int);
 extern void microblaze_declare_object (FILE *, const char *, const char *,
    const char *, int);
-extern void microblaze_asm_output_ident (const char *);
 extern int microblaze_legitimate_pic_operand (rtx);
 extern bool microblaze_tls_referenced_p (rtx);
 extern int symbol_mentioned_p (rtx);
diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index 7487523877..379f4c4d7f 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -3377,30 +3377,6 @@ microblaze_eh_return (rtx op0)
   emit_insn (gen_movsi (gen_rtx_MEM (Pmode, stack_pointer_rtx), op0));
 }
 
-/* Queue an .ident string in the queue of top-level asm statements.
-   If the string size is below the threshold, put it into .sdata2.
-   If the front-end is done, we must be being called from toplev.c.
-   In that case, do nothing.  */
-void 
-microblaze_asm_output_ident (const char *string)
-{
-  const char *section_asm_op;
-  int size;
-  char *buf;
-
-  if (symtab->state != PARSING)
-    return;
-
-  size = strlen (string) + 1;
-  if (size <= microblaze_section_threshold)
-    section_asm_op = SDATA2_SECTION_ASM_OP;
-  else
-    section_asm_op = READONLY_DATA_SECTION_ASM_OP;
-
-  buf = ACONCAT ((section_asm_op, "\n\t.ascii \"", string, "\\0\"\n", NULL));
-  symtab->finalize_toplevel_asm (build_string (strlen (buf), buf));
-}
-
 static void
 microblaze_elf_asm_init_sections (void)
 {
diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
index 59cc1cc2e3..06155d3163 100644
--- a/gcc/config/microblaze/microblaze.h
+++ b/gcc/config/microblaze/microblaze.h
@@ -705,7 +705,7 @@ do {									\
 #define STRING_ASM_OP			"\t.asciz\t"
 
 #undef TARGET_ASM_OUTPUT_IDENT
-#define TARGET_ASM_OUTPUT_IDENT microblaze_asm_output_ident
+#define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive
 
 /* Default to -G 8 */
 #ifndef MICROBLAZE_DEFAULT_GVALUE
-- 
2.15.0



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]