[pypy-commit] pypy memop-simplify3: reverted changes to malloc_nuresry_varsize, not sure how this solve this now, but I'll first implement zero_array in s390x

plan_rich pypy.commits at gmail.com
Mon Dec 28 08:04:05 EST 2015


Author: Richard Plangger <planrichi at gmail.com>
Branch: memop-simplify3
Changeset: r81454:52e124acc665
Date: 2015-12-28 14:03 +0100
http://bitbucket.org/pypy/pypy/changeset/52e124acc665/

Log:	reverted changes to malloc_nuresry_varsize, not sure how this solve
	this now, but I'll first implement zero_array in s390x

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
@@ -488,8 +488,8 @@
         elif arraydescr.itemsize == 0:
             total_size = arraydescr.basesize
         elif (self.gc_ll_descr.can_use_nursery_malloc(1) and
-              self.gen_malloc_nursery_varsize(arraydescr.itemsize,
-              v_length, op, arraydescr, kind=kind)):
+              self.gen_malloc_nursery_varsize(arraydescr.itemsize, v_length,
+                                              op, arraydescr, kind=kind)):
             # note that we cannot initialize tid here, because the array
             # might end up being allocated by malloc_external or some
             # stuff that initializes GC header fields differently
diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -2354,12 +2354,12 @@
         jmp_adr0 = self.mc.get_relative_pos()
 
         self.mc.MOV(eax, heap(nursery_free_adr))
-        assert valid_addressing_size(itemsize)
-        shift = get_scale(itemsize)
-        #else:
-        #    shift = self._imul_const_scaled(self.mc, edi.value,
-        #                                    varsizeloc.value, itemsize)
-        #    varsizeloc = edi
+        if valid_addressing_size(itemsize):
+            shift = get_scale(itemsize)
+        else:
+            shift = self._imul_const_scaled(self.mc, edi.value,
+                                            varsizeloc.value, itemsize)
+            varsizeloc = edi
 
         # now varsizeloc is a register != eax.  The size of
         # the variable part of the array is (varsizeloc << shift)


More information about the pypy-commit mailing list