From 8c16de02ed5b26dfa29ba7926bc109f37cd68a0a Mon Sep 17 00:00:00 2001 From: Quentin Carbonneaux Date: Wed, 29 Apr 2026 10:54:26 +0200 Subject: [PATCH] rv64: got-free addresses for SGlo --- rv64/emit.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rv64/emit.c b/rv64/emit.c index 92a2b68..f4b3236 100644 --- a/rv64/emit.c +++ b/rv64/emit.c @@ -232,7 +232,14 @@ loadaddr(Con *c, char *rn, FILE *f) char off[32]; switch (c->sym.type) { - default: + case SGlo: + fprintf(f, "\tlui %s, %%hi(", rn); + emitaddr(c, f); + fprintf(f, ")\n\taddi %s, %s, %%lo(", rn, rn); + emitaddr(c, f); + fputs(")\n", f); + break; + case SExt: fprintf(f, "\tla %s, ", rn); emitaddr(c, f); fputc('\n', f);