summaryrefslogtreecommitdiff
path: root/pkg/qbe
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-03-06 21:11:23 -0800
committerMichael Forney <mforney@mforney.org>2019-03-06 21:11:23 -0800
commit01b862af3be3cde43223e4b900f0025f70aaaac2 (patch)
tree67c1b9c9c0242a31ea6c82ee091f376d77fb3b7e /pkg/qbe
parentc7d55edad461cbf326803b3ced8b8187470f5b6a (diff)
qbe: Fix an aliasing bug
Diffstat (limited to 'pkg/qbe')
-rw-r--r--pkg/qbe/patch/0004-Consider-vacall-when-determining-if-a-local-needs-to.patch26
-rw-r--r--pkg/qbe/rev2
2 files changed, 27 insertions, 1 deletions
diff --git a/pkg/qbe/patch/0004-Consider-vacall-when-determining-if-a-local-needs-to.patch b/pkg/qbe/patch/0004-Consider-vacall-when-determining-if-a-local-needs-to.patch
new file mode 100644
index 00000000..71126690
--- /dev/null
+++ b/pkg/qbe/patch/0004-Consider-vacall-when-determining-if-a-local-needs-to.patch
@@ -0,0 +1,26 @@
+From 2fcb277b0fa2993b00e0a85fe0e28697fe855dd1 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Wed, 6 Mar 2019 20:31:11 -0800
+Subject: [PATCH] Consider vacall when determining if a local needs to be
+ loaded
+
+---
+ load.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/load.c b/load.c
+index 6f5b6ab..a21a488 100644
+--- a/load.c
++++ b/load.c
+@@ -231,7 +231,7 @@ def(Slice sl, bits msk, Blk *b, Ins *i, Loc *il)
+ while (i > b->ins) {
+ --i;
+ if (killsl(i->to, sl)
+- || (i->op == Ocall && escapes(sl.ref, curf)))
++ || ((i->op == Ocall || i->op == Ovacall) && escapes(sl.ref, curf)))
+ goto Load;
+ ld = isload(i->op);
+ if (ld) {
+--
+2.21.0
+
diff --git a/pkg/qbe/rev b/pkg/qbe/rev
index b4de3947..48082f72 100644
--- a/pkg/qbe/rev
+++ b/pkg/qbe/rev
@@ -1 +1 @@
-11
+12