Move asm label functions from tccasm.c to tccgen.c

* Move functions parse_asm_str and asm_label_instr from tccasm.c to
  tccgen.c
* Remove CONFIG_TCC_ASM_LABEL macro as asm label are available on all
  archs.
See:
http://lists.nongnu.org/archive/html/tinycc-devel/2010-09/msg00026.html
for the rationale.
This commit is contained in:
Thomas Preud'homme
2010-09-14 19:17:39 +02:00
parent 2596273fce
commit b8adf0090e
4 changed files with 29 additions and 44 deletions

View File

@ -18,8 +18,6 @@
* 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)
@ -993,37 +991,6 @@ static void parse_asm_operands(ASMOperand *operands, int *nb_operands_ptr,
}
}
#endif
static void parse_asm_str(CString *astr)
{
skip('(');
/* read the string */
if (tok != TOK_STR)
expect("string constant");
cstr_new(astr);
while (tok == TOK_STR) {
/* XXX: add \0 handling too ? */
cstr_cat(astr, tokc.cstr->data);
next();
}
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)
{
@ -1154,5 +1121,3 @@ ST_FUNC void asm_global_instr(void)
cstr_free(&astr);
}
#endif