[pypy-commit] pypy ppc-jit-backend: Handle holes in failargs of a guard
hager
noreply at buildbot.pypy.org
Tue Aug 2 11:51:18 CEST 2011
Author: hager <sven.hager at 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()
More information about the pypy-commit
mailing list