riscv: Add .option assembly directive (unimp)
This commit is contained in:
parent
618c173421
commit
cbe70fa629
3 changed files with 38 additions and 1 deletions
|
@ -411,4 +411,15 @@
|
||||||
DEF_ASM(snez)
|
DEF_ASM(snez)
|
||||||
DEF_ASM(tail)
|
DEF_ASM(tail)
|
||||||
|
|
||||||
|
/* Possible values for .option directive */
|
||||||
|
DEF_ASM(arch)
|
||||||
|
DEF_ASM(rvc)
|
||||||
|
DEF_ASM(norvc)
|
||||||
|
DEF_ASM(pic)
|
||||||
|
DEF_ASM(nopic)
|
||||||
|
DEF_ASM(relax)
|
||||||
|
DEF_ASM(norelax)
|
||||||
|
DEF_ASM(push)
|
||||||
|
DEF_ASM(pop)
|
||||||
|
|
||||||
#undef DEF_ASM_WITH_SUFFIX
|
#undef DEF_ASM_WITH_SUFFIX
|
||||||
|
|
23
tccasm.c
23
tccasm.c
|
@ -922,6 +922,29 @@ static void asm_parse_directive(TCCState *s1, int global)
|
||||||
case TOK_ASMDIR_code64:
|
case TOK_ASMDIR_code64:
|
||||||
next();
|
next();
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef TCC_TARGET_RISCV64
|
||||||
|
case TOK_ASMDIR_option:
|
||||||
|
next();
|
||||||
|
switch(tok){
|
||||||
|
case TOK_ASM_pic:
|
||||||
|
case TOK_ASM_nopic:
|
||||||
|
case TOK_ASM_relax:
|
||||||
|
case TOK_ASM_norelax:
|
||||||
|
case TOK_ASM_push:
|
||||||
|
case TOK_ASM_pop:
|
||||||
|
/* TODO: unimplemented */
|
||||||
|
next();
|
||||||
|
break;
|
||||||
|
case TOK_ASM_arch:
|
||||||
|
/* TODO: unimplemented, requires extra parsing */
|
||||||
|
tcc_error("unimp .option '.%s'", get_tok_str(tok, NULL));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
tcc_error("unknown .option '.%s'", get_tok_str(tok, NULL));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
tcc_error("unknown assembler directive '.%s'", get_tok_str(tok, NULL));
|
tcc_error("unknown assembler directive '.%s'", get_tok_str(tok, NULL));
|
||||||
|
|
5
tcctok.h
5
tcctok.h
|
@ -202,7 +202,8 @@
|
||||||
/* pragma */
|
/* pragma */
|
||||||
DEF(TOK_pack, "pack")
|
DEF(TOK_pack, "pack")
|
||||||
#if !defined(TCC_TARGET_I386) && !defined(TCC_TARGET_X86_64) && \
|
#if !defined(TCC_TARGET_I386) && !defined(TCC_TARGET_X86_64) && \
|
||||||
!defined(TCC_TARGET_ARM) && !defined(TCC_TARGET_ARM64)
|
!defined(TCC_TARGET_ARM) && !defined(TCC_TARGET_ARM64) && \
|
||||||
|
!defined(TCC_TARGET_RISCV64)
|
||||||
/* already defined for assembler */
|
/* already defined for assembler */
|
||||||
DEF(TOK_ASM_push, "push")
|
DEF(TOK_ASM_push, "push")
|
||||||
DEF(TOK_ASM_pop, "pop")
|
DEF(TOK_ASM_pop, "pop")
|
||||||
|
@ -401,6 +402,8 @@
|
||||||
DEF_ASMDIR(code32)
|
DEF_ASMDIR(code32)
|
||||||
#elif defined(TCC_TARGET_X86_64)
|
#elif defined(TCC_TARGET_X86_64)
|
||||||
DEF_ASMDIR(code64)
|
DEF_ASMDIR(code64)
|
||||||
|
#elif defined(TCC_TARGET_RISCV64)
|
||||||
|
DEF_ASMDIR(option)
|
||||||
#endif
|
#endif
|
||||||
DEF_ASMDIR(short)
|
DEF_ASMDIR(short)
|
||||||
DEF_ASMDIR(long)
|
DEF_ASMDIR(long)
|
||||||
|
|
Loading…
Reference in a new issue