+2001-10-28 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
+ * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete.
+ (ASM_GLOBALIZE_LABEL): Use assemble_name.
+ (ASM_OUTPUT_COMMON): Likewise.
+ * config/rs6000/rs6000.c (print_operand): Use assemble_name.
+ (rs6000_output_function_epilogue): Likewise.
+ (output_mi_thunk): Fix typo.
+ (rs6000_output_symbol_ref): Use assemble_name.
+ (output_toc): Likewise.
+ * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete.
+ * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete;
+ assemble_name calls STRIP_NAME_ENCODING.
+ (ASM_OUTPUT_LABEL): Use assemble_name.
+ (ASM_GLOBALIZE_LABEL): Likewise.
+ (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op. Use assemble_name.
+ (ASM_OUTPUT_LOCAL): Likewise.
+
Sun Oct 28 15:45:16 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
if (TREE_CODE (DECL) == FUNCTION_DECL) \
{ \
fputs ("\n\t.extern .", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, XSTR (_symref, 0)); \
+ assemble_name (FILE, XSTR (_symref, 0)); \
} \
putc ('\n', FILE); \
}
#undef REGISTER_NAMES
#define REGISTER_NAMES DEBUG_REGISTER_NAMES
-/* This outputs NAME to FILE. */
-
-#undef RS6000_OUTPUT_BASENAME
-#define RS6000_OUTPUT_BASENAME(FILE, NAME) \
- assemble_name (FILE, NAME);
-
/* Output before instructions. */
/* This is how to output the definition of a user-level label named NAME,
such as the label on a static function or variable NAME. */
#undef ASM_GLOBALIZE_LABEL
#define ASM_GLOBALIZE_LABEL(FILE,NAME) \
do { fputs ("\t.globl ", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); putc ('\n', FILE);} while (0)
+ assemble_name (FILE, NAME); putc ('\n', FILE);} while (0)
/* This is how to output an internal label prefix. rs6000.c uses this
when generating traceback tables. */
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
do { fputs (".comm ", (FILE)); \
- RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
+ assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%d\n", (SIZE)); } while (0)
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
break;
}
}
-#if TARGET_AIX
- RS6000_OUTPUT_BASENAME (file, XSTR (x, 0));
-#else
assemble_name (file, XSTR (x, 0));
-#endif
return;
case 'Z':
/* Offset from start of code to tb table. */
fputs ("\t.long ", file);
ASM_OUTPUT_INTERNAL_LABEL_PREFIX (file, "LT");
-#if TARGET_AIX
- RS6000_OUTPUT_BASENAME (file, fname);
-#else
assemble_name (file, fname);
-#endif
fputs ("-.", file);
-#if TARGET_AIX
- RS6000_OUTPUT_BASENAME (file, fname);
-#else
assemble_name (file, fname);
-#endif
putc ('\n', file);
/* Interrupt handler mask. */
assemble_name (file, buf);
putc ('\n', file);
text_section ();
- asm_fprintf (file, (TARGET_32BIT) ? "\t{l|lwz} %s," : "\tld %s", r12);
+ asm_fprintf (file, (TARGET_32BIT) ? "\t{l|lwz} %s," : "\tld %s,", r12);
assemble_name (file, buf);
asm_fprintf (file, "(%s)\n", reg_names[2]);
asm_fprintf (file,
we emit the TOC reference to reference the symbol and not the
section. */
const char *name = XSTR (x, 0);
-
- if (VTABLE_NAME_P (name))
- {
- RS6000_OUTPUT_BASENAME (file, name);
- }
- else
- assemble_name (file, name);
+ assemble_name (file, name);
}
/* Output a TOC entry. We derive the entry name from what is being
section. */
if (VTABLE_NAME_P (name))
{
- RS6000_OUTPUT_BASENAME (file, name);
+ assemble_name (file, name);
if (offset < 0)
fprintf (file, "%d", offset);
else if (offset > 0)
#undef ENCODE_SECTION_INFO
#define ENCODE_SECTION_INFO(DECL) rs6000_encode_section_info (DECL)
-/* The ELF version doesn't encode [DS] or whatever at the end of symbols. */
-
-#define RS6000_OUTPUT_BASENAME(FILE, NAME) \
- assemble_name (FILE, NAME)
-
/* This macro gets just the user-specified name
out of the string in a SYMBOL_REF. Discard
a leading * or @. */
#define RS6000_ITRUNC "__itrunc"
#define RS6000_UITRUNC "__uitrunc"
-/* This outputs NAME to FILE up to the first null or '['. */
-
-#define RS6000_OUTPUT_BASENAME(FILE, NAME) \
- { \
- const char *_p; \
- \
- STRIP_NAME_ENCODING (_p, (NAME)); \
- assemble_name ((FILE), _p); \
- }
-
/* This is how to output the definition of a user-level label named NAME,
such as the label on a static function or variable NAME. */
#define ASM_OUTPUT_LABEL(FILE,NAME) \
- do { RS6000_OUTPUT_BASENAME (FILE, NAME); fputs (":\n", FILE); } while (0)
+ do { assemble_name (FILE, NAME); fputs (":\n", FILE); } while (0)
/* This is how to output a command to make the user-level label named NAME
defined for reference from other files. */
#define ASM_GLOBALIZE_LABEL(FILE,NAME) \
do { fputs ("\t.globl ", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); putc ('\n', FILE);} while (0)
+ assemble_name (FILE, NAME); putc ('\n', FILE);} while (0)
/* Remove any trailing [DS] or the like from the symbol name. */
if (TREE_PUBLIC (DECL)) \
{ \
fputs ("\t.globl .", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); \
+ assemble_name (FILE, NAME); \
putc ('\n', FILE); \
} \
else \
{ \
fputs ("\t.lglobl .", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); \
+ assemble_name (FILE, NAME); \
putc ('\n', FILE); \
} \
fputs ("\t.csect ", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); \
+ assemble_name (FILE, NAME); \
fputs (TARGET_32BIT ? "[DS]\n" : "[DS],3\n", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); \
+ assemble_name (FILE, NAME); \
fputs (":\n", FILE); \
fputs (TARGET_32BIT ? "\t.long ." : "\t.llong .", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); \
+ assemble_name (FILE, NAME); \
fputs (", TOC[tc0], 0\n", FILE); \
in_section = no_section; \
function_section(DECL); \
putc ('.', FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); \
+ assemble_name (FILE, NAME); \
fputs (":\n", FILE); \
if (write_symbols == XCOFF_DEBUG) \
xcoffout_declare_function (FILE, DECL, NAME); \
to define a global common symbol. */
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGNMENT) \
- do { fputs (".comm ", (FILE)); \
- RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
+ do { fputs ("\t.comm ", (FILE)); \
+ assemble_name ((FILE), (NAME)); \
if ( (SIZE) > 4) \
fprintf ((FILE), ",%d,3\n", (SIZE)); \
else \
for 64-bit mode. */
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
- do { fputs (".lcomm ", (FILE)); \
- RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
+ do { fputs ("\t.lcomm ", (FILE)); \
+ assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%d,%s\n", (TARGET_32BIT ? (SIZE) : (ROUNDED)), \
xcoff_bss_section_name); \
} while (0)