Commit e1944073 by Krister Walfridsson Committed by Nick Clifton

arm.c (arm_asm_output_labelref): New function.

* config/arm/arm.c (arm_asm_output_labelref): New function.
* config/arm/arm.h (ASM_OUTPUT_LABELREF): Call arm_asm_output_labelref.
* config/arm/arm-protos.h: Add prototype for arm_asm_output_labelref.

From-SVN: r56682
parent 3aee909e
2002-08-30 Krister Walfridsson <cato@df.lth.se>
* config/arm/arm.c (arm_asm_output_labelref): New function.
* config/arm/arm.h (ASM_OUTPUT_LABELREF): Call arm_asm_output_labelref.
* config/arm/arm-protos.h: Add prototype for arm_asm_output_labelref.
2002-08-29 Rodney Brown <rbrown64@csc.com.au> 2002-08-29 Rodney Brown <rbrown64@csc.com.au>
* doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual * doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual
......
...@@ -34,6 +34,7 @@ extern void arm_expand_prologue PARAMS ((void)); ...@@ -34,6 +34,7 @@ extern void arm_expand_prologue PARAMS ((void));
/* Used in arm.md, but defined in output.c. */ /* Used in arm.md, but defined in output.c. */
extern void assemble_align PARAMS ((int)); extern void assemble_align PARAMS ((int));
extern const char * arm_strip_name_encoding PARAMS ((const char *)); extern const char * arm_strip_name_encoding PARAMS ((const char *));
extern void arm_asm_output_labelref PARAMS ((FILE *, const char *));
extern unsigned long arm_current_func_type PARAMS ((void)); extern unsigned long arm_current_func_type PARAMS ((void));
extern unsigned int arm_compute_initial_elimination_offset PARAMS ((unsigned int, unsigned int)); extern unsigned int arm_compute_initial_elimination_offset PARAMS ((unsigned int, unsigned int));
......
...@@ -10799,6 +10799,30 @@ arm_strip_name_encoding (name) ...@@ -10799,6 +10799,30 @@ arm_strip_name_encoding (name)
return name; return name;
} }
/* If there is a '*' anywhere in the name's prefix, then
emit the stripped name verbatim, otherwise prepend an
underscore if leading underscores are being used. */
void
arm_asm_output_labelref (stream, name)
FILE * stream;
const char * name;
{
int skip;
int verbatim = 0;
while ((skip = arm_get_strip_length (* name)))
{
verbatim |= (*name == '*');
name += skip;
}
if (verbatim)
fputs (name, stream);
else
asm_fprintf (stream, "%U%s", name);
}
rtx aof_pic_label; rtx aof_pic_label;
#ifdef AOF_ASSEMBLER #ifdef AOF_ASSEMBLER
......
...@@ -1858,7 +1858,7 @@ typedef struct ...@@ -1858,7 +1858,7 @@ typedef struct
`assemble_name' uses this. */ `assemble_name' uses this. */
#undef ASM_OUTPUT_LABELREF #undef ASM_OUTPUT_LABELREF
#define ASM_OUTPUT_LABELREF(FILE, NAME) \ #define ASM_OUTPUT_LABELREF(FILE, NAME) \
asm_fprintf (FILE, "%U%s", arm_strip_name_encoding (NAME)) arm_asm_output_labelref (FILE, NAME)
#define ARM_DECLARE_FUNCTION_SIZE(STREAM, NAME, DECL) \ #define ARM_DECLARE_FUNCTION_SIZE(STREAM, NAME, DECL) \
arm_encode_call_attribute (DECL, SHORT_CALL_FLAG_CHAR) arm_encode_call_attribute (DECL, SHORT_CALL_FLAG_CHAR)
......
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