Author: Richard Plangger <planri...@gmail.com> Branch: s390x-backend Changeset: r81950:3d78eb62b0e5 Date: 2016-01-26 16:44 +0100 http://bitbucket.org/pypy/pypy/changeset/3d78eb62b0e5/
Log: merged head 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 @@ -542,7 +542,6 @@ mc.restore_link() # So we return to our caller, conditionally if "EQ" mc.BCR(c.EQ, r.r14) - mc.trap() # debug if this is EVER executed! # # Else, jump to propagate_exception_path assert self.propagate_exception_path diff --git a/rpython/jit/backend/zarch/opassembler.py b/rpython/jit/backend/zarch/opassembler.py --- a/rpython/jit/backend/zarch/opassembler.py +++ b/rpython/jit/backend/zarch/opassembler.py @@ -682,11 +682,10 @@ def emit_guard_nonnull_class(self, op, arglocs, regalloc): self.mc.cmp_op(arglocs[0], l.imm(1), imm=True, signed=False) patch_pos = self.mc.currpos() - self.mc.trap() - self.mc.write('\x00' * 4) + self.mc.reserve_cond_jump(short=True) self._cmp_guard_class(op, arglocs, regalloc) pmc = OverwritingBuilder(self.mc, patch_pos, 1) - pmc.BRCL(c.LT, l.imm(self.mc.currpos() - patch_pos)) + pmc.BRC(c.LT, l.imm(self.mc.currpos() - patch_pos)) pmc.overwrite() self.guard_success_cc = c.EQ self._emit_guard(op, arglocs[2:]) @@ -716,9 +715,7 @@ def _cmp_guard_gc_type(self, loc_ptr, expected_typeid): self._read_typeid(r.SCRATCH2, loc_ptr) assert 0 <= expected_typeid <= 0x7fffffff # 4 bytes are always enough - if expected_typeid > 0xffff: # if 2 bytes are not enough - self.mc.AGHI(r.SCRATCH2, l.imm(-(expected_typeid >> 16))) - expected_typeid = expected_typeid & 0xffff + # we can handle 4 byte compare immediate self.mc.cmp_op(r.SCRATCH2, l.imm(expected_typeid), imm=True, signed=False) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit