Commit d2574c50 by David Edelsohn Committed by David Edelsohn

aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.

        * 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.

From-SVN: r46600
parent ce2d32cd
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> Sun Oct 28 15:45:16 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case. * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case.
......
...@@ -45,7 +45,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -45,7 +45,7 @@ Boston, MA 02111-1307, USA. */
if (TREE_CODE (DECL) == FUNCTION_DECL) \ if (TREE_CODE (DECL) == FUNCTION_DECL) \
{ \ { \
fputs ("\n\t.extern .", FILE); \ fputs ("\n\t.extern .", FILE); \
RS6000_OUTPUT_BASENAME (FILE, XSTR (_symref, 0)); \ assemble_name (FILE, XSTR (_symref, 0)); \
} \ } \
putc ('\n', FILE); \ putc ('\n', FILE); \
} }
......
...@@ -79,12 +79,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -79,12 +79,6 @@ Boston, MA 02111-1307, USA. */
#undef REGISTER_NAMES #undef REGISTER_NAMES
#define REGISTER_NAMES DEBUG_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. */ /* Output before instructions. */
/* This is how to output the definition of a user-level label named NAME, /* 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. */ such as the label on a static function or variable NAME. */
...@@ -98,7 +92,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -98,7 +92,7 @@ Boston, MA 02111-1307, USA. */
#undef ASM_GLOBALIZE_LABEL #undef ASM_GLOBALIZE_LABEL
#define ASM_GLOBALIZE_LABEL(FILE,NAME) \ #define ASM_GLOBALIZE_LABEL(FILE,NAME) \
do { fputs ("\t.globl ", FILE); \ 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 /* This is how to output an internal label prefix. rs6000.c uses this
when generating traceback tables. */ when generating traceback tables. */
...@@ -122,7 +116,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -122,7 +116,7 @@ Boston, MA 02111-1307, USA. */
#undef ASM_OUTPUT_ALIGNED_COMMON #undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \ #define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
do { fputs (".comm ", (FILE)); \ do { fputs (".comm ", (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%d\n", (SIZE)); } while (0) fprintf ((FILE), ",%d\n", (SIZE)); } while (0)
#define ASM_OUTPUT_SKIP(FILE,SIZE) \ #define ASM_OUTPUT_SKIP(FILE,SIZE) \
......
...@@ -4691,11 +4691,7 @@ print_operand (file, x, code) ...@@ -4691,11 +4691,7 @@ print_operand (file, x, code)
break; break;
} }
} }
#if TARGET_AIX
RS6000_OUTPUT_BASENAME (file, XSTR (x, 0));
#else
assemble_name (file, XSTR (x, 0)); assemble_name (file, XSTR (x, 0));
#endif
return; return;
case 'Z': case 'Z':
...@@ -7049,17 +7045,9 @@ rs6000_output_function_epilogue (file, size) ...@@ -7049,17 +7045,9 @@ rs6000_output_function_epilogue (file, size)
/* Offset from start of code to tb table. */ /* Offset from start of code to tb table. */
fputs ("\t.long ", file); fputs ("\t.long ", file);
ASM_OUTPUT_INTERNAL_LABEL_PREFIX (file, "LT"); ASM_OUTPUT_INTERNAL_LABEL_PREFIX (file, "LT");
#if TARGET_AIX
RS6000_OUTPUT_BASENAME (file, fname);
#else
assemble_name (file, fname); assemble_name (file, fname);
#endif
fputs ("-.", file); fputs ("-.", file);
#if TARGET_AIX
RS6000_OUTPUT_BASENAME (file, fname);
#else
assemble_name (file, fname); assemble_name (file, fname);
#endif
putc ('\n', file); putc ('\n', file);
/* Interrupt handler mask. */ /* Interrupt handler mask. */
...@@ -7230,7 +7218,7 @@ output_mi_thunk (file, thunk_fndecl, delta, function) ...@@ -7230,7 +7218,7 @@ output_mi_thunk (file, thunk_fndecl, delta, function)
assemble_name (file, buf); assemble_name (file, buf);
putc ('\n', file); putc ('\n', file);
text_section (); 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); assemble_name (file, buf);
asm_fprintf (file, "(%s)\n", reg_names[2]); asm_fprintf (file, "(%s)\n", reg_names[2]);
asm_fprintf (file, asm_fprintf (file,
...@@ -7476,13 +7464,7 @@ rs6000_output_symbol_ref (file, x) ...@@ -7476,13 +7464,7 @@ rs6000_output_symbol_ref (file, x)
we emit the TOC reference to reference the symbol and not the we emit the TOC reference to reference the symbol and not the
section. */ section. */
const char *name = XSTR (x, 0); const char *name = XSTR (x, 0);
assemble_name (file, name);
if (VTABLE_NAME_P (name))
{
RS6000_OUTPUT_BASENAME (file, name);
}
else
assemble_name (file, name);
} }
/* Output a TOC entry. We derive the entry name from what is being /* Output a TOC entry. We derive the entry name from what is being
...@@ -7715,7 +7697,7 @@ output_toc (file, x, labelno, mode) ...@@ -7715,7 +7697,7 @@ output_toc (file, x, labelno, mode)
section. */ section. */
if (VTABLE_NAME_P (name)) if (VTABLE_NAME_P (name))
{ {
RS6000_OUTPUT_BASENAME (file, name); assemble_name (file, name);
if (offset < 0) if (offset < 0)
fprintf (file, "%d", offset); fprintf (file, "%d", offset);
else if (offset > 0) else if (offset > 0)
......
...@@ -886,11 +886,6 @@ do { \ ...@@ -886,11 +886,6 @@ do { \
#undef ENCODE_SECTION_INFO #undef ENCODE_SECTION_INFO
#define ENCODE_SECTION_INFO(DECL) rs6000_encode_section_info (DECL) #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 /* This macro gets just the user-specified name
out of the string in a SYMBOL_REF. Discard out of the string in a SYMBOL_REF. Discard
a leading * or @. */ a leading * or @. */
......
...@@ -231,28 +231,18 @@ toc_section () \ ...@@ -231,28 +231,18 @@ toc_section () \
#define RS6000_ITRUNC "__itrunc" #define RS6000_ITRUNC "__itrunc"
#define RS6000_UITRUNC "__uitrunc" #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, /* 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. */ such as the label on a static function or variable NAME. */
#define ASM_OUTPUT_LABEL(FILE,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 /* This is how to output a command to make the user-level label named NAME
defined for reference from other files. */ defined for reference from other files. */
#define ASM_GLOBALIZE_LABEL(FILE,NAME) \ #define ASM_GLOBALIZE_LABEL(FILE,NAME) \
do { fputs ("\t.globl ", FILE); \ 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. */ /* Remove any trailing [DS] or the like from the symbol name. */
...@@ -343,27 +333,27 @@ toc_section () \ ...@@ -343,27 +333,27 @@ toc_section () \
if (TREE_PUBLIC (DECL)) \ if (TREE_PUBLIC (DECL)) \
{ \ { \
fputs ("\t.globl .", FILE); \ fputs ("\t.globl .", FILE); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \ assemble_name (FILE, NAME); \
putc ('\n', FILE); \ putc ('\n', FILE); \
} \ } \
else \ else \
{ \ { \
fputs ("\t.lglobl .", FILE); \ fputs ("\t.lglobl .", FILE); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \ assemble_name (FILE, NAME); \
putc ('\n', FILE); \ putc ('\n', FILE); \
} \ } \
fputs ("\t.csect ", FILE); \ fputs ("\t.csect ", FILE); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \ assemble_name (FILE, NAME); \
fputs (TARGET_32BIT ? "[DS]\n" : "[DS],3\n", FILE); \ fputs (TARGET_32BIT ? "[DS]\n" : "[DS],3\n", FILE); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \ assemble_name (FILE, NAME); \
fputs (":\n", FILE); \ fputs (":\n", FILE); \
fputs (TARGET_32BIT ? "\t.long ." : "\t.llong .", FILE); \ fputs (TARGET_32BIT ? "\t.long ." : "\t.llong .", FILE); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \ assemble_name (FILE, NAME); \
fputs (", TOC[tc0], 0\n", FILE); \ fputs (", TOC[tc0], 0\n", FILE); \
in_section = no_section; \ in_section = no_section; \
function_section(DECL); \ function_section(DECL); \
putc ('.', FILE); \ putc ('.', FILE); \
RS6000_OUTPUT_BASENAME (FILE, NAME); \ assemble_name (FILE, NAME); \
fputs (":\n", FILE); \ fputs (":\n", FILE); \
if (write_symbols == XCOFF_DEBUG) \ if (write_symbols == XCOFF_DEBUG) \
xcoffout_declare_function (FILE, DECL, NAME); \ xcoffout_declare_function (FILE, DECL, NAME); \
...@@ -430,8 +420,8 @@ toc_section () \ ...@@ -430,8 +420,8 @@ toc_section () \
to define a global common symbol. */ to define a global common symbol. */
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGNMENT) \ #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGNMENT) \
do { fputs (".comm ", (FILE)); \ do { fputs ("\t.comm ", (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ assemble_name ((FILE), (NAME)); \
if ( (SIZE) > 4) \ if ( (SIZE) > 4) \
fprintf ((FILE), ",%d,3\n", (SIZE)); \ fprintf ((FILE), ",%d,3\n", (SIZE)); \
else \ else \
...@@ -448,8 +438,8 @@ toc_section () \ ...@@ -448,8 +438,8 @@ toc_section () \
for 64-bit mode. */ for 64-bit mode. */
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
do { fputs (".lcomm ", (FILE)); \ do { fputs ("\t.lcomm ", (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%d,%s\n", (TARGET_32BIT ? (SIZE) : (ROUNDED)), \ fprintf ((FILE), ",%d,%s\n", (TARGET_32BIT ? (SIZE) : (ROUNDED)), \
xcoff_bss_section_name); \ xcoff_bss_section_name); \
} while (0) } while (0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment