[pypy-commit] pypy op_malloc_gc: Fixes.
arigo
noreply at buildbot.pypy.org
Sun Dec 18 16:00:59 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch: op_malloc_gc
Changeset: r50656:9ed69ff1e09e
Date: 2011-12-18 16:00 +0100
http://bitbucket.org/pypy/pypy/changeset/9ed69ff1e09e/
Log: Fixes.
diff --git a/pypy/jit/backend/llsupport/descr.py b/pypy/jit/backend/llsupport/descr.py
--- a/pypy/jit/backend/llsupport/descr.py
+++ b/pypy/jit/backend/llsupport/descr.py
@@ -88,6 +88,9 @@
self.field_size = field_size
self.flag = flag
+ def is_pointer_field(self):
+ return self.flag == FLAG_POINTER
+
def is_field_signed(self):
return self.flag == FLAG_SIGNED
@@ -157,6 +160,12 @@
self.lendescr = lendescr # or None, if no length
self.flag = flag
+ def is_array_of_pointers(self):
+ return self.flag == FLAG_POINTER
+
+ def is_item_signed(self):
+ return self.flag == FLAG_SIGNED
+
def repr_of_descr(self):
return '<Array%s %s>' % (self.flag, self.itemsize)
diff --git a/pypy/jit/backend/llsupport/llmodel.py b/pypy/jit/backend/llsupport/llmodel.py
--- a/pypy/jit/backend/llsupport/llmodel.py
+++ b/pypy/jit/backend/llsupport/llmodel.py
@@ -8,9 +8,10 @@
from pypy.jit.backend.model import AbstractCPU
from pypy.jit.backend.llsupport import symbolic
from pypy.jit.backend.llsupport.symbolic import WORD, unroll_basic_sizes
-from pypy.jit.backend.llsupport.descr import (get_size_descr,
- get_field_descr, FieldDescr, get_array_descr,
- ArrayDescr, get_call_descr, get_interiorfield_descr)
+from pypy.jit.backend.llsupport.descr import (
+ get_size_descr, get_field_descr, get_array_descr,
+ get_call_descr, get_interiorfield_descr,
+ FieldDescr, ArrayDescr, CallDescr)
from pypy.jit.backend.llsupport.asmmemmgr import AsmMemoryManager
@@ -235,7 +236,7 @@
return get_array_descr(self.gc_ll_descr, A)
def interiorfielddescrof(self, A, fieldname):
- return get_interiorfield_descr(self.gc_ll_descr, A, A.OF, fieldname)
+ return get_interiorfield_descr(self.gc_ll_descr, A, fieldname)
def interiorfielddescrof_dynamic(self, offset, width, fieldsize,
is_pointer, is_float, is_signed):
@@ -244,14 +245,14 @@
return InteriorFieldDescr(arraydescr, fielddescr)
def unpack_arraydescr(self, arraydescr):
- assert isinstance(arraydescr, BaseArrayDescr)
- return arraydescr.get_base_size(self.translate_support_code)
+ assert isinstance(arraydescr, ArrayDescr)
+ return arraydescr.basesize
unpack_arraydescr._always_inline_ = True
def unpack_arraydescr_size(self, arraydescr):
- assert isinstance(arraydescr, BaseArrayDescr)
- ofs = arraydescr.get_base_size(self.translate_support_code)
- size = arraydescr.get_item_size(self.translate_support_code)
+ assert isinstance(arraydescr, ArrayDescr)
+ ofs = arraydescr.basesize
+ size = arraydescr.itemsize
sign = arraydescr.is_item_signed()
return ofs, size, sign
unpack_arraydescr_size._always_inline_ = True
@@ -279,8 +280,8 @@
# ____________________________________________________________
def bh_arraylen_gc(self, arraydescr, array):
- assert isinstance(arraydescr, BaseArrayDescr)
- ofs = arraydescr.get_ofs_length(self.translate_support_code)
+ assert isinstance(arraydescr, ArrayDescr)
+ ofs = arraydescr.lendescr.offset
return rffi.cast(rffi.CArrayPtr(lltype.Signed), array)[ofs/WORD]
@specialize.argtype(2)
More information about the pypy-commit
mailing list