[pypy-commit] pypy arm64: missing bits
fijal
pypy.commits at gmail.com
Thu Jun 27 13:37:08 EDT 2019
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: arm64
Changeset: r96878:d12d1f105c66
Date: 2019-06-27 17:36 +0000
http://bitbucket.org/pypy/pypy/changeset/d12d1f105c66/
Log: missing bits
diff --git a/rpython/jit/backend/aarch64/assembler.py b/rpython/jit/backend/aarch64/assembler.py
--- a/rpython/jit/backend/aarch64/assembler.py
+++ b/rpython/jit/backend/aarch64/assembler.py
@@ -354,7 +354,7 @@
for i in range(0, len(r.caller_resp), 2):
mc.STP_rri(r.caller_resp[i].value, r.caller_resp[i + 1].value, r.sp.value, i * WORD)
cur_stack = len(r.caller_resp)
- mc.STP_rri(exc0.value, exc1.value, cur_stack * WORD)
+ mc.STP_rri(exc0.value, exc1.value, r.sp.value, cur_stack * WORD)
cur_stack += 2
for i in range(len(r.caller_vfp_resp)):
mc.STR_di(r.caller_vfp_resp[i].value, r.sp.value, cur_stack * WORD)
@@ -373,7 +373,7 @@
for i in range(0, len(r.caller_resp), 2):
mc.LDP_rri(r.caller_resp[i].value, r.caller_resp[i + 1].value, r.sp.value, i * WORD)
cur_stack = len(r.caller_resp)
- mc.LDP_rri(exc0.value, exc1.value, cur_stack * WORD)
+ mc.LDP_rri(exc0.value, exc1.value, r.sp.value, cur_stack * WORD)
cur_stack += 2
for i in range(len(r.caller_vfp_resp)):
mc.LDR_di(r.caller_vfp_resp[i].value, r.sp.value, cur_stack * WORD)
@@ -462,6 +462,12 @@
mc.RET_r(r.lr.value)
self._frame_realloc_slowpath = mc.materialize(self.cpu, [])
+ def _load_shadowstack_top(self, mc, reg, gcrootmap):
+ rst = gcrootmap.get_root_stack_top_addr()
+ mc.gen_load_int(reg.value, rst)
+ self.load_reg(mc, reg, reg)
+ return rst
+
def _store_and_reset_exception(self, mc, excvalloc=None, exctploc=None,
on_frame=False):
""" Resest the exception. If excvalloc is None, then store it on the
More information about the pypy-commit
mailing list