diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-11 04:00:39 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-11 04:00:39 +0000 |
commit | c0e76f1fce1aa6274b2e04988b81309a453eb6eb (patch) | |
tree | 048365acb120710e3f57953c76b1f455473b434d /gcc/output.h | |
parent | 15a4d99d7f699f35bcf8173219e53765c509e5bf (diff) | |
download | gcc-c0e76f1fce1aa6274b2e04988b81309a453eb6eb.tar.gz |
* final.c, output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul):
New functions serving as fast replacements for fprintf() integer
to string conversions. They were used in the following changes.
* final.c (sprint_ul_rev): Internal helper for the above.
(output_addr_const): case CONST_INT: don't use fprintf().
* elfos.h (ASM_GENERATE_INTERNAL_LABEL): Don't use sprintf("%u"),
use sprint_ul() and stpcpy() which are much faster.
(TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
(ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Are the old ESCAPES and
STRING_LIMIT macros.
(ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Macros now just
call respective functions that provide the same
functionality. Those are default_elf_asm_output_limited_string()
and default_elf_asm_output_ascii() in varasm.c.
* varasm.c: Fixed some whitespace inconsistencies.
(default_elf_asm_output_limited_string)
(default_elf_asm_output_ascii): The above macros from elfos.h are
implemented here as these functions, avoiding superfluous calls to
fprintf().
(default_elf_internal_label): Hook for
targetm.asm_out.internal_label and ASM_OUTPUT_DEBUG_LABEL.
* i386.c: Don't call fprintf("%u") but fprint_ul() instead.
* defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL):
Expanded the macros on multiple lines for readability.
(ASM_OUTPUT_LABELREF): Have two calls to fputs() instead of one to
asm_fprintf().
* dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data)
(dw2_asm_data_uleb128, dw2_asm_delta_uleb128)
(dw2_asm_delta_sleb128): Convert fprintf() calls to the new
faster functions.
* dwarf2out.c (dwarf2out_source_line): Convert fprintf() calls to
the new faster functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181279 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/output.h')
-rw-r--r-- | gcc/output.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/output.h b/gcc/output.h index e47eddf2735..e73c4a4c6bc 100644 --- a/gcc/output.h +++ b/gcc/output.h @@ -129,6 +129,11 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__; #define ATTRIBUTE_ASM_FPRINTF(m, n) ATTRIBUTE_NONNULL(m) #endif +extern void fprint_w (FILE *, HOST_WIDE_INT); +extern void fprint_whex (FILE *, unsigned HOST_WIDE_INT); +extern void fprint_ul (FILE *, unsigned long); +extern int sprint_ul (char *, unsigned long); + extern void asm_fprintf (FILE *file, const char *p, ...) ATTRIBUTE_ASM_FPRINTF(2, 3); @@ -659,6 +664,10 @@ extern void file_end_indicate_split_stack (void); extern void default_elf_asm_output_external (FILE *file, tree, const char *); +extern void default_elf_asm_output_limited_string (FILE *, const char *); +extern void default_elf_asm_output_ascii (FILE *, const char *, unsigned int); +extern void default_elf_internal_label (FILE *, const char *, unsigned long); + extern void default_elf_init_array_asm_out_constructor (rtx, int); extern void default_elf_fini_array_asm_out_destructor (rtx, int); extern int maybe_assemble_visibility (tree); |