Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r96933:e394c7fa2106
Date: 2019-07-03 11:26 +0200
http://bitbucket.org/pypy/pypy/changeset/e394c7fa2106/

Log:    Backed out changeset ed056c08b76f

        It fails for reasons that I cannot understand at all

diff --git a/rpython/jit/backend/arm/assembler.py 
b/rpython/jit/backend/arm/assembler.py
--- a/rpython/jit/backend/arm/assembler.py
+++ b/rpython/jit/backend/arm/assembler.py
@@ -532,26 +532,22 @@
 
     def gen_shadowstack_header(self, gcrootmap):
         # lr = shadow stack top addr
-        # r4 = *lr
+        # ip = *lr
         rst = gcrootmap.get_root_stack_top_addr()
         self.mc.gen_load_int(r.lr.value, rst)
-        self.load_reg(self.mc, r.r4, r.lr)
-        # *r4 = 1
-        # the '1' is to benefit from the shadowstack 'is_minor' optimization
-        self.mc.gen_load_int(r.ip.value, 1)
-        self.store_reg(self.mc, r.ip, r.r4)
-        # *(r4+WORD) = r.fp
-        self.store_reg(self.mc, r.fp, r.r4, WORD)
+        self.load_reg(self.mc, r.ip, r.lr)
+        # *ip = r.fp
+        self.store_reg(self.mc, r.fp, r.ip)
         #
-        self.mc.ADD_ri(r.r4.value, r.r4.value, 2 * WORD)
-        # *lr = r4 + 2 * WORD
-        self.store_reg(self.mc, r.r4, r.lr)
+        self.mc.ADD_ri(r.ip.value, r.ip.value, WORD)
+        # *lr = ip + WORD
+        self.store_reg(self.mc, r.ip, r.lr)
 
     def gen_footer_shadowstack(self, gcrootmap, mc):
         rst = gcrootmap.get_root_stack_top_addr()
         mc.gen_load_int(r.ip.value, rst)
         self.load_reg(mc, r.r4, r.ip)
-        mc.SUB_ri(r.r4.value, r.r4.value, 2 * WORD)
+        mc.SUB_ri(r.r4.value, r.r4.value, WORD)
         self.store_reg(mc, r.r4, r.ip)
 
     def _dump(self, ops, type='loop'):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to