[pypy-commit] pypy s390x-backend: removed debug statements, switched arguments while calling frame realloc and added a test for the pool

plan_rich pypy.commits at gmail.com
Tue Jan 5 04:03:58 EST 2016


Author: Richard Plangger <planrichi at gmail.com>
Branch: s390x-backend
Changeset: r81569:62baaa8ea669
Date: 2016-01-05 09:55 +0100
http://bitbucket.org/pypy/pypy/changeset/62baaa8ea669/

Log:	removed debug statements, switched arguments while calling frame
	realloc and added a test for the pool

diff --git a/rpython/jit/backend/zarch/assembler.py b/rpython/jit/backend/zarch/assembler.py
--- a/rpython/jit/backend/zarch/assembler.py
+++ b/rpython/jit/backend/zarch/assembler.py
@@ -305,7 +305,7 @@
         #   * no managed register must be modified
 
         ofs2 = self.cpu.get_ofs_of_frame_field('jf_gcmap')
-        mc.STG(r.SCRATCH2, l.addr(ofs2, r.SPP))
+        mc.STG(r.SCRATCH, l.addr(ofs2, r.SPP))
 
         self._push_core_regs_to_jitframe(mc, r.MANAGED_REGS)
         self._push_fp_regs_to_jitframe(mc)
@@ -317,7 +317,7 @@
 
         # no need to move second argument (frame_depth),
         # it is already in register r3!
-        mc.LGR(r.r3, r.SCRATCH)
+        mc.LGR(r.r3, r.SCRATCH2)
 
         RCS2 = r.r10
         RCS3 = r.r12
@@ -463,7 +463,6 @@
     def new_stack_loc(self, i, tp):
         base_ofs = self.cpu.get_baseofs_of_frame_field()
         loc = l.StackLocation(i, l.get_fp_offset(base_ofs, i), tp)
-        print("new stack location", loc)
         return loc
 
     def _call_header_with_stack_check(self):
diff --git a/rpython/jit/backend/zarch/regalloc.py b/rpython/jit/backend/zarch/regalloc.py
--- a/rpython/jit/backend/zarch/regalloc.py
+++ b/rpython/jit/backend/zarch/regalloc.py
@@ -488,14 +488,10 @@
             if not we_are_translated() and opnum == -127:
                 self._consider_force_spill(op)
             else:
-                print("regalloc before", self.rm.free_regs, self.rm.reg_bindings)
-                print(op)
                 arglocs = prepare_oplist[opnum](self, op)
                 asm_operations[opnum](self.assembler, op, arglocs, self)
             self.free_op_vars()
             self.possibly_free_var(op)
-            print("regalloc after", self.rm.free_regs, self.rm.reg_bindings)
-            print""
             self.rm._check_invariants()
             self.fprm._check_invariants()
             if self.assembler.mc.get_relative_pos() > self.limit_loop_break:
diff --git a/rpython/jit/backend/zarch/test/test_int.py b/rpython/jit/backend/zarch/test/test_int.py
--- a/rpython/jit/backend/zarch/test/test_int.py
+++ b/rpython/jit/backend/zarch/test/test_int.py
@@ -2,11 +2,8 @@
 from rpython.jit.backend.zarch.runner import CPU_S390_64
 from rpython.jit.tool.oparser import parse
 from rpython.jit.metainterp.history import (AbstractFailDescr,
-                                            AbstractDescr,
-                                            BasicFailDescr, BasicFinalDescr,
-                                            JitCellToken, TargetToken,
-                                            ConstInt, ConstPtr,
-                                            Const, ConstFloat)
+         AbstractDescr, BasicFailDescr, BasicFinalDescr, JitCellToken,
+         TargetToken, ConstInt, ConstPtr, Const, ConstFloat)
 from rpython.jit.metainterp.resoperation import InputArgInt, InputArgFloat
 from rpython.rtyper.lltypesystem import lltype
 from rpython.jit.metainterp.resoperation import ResOperation, rop
diff --git a/rpython/jit/backend/zarch/test/test_pool.py b/rpython/jit/backend/zarch/test/test_pool.py
new file mode 100644
--- /dev/null
+++ b/rpython/jit/backend/zarch/test/test_pool.py
@@ -0,0 +1,32 @@
+from rpython.jit.backend.zarch.pool import LiteralPool
+from rpython.jit.metainterp.history import (AbstractFailDescr,
+         AbstractDescr, BasicFailDescr, BasicFinalDescr, JitCellToken,
+         TargetToken, ConstInt, ConstPtr, Const, ConstFloat)
+from rpython.jit.metainterp.resoperation import ResOperation, rop
+from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
+import py
+
+class TestPoolZARCH(object):
+    def setup_class(self):
+        self.calldescr = None
+
+    def setup_method(self, name):
+        self.pool = LiteralPool()
+        self.asm = None
+
+    def ensure_can_hold(self, opnum, args, descr=None):
+        op = ResOperation(opnum, args, descr=descr)
+        self.pool.ensure_can_hold_constants(self.asm, op)
+
+    def const_in_pool(self, c):
+        try:
+            self.pool.get_offset(c)
+        except KeyError:
+            return False
+        return True
+
+    def test_constant_in_call_malloc(self):
+        c = ConstPtr(rffi.cast(llmemory.GCREF, 0xdeadbeef))
+        self.ensure_can_hold(rop.CALL_MALLOC_GC, [c], descr=self.calldescr)
+        assert self.const_in_pool(c)
+        assert self.const_in_pool(ConstPtr(rffi.cast(llmemory.GCREF, 0xdeadbeef)))


More information about the pypy-commit mailing list