[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