Author: hager <sven.ha...@uni-duesseldorf.de> Branch: ppc-jit-backend Changeset: r46188:f9ccdd06cb00 Date: 2011-08-02 11:48 +0200 http://bitbucket.org/pypy/pypy/changeset/f9ccdd06cb00/
Log: Handle holes in failargs of a guard diff --git a/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py b/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py --- a/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py +++ b/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py @@ -885,7 +885,10 @@ failargs = op.getfailargs() reglist = [] for failarg in failargs: - reglist.append(cpu.reg_map[failarg]) + if failarg is None: + reglist.append(None) + else: + reglist.append(cpu.reg_map[failarg]) cpu.patch_list.append((numops, fail_index, op, reglist)) diff --git a/pypy/jit/backend/ppc/runner.py b/pypy/jit/backend/ppc/runner.py --- a/pypy/jit/backend/ppc/runner.py +++ b/pypy/jit/backend/ppc/runner.py @@ -68,8 +68,10 @@ # store return parameters in memory for index, reg in enumerate(reglist): - addr = self.fail_boxes_int.get_addr_for_num(index) - codebuilder.store_reg(reg, addr) + # if reg is None, then there is a hole in the failargs + if reg is not None: + addr = self.fail_boxes_int.get_addr_for_num(index) + codebuilder.store_reg(reg, addr) codebuilder.li(3, fail_index) codebuilder.blr() _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit