aboutsummaryrefslogtreecommitdiff
path: root/tccasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'tccasm.c')
-rw-r--r--tccasm.c49
1 files changed, 10 insertions, 39 deletions
diff --git a/tccasm.c b/tccasm.c
index 38efe1c..eec4208 100644
--- a/tccasm.c
+++ b/tccasm.c
@@ -20,7 +20,6 @@
#include "tcc.h"
#ifdef CONFIG_TCC_ASM
-
ST_FUNC int asm_get_local_label_name(TCCState *s1, unsigned int n)
{
char buf[64];
@@ -483,7 +482,7 @@ static void asm_parse_directive(TCCState *s1)
case TOK_ASM_globl:
case TOK_ASM_global:
case TOK_ASM_weak:
- case TOK_ASM_hidden:
+ case TOK_ASM_hidden:
tok1 = tok;
do {
Sym *sym;
@@ -494,12 +493,12 @@ static void asm_parse_directive(TCCState *s1)
sym = label_push(&s1->asm_labels, tok, 0);
sym->type.t = VT_VOID;
}
- if (tok1 != TOK_ASM_hidden)
+ if (tok1 != TOK_ASM_hidden)
sym->type.t &= ~VT_STATIC;
if (tok1 == TOK_ASM_weak)
sym->type.t |= VT_WEAK;
- else if (tok1 == TOK_ASM_hidden)
- sym->type.t |= STV_HIDDEN << VT_VIS_SHIFT;
+ else if (tok1 == TOK_ASM_hidden)
+ sym->type.t |= STV_HIDDEN << VT_VIS_SHIFT;
next();
} while (tok == ',');
break;
@@ -697,42 +696,15 @@ static void asm_parse_directive(TCCState *s1)
}
}
-
/* assemble a file */
static int tcc_assemble_internal(TCCState *s1, int do_preprocess)
{
int opcode;
-#if 0
+#ifdef PRINTF_ASM_CODE
+ ST_FUNC void printf_asm_opcode();
/* print stats about opcodes */
- {
- const ASMInstr *pa;
- int freq[4];
- int op_vals[500];
- int nb_op_vals, i, j;
-
- nb_op_vals = 0;
- memset(freq, 0, sizeof(freq));
- for(pa = asm_instrs; pa->sym != 0; pa++) {
- freq[pa->nb_ops]++;
- for(i=0;i<pa->nb_ops;i++) {
- for(j=0;j<nb_op_vals;j++) {
- if (pa->op_type[i] == op_vals[j])
- goto found;
- }
- op_vals[nb_op_vals++] = pa->op_type[i];
- found: ;
- }
- }
- for(i=0;i<nb_op_vals;i++) {
- int v = op_vals[i];
- if ((v & (v - 1)) != 0)
- printf("%3d: %08x\n", i, v);
- }
- printf("size=%d nb=%d f0=%d f1=%d f2=%d f3=%d\n",
- sizeof(asm_instrs), sizeof(asm_instrs) / sizeof(ASMInstr),
- freq[0], freq[1], freq[2], freq[3]);
- }
+ printf_asm_opcode();
#endif
/* XXX: undefine C labels */
@@ -814,9 +786,8 @@ ST_FUNC int tcc_assemble(TCCState *s1, int do_preprocess)
/* an elf symbol of type STT_FILE must be put so that STB_LOCAL
symbols can be safely used */
- put_elf_sym(symtab_section, 0, 0,
- ELFW(ST_INFO)(STB_LOCAL, STT_FILE), 0,
- SHN_ABS, file->filename);
+ put_elf_sym(symtab_section, 0, 0, ELFW(ST_INFO)(STB_LOCAL, STT_FILE), 0,
+ SHN_ABS, file->filename);
ret = tcc_assemble_internal(s1, do_preprocess);
@@ -1119,4 +1090,4 @@ ST_FUNC void asm_global_instr(void)
cstr_free(&astr);
}
-#endif /* CONFIG_TCC_ASM */
+#endif /* CONFIG_TCC_ASM */ \ No newline at end of file