Author: Richard Plangger <[email protected]>
Branch: s390x-backend
Changeset: r81434:24cc91a9576d
Date: 2015-12-23 10:32 +0100
http://bitbucket.org/pypy/pypy/changeset/24cc91a9576d/

Log:    pushing constant base ptr of gc_store/load into literal pool

diff --git a/rpython/jit/backend/zarch/pool.py 
b/rpython/jit/backend/zarch/pool.py
--- a/rpython/jit/backend/zarch/pool.py
+++ b/rpython/jit/backend/zarch/pool.py
@@ -53,6 +53,10 @@
                 self.reserve_literal(8)
             return
         elif opnum == rop.GC_STORE or opnum == rop.GC_STORE_INDEXED:
+            arg = op.getarg(0)
+            if arg.is_constant():
+                self.offset_map[arg] = self.size
+                self.reserve_literal(8)
             arg = op.getarg(2)
             if arg.is_constant():
                 self.offset_map[arg] = self.size
@@ -64,6 +68,10 @@
              or opnum in (rop.GC_LOAD_INDEXED_F,
                           rop.GC_LOAD_INDEXED_R,
                           rop.GC_LOAD_INDEXED_I,):
+            arg = op.getarg(0)
+            if arg.is_constant():
+                self.offset_map[arg] = self.size
+                self.reserve_literal(8)
             return
         elif op.is_call_release_gil():
             for arg in op.getarglist()[1:]:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to