Author: David Schneider <[email protected]>
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)):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit