[pypy-commit] pypy jitframe-on-heap: update get_gcmap
bivab
noreply at buildbot.pypy.org
Tue Mar 5 19:34:33 CET 2013
Author: David Schneider <david.schneider at picle.org>
Branch: jitframe-on-heap
Changeset: r62096:eaa83da7cec2
Date: 2013-03-05 19:27 +0100
http://bitbucket.org/pypy/pypy/changeset/eaa83da7cec2/
Log: update get_gcmap
diff --git a/rpython/jit/backend/arm/regalloc.py b/rpython/jit/backend/arm/regalloc.py
--- a/rpython/jit/backend/arm/regalloc.py
+++ b/rpython/jit/backend/arm/regalloc.py
@@ -32,6 +32,7 @@
from rpython.jit.backend.llsupport.descr import unpack_arraydescr
from rpython.jit.backend.llsupport.descr import unpack_fielddescr
from rpython.jit.backend.llsupport.descr import unpack_interiorfielddescr
+from rpython.rlib.rarithmetic import r_longlong, r_uint
# xxx hack: set a default value for TargetToken._ll_loop_code. If 0, we know
@@ -341,14 +342,14 @@
for box, loc in self.rm.reg_bindings.iteritems():
if loc in forbidden_regs:
continue
- if box.type == REF and self.fm.stays_alive(box):
+ if box.type == REF and self.rm.is_still_alive(box):
assert not noregs
- assert isinstance(loc, RegLoc)
- val = gpr_reg_mgr_cls.all_reg_indexes[loc.value]
+ assert loc.is_reg()
+ val = loc.value
gcmap[val // WORD // 8] |= r_uint(1) << (val % (WORD * 8))
for box, loc in self.fm.bindings.iteritems():
- if box.type == REF and self.fm.stays_alive(box):
- assert isinstance(loc, StackLoc)
+ if box.type == REF and self.rm.is_still_alive(box):
+ assert loc.is_stack()
val = loc.value // WORD
gcmap[val // WORD // 8] |= r_uint(1) << (val % (WORD * 8))
for i in range(len(gcmap)):
More information about the pypy-commit
mailing list