Author: Maciej Fijalkowski <[email protected]>
Branch: fast-slowpath
Changeset: r65470:06fe59099c92
Date: 2013-07-18 22:16 +0200
http://bitbucket.org/pypy/pypy/changeset/06fe59099c92/
Log: I think it's int_ge since the cond_call is executed *when* the
condition is true
diff --git a/rpython/jit/backend/llsupport/rewrite.py
b/rpython/jit/backend/llsupport/rewrite.py
--- a/rpython/jit/backend/llsupport/rewrite.py
+++ b/rpython/jit/backend/llsupport/rewrite.py
@@ -79,11 +79,13 @@
if op.getopnum() == rop.CALL_ASSEMBLER:
self.handle_call_assembler(op)
continue
- if op.getopnum() == rop.CALL:
- idx = op.getdescr().get_extra_info().oopspecindex
- if idx == EffectInfo.OS_LIST_RESIZE_GE:
- self.handle_list_resize_ge(op)
- continue
+ if op.getopnum() == rop.CALL and op.getdescr():
+ ei = op.getdescr().get_extra_info()
+ if ei:
+ idx = ei.oopspecindex
+ if idx == EffectInfo.OS_LIST_RESIZE_GE:
+ self.handle_list_resize_ge(op)
+ continue
#
self.newops.append(op)
return self.newops
@@ -140,7 +142,7 @@
op0 = ResOperation(rop.GETFIELD_GC, [lst], arrbox, descr=itemsdescr)
op1 = ResOperation(rop.ARRAYLEN_GC, [arrbox], arrlenbox,
descr=arraydescr)
- op2 = ResOperation(rop.INT_LT, [arrlenbox, newsizebox], cond_box)
+ op2 = ResOperation(rop.INT_GE, [arrlenbox, newsizebox], cond_box)
op3 = ResOperation(rop.COND_CALL, [cond_box, func, lst, newsizebox],
None, descr=op.getdescr())
self.newops += [op0, op1, op2, op3]
diff --git a/rpython/jit/backend/llsupport/test/test_rewrite.py
b/rpython/jit/backend/llsupport/test/test_rewrite.py
--- a/rpython/jit/backend/llsupport/test/test_rewrite.py
+++ b/rpython/jit/backend/llsupport/test/test_rewrite.py
@@ -798,6 +798,6 @@
[p0, i0]
p1 = getfield_gc(p0, descr=itemsdescr)
i1 = arraylen_gc(p1, descr=arraydescr)
- i2 = int_lt(i1, i0)
+ i2 = int_ge(i1, i0)
cond_call(i2, ConstClass(list_resize_ge), p0, i0,
descr=list_resize_descr)
""")
diff --git a/rpython/jit/backend/x86/regalloc.py
b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -802,7 +802,7 @@
assert op.result is None
args = op.getarglist()
assert 2 <= len(args) <= 4 + 2
- loc_call = self.make_sure_var_in_reg(args[1], args, selected_reg=eax)
+ loc_call = self.make_sure_var_in_reg(args[1], [], selected_reg=eax)
args_so_far = [args[1]]
for i in range(2, len(args)):
reg = self.rm.register_arguments[i - 2]
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit