Author: Richard Plangger <planri...@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))) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit