From 9b76a64f96b2a8359e9e1332f381137557d106a2 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic <dannym@scratchpost.org> Date: Wed, 7 Apr 2021 11:56:06 +0200 Subject: [PATCH] riscv64-asm: Implement asm_clobber --- riscv64-asm.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/riscv64-asm.c b/riscv64-asm.c index 9b41bee8..30662df6 100644 --- a/riscv64-asm.c +++ b/riscv64-asm.c @@ -694,7 +694,19 @@ ST_FUNC void asm_compute_constraints(ASMOperand *operands, ST_FUNC void asm_clobber(uint8_t *clobber_regs, const char *str) { - tcc_error("RISCV64 asm not implemented."); + int reg; + TokenSym *ts; + + if (!strcmp(str, "memory") || + !strcmp(str, "cc") || + !strcmp(str, "flags")) + return; + ts = tok_alloc(str, strlen(str)); + reg = asm_parse_regvar(ts->tok); + if (reg == -1) { + tcc_error("invalid clobber register '%s'", str); + } + clobber_regs[reg] = 1; } ST_FUNC int asm_parse_regvar (int t)