summary refs log tree commit diff
path: root/rv64
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin@c9x.me>2022-08-29 18:45:52 +0200
committerQuentin Carbonneaux <quentin@c9x.me>2022-08-31 21:42:49 +0200
commit8dddb971d923fa19dced39013e6d4a39676e065a (patch)
tree88192ecf3a60de73f06d03dab51dc51f17fb4ab7 /rv64
parent5490268683c82ad07eac6d2e8296a45702a8381e (diff)
downloadroux-8dddb971d923fa19dced39013e6d4a39676e065a.tar.gz
drop -G flag and add target amd64_apple
apple support is more than assembly syntax
in case of arm64 machines, and apple syntax
is currently useless in all cases but amd64;
rather than having a -G option that only
makes sense with amd64, we add a new target
amd64_apple
Diffstat (limited to 'rv64')
-rw-r--r--rv64/emit.c2
-rw-r--r--rv64/isel.c2
-rw-r--r--rv64/targ.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/rv64/emit.c b/rv64/emit.c
index 2656c60..f976ade 100644
--- a/rv64/emit.c
+++ b/rv64/emit.c
@@ -415,7 +415,7 @@ rv64_emitfn(Fn *fn, FILE *f)
 	Blk *b, *s;
 	Ins *i;
 
-	gasemitlnk(fn->name, &fn->lnk, ".text", f);
+	emitlnk(fn->name, &fn->lnk, ".text", f);
 
 	if (fn->vararg) {
 		/* TODO: only need space for registers
diff --git a/rv64/isel.c b/rv64/isel.c
index e41578b..3d9884f 100644
--- a/rv64/isel.c
+++ b/rv64/isel.c
@@ -41,7 +41,7 @@ fixarg(Ref *r, int k, Ins *i, Fn *fn)
 			 * immediates
 			 */
 			assert(c->type == CBits);
-			n = gasstash(&c->bits, KWIDE(k) ? 8 : 4);
+			n = stashbits(&c->bits, KWIDE(k) ? 8 : 4);
 			vgrow(&fn->con, ++fn->ncon);
 			c = &fn->con[fn->ncon-1];
 			sprintf(buf, "fp%d", n);
diff --git a/rv64/targ.c b/rv64/targ.c
index 9360cf7..70701db 100644
--- a/rv64/targ.c
+++ b/rv64/targ.c
@@ -47,6 +47,8 @@ Target T_rv64 = {
 	.abi = rv64_abi,
 	.isel = rv64_isel,
 	.emitfn = rv64_emitfn,
+	.emitfin = elf_emitfin,
+	.asloc = ".L",
 };
 
 MAKESURE(rsave_size_ok, sizeof rv64_rsave == (NGPS+NFPS+1) * sizeof(int));