diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-01-07 17:03:41 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-01-07 17:03:41 -0700 |
commit | 37d7333eae1b52c1b24ef34fe2d74093cadfe1d6 (patch) | |
tree | 5e4e70e1debb5a8986ad239c4668f36ab1b9cf8f /gcc | |
parent | 957f7fb8d877bc5a2e3e495a3bddd29d8d1c4cea (diff) | |
download | gcc-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.h | 37 |
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. |