Author: Richard Plangger <planri...@gmail.com> Branch: s390x-backend Changeset: r81420:2a2bdeba9644 Date: 2015-12-22 14:19 +0100 http://bitbucket.org/pypy/pypy/changeset/2a2bdeba9644/
Log: return types test for call release gil test passes, needed to save the floating point return value on the stack diff --git a/rpython/jit/backend/zarch/callbuilder.py b/rpython/jit/backend/zarch/callbuilder.py --- a/rpython/jit/backend/zarch/callbuilder.py +++ b/rpython/jit/backend/zarch/callbuilder.py @@ -154,6 +154,7 @@ RFASTGILPTR = self.RFASTGILPTR # self.mc.STMG(RSHADOWOLD, self.RFASTGILPTR, l.addr(-3*WORD, r.SP)) + # 3 for the three registers, 1 for a floating point return value! self.subtracted_to_sp += 4*WORD # # Save this thread's shadowstack pointer into r29, for later comparison @@ -226,18 +227,14 @@ if reg.is_core_reg(): self.mc.LGR(RSAVEDRES, reg) elif reg.is_fp_reg(): - xxx - self.mc.stfd(reg.value, r.SP.value, - PARAM_SAVE_AREA_OFFSET + 7 * WORD) + self.mc.STD(reg, l.addr(-4*WORD, r.SP)) self.mc.load_imm(self.mc.RAW_CALL_REG, self.asm.reacqgil_addr) self.mc.raw_call() if reg is not None: if reg.is_core_reg(): self.mc.LGR(reg, RSAVEDRES) elif reg.is_fp_reg(): - xxx - self.mc.lfd(reg.value, r.SP.value, - PARAM_SAVE_AREA_OFFSET + 7 * WORD) + self.mc.LD(reg, l.addr(-4*WORD, r.SP)) # replace b1_location with BEQ(here) pmc = OverwritingBuilder(self.mc, b1_location, 1) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit