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

Reply via email to