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)