diff options
| author | Michael Forney <mforney@mforney.org> | 2019-05-16 23:11:01 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2019-05-16 23:11:27 -0700 |
| commit | 813a8460859200afaca250be1417c8236b8eb96a (patch) | |
| tree | fccd7cf9b02144eb7dfa0d91ea2c8c9d159c431b /pkg/qbe/patch/0004-arm64-Handle-slots.patch | |
| parent | b745c9ac807d104abf083f46608fb964bcc12ade (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.patch | 36 |
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 + |
