summaryrefslogtreecommitdiff
path: root/pkg/qbe/patch/0004-arm64-Handle-slots.patch
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-05-16 23:11:01 -0700
committerMichael Forney <mforney@mforney.org>2019-05-16 23:11:27 -0700
commit813a8460859200afaca250be1417c8236b8eb96a (patch)
treefccd7cf9b02144eb7dfa0d91ea2c8c9d159c431b /pkg/qbe/patch/0004-arm64-Handle-slots.patch
parentb745c9ac807d104abf083f46608fb964bcc12ade (diff)
qbe: Update to latest git and apply some patches
Diffstat (limited to 'pkg/qbe/patch/0004-arm64-Handle-slots.patch')
-rw-r--r--pkg/qbe/patch/0004-arm64-Handle-slots.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/pkg/qbe/patch/0004-arm64-Handle-slots.patch b/pkg/qbe/patch/0004-arm64-Handle-slots.patch
new file mode 100644
index 00000000..49f266e8
--- /dev/null
+++ b/pkg/qbe/patch/0004-arm64-Handle-slots.patch
@@ -0,0 +1,36 @@
+From c8849e9c7b382f92326434a6522a26829a6e20f8 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Wed, 8 May 2019 18:29:28 -0700
+Subject: [PATCH] arm64: Handle slots
+
+---
+ arm64/emit.c | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/arm64/emit.c b/arm64/emit.c
+index 59e1aae..9cc4a64 100644
+--- a/arm64/emit.c
++++ b/arm64/emit.c
+@@ -220,8 +220,17 @@ emitf(char *s, Ins *i, E *e)
+ c = *s++;
+ assert(c == '0' || c == '1');
+ r = i->arg[c - '0'];
+- assert(isreg(r) && "TODO emit non reg addresses");
+- fprintf(e->f, "[%s]", rname(r.val, Kl));
++ switch (rtype(r)) {
++ default:
++ die("TODO emit non reg addresses");
++ case RTmp:
++ assert(isreg(r));
++ fprintf(e->f, "[%s]", rname(r.val, Kl));
++ break;
++ case RSlot:
++ fprintf(e->f, "[sp, %"PRIu64"]", slot(r.val, e));
++ break;
++ }
+ break;
+ }
+ }
+--
+2.21.0
+