aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1993-01-07 17:03:41 -0700
committerJeff Law <law@gcc.gnu.org>1993-01-07 17:03:41 -0700
commit37d7333eae1b52c1b24ef34fe2d74093cadfe1d6 (patch)
tree5e4e70e1debb5a8986ad239c4668f36ab1b9cf8f /gcc
parent957f7fb8d877bc5a2e3e495a3bddd29d8d1c4cea (diff)
downloadgcc-37d7333eae1b52c1b24ef34fe2d74093cadfe1d6.zip
gcc-37d7333eae1b52c1b24ef34fe2d74093cadfe1d6.tar.gz
gcc-37d7333eae1b52c1b24ef34fe2d74093cadfe1d6.tar.bz2
pa.h (target_switches): Add "-mtrailing-colon"
* pa.h (target_switches): Add "-mtrailing-colon" (ASM_OUTPUT_LABEL): If TARGET_TRAILING_COLON then emit a colon after the label. (ASM_OUTPUT_INTERNAL_LABEL): Likewise. (ASM_OUTPUT_COMMON): Likewise. (ASM_OUTPUT_LOCAL): Likewise. From-SVN: r3154
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.h37
1 files changed, 27 insertions, 10 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 67b6a71..91d5060 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -74,6 +74,11 @@ extern int target_flags;
#define TARGET_DISABLE_INDEXING (target_flags & 32)
+/* Force a colon to be tacked onto the end of local and global
+ labels. An option because the HP assembler croaks on them. */
+
+#define TARGET_TRAILING_COLON (target_flags & 64)
+
/* Macro to define tables used to set the flags.
This is a list in braces of pairs in braces,
each pair being { "NAME", VALUE }
@@ -91,6 +96,7 @@ extern int target_flags;
{"no-shared-libs", -8},\
{"long-calls", 16}, \
{"disable-indexing", 32},\
+ {"trailing-colon", 64},\
{ "", TARGET_DEFAULT}}
#ifndef TARGET_DEFAULT
@@ -1542,7 +1548,10 @@ bss_section () \
such as the label on a static function or variable NAME. */
#define ASM_OUTPUT_LABEL(FILE, NAME) \
- do { assemble_name (FILE, NAME); fputc ('\n', FILE); } while (0)
+ do { assemble_name (FILE, NAME); \
+ if (TARGET_TRAILING_COLON) \
+ fputc (':', FILE); \
+ fputc ('\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. */
@@ -1596,7 +1605,11 @@ bss_section () \
PREFIX is the class of label and NUM is the number within the class. */
#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
- fprintf (FILE, "%s$%04d\n", PREFIX, NUM)
+ {fprintf (FILE, "%s$%04d", PREFIX, NUM); \
+ if (TARGET_TRAILING_COLON) \
+ fputs (":\n", FILE); \
+ else \
+ fputs (":\n", FILE);}
/* This is how to store into the string LABEL
the symbol_ref name of an internal numbered label where
@@ -1697,19 +1710,23 @@ bss_section () \
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
-( bss_section (), \
- assemble_name ((FILE), (NAME)), \
- fputs ("\t.comm ", (FILE)), \
- fprintf ((FILE), "%d\n", (ROUNDED)))
+{ bss_section (); \
+ assemble_name ((FILE), (NAME)); \
+ if (TARGET_TRAILING_COLON) \
+ fputc (':', (FILE)); \
+ fputs ("\t.comm ", (FILE)); \
+ fprintf ((FILE), "%d\n", (ROUNDED));}
/* This says how to output an assembler line
to define a local common symbol. */
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
-( bss_section (), \
- fprintf ((FILE), "\t.align %d\n", (SIZE) <= 4 ? 4 : 8), \
- assemble_name ((FILE), (NAME)), \
- fprintf ((FILE), "\n\t.block %d\n", (ROUNDED)))
+{ bss_section (); \
+ fprintf ((FILE), "\t.align %d\n", (SIZE) <= 4 ? 4 : 8); \
+ assemble_name ((FILE), (NAME)); \
+ if (TARGET_TRAILING_COLON) \
+ fputc (':', (FILE)); \
+ fprintf ((FILE), "\n\t.block %d\n", (ROUNDED));}
/* Store in OUTPUT a string (made with alloca) containing
an assembler-name for a local static variable named NAME.