From 9b09fc376e8c212a767c875e71ca003e3b9a0d2e Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Sun, 5 Sep 2010 22:39:34 +0200 Subject: Add support of asm label for functions. Add support for asm labels for functions, that is the ability to rename a function at assembly level with __asm__ ("newname") appended in function declaration. --- tccasm.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tccasm.c') diff --git a/tccasm.c b/tccasm.c index 28c9fad..20d1fbc 100644 --- a/tccasm.c +++ b/tccasm.c @@ -18,6 +18,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifdef CONFIG_TCC_ASM + #include "tcc.h" ST_FUNC int asm_get_local_label_name(TCCState *s1, unsigned int n) @@ -991,6 +993,8 @@ static void parse_asm_operands(ASMOperand *operands, int *nb_operands_ptr, } } +#endif + static void parse_asm_str(CString *astr) { skip('('); @@ -1006,6 +1010,20 @@ static void parse_asm_str(CString *astr) cstr_ccat(astr, '\0'); } +/* Parse an asm label and return the label + * Don't forget to free the CString in the caller! */ +static void asm_label_instr(CString *astr) +{ + next(); + parse_asm_str(astr); + skip(')'); +#ifdef ASM_DEBUG + printf("asm_alias: \"%s\"\n", (char *)astr->data); +#endif +} + +#ifdef CONFIG_TCC_ASM + /* parse the GCC asm() instruction */ ST_FUNC void asm_instr(void) { @@ -1136,3 +1154,5 @@ ST_FUNC void asm_global_instr(void) cstr_free(&astr); } + +#endif -- cgit v1.3.1