[pypy-commit] pypy jitframe-on-heap: Fix translation for no-jit cases
arigo
noreply at buildbot.pypy.org
Sun Feb 24 18:56:22 CET 2013
Author: Armin Rigo <arigo at tunes.org>
Branch: jitframe-on-heap
Changeset: r61737:434115dab59e
Date: 2013-02-24 18:51 +0100
http://bitbucket.org/pypy/pypy/changeset/434115dab59e/
Log: Fix translation for no-jit cases
diff --git a/rpython/memory/gctransform/asmgcroot.py b/rpython/memory/gctransform/asmgcroot.py
--- a/rpython/memory/gctransform/asmgcroot.py
+++ b/rpython/memory/gctransform/asmgcroot.py
@@ -557,6 +557,7 @@
pos = ~ pos # can ignore this "range" marker here
gccallshapes = llop.gc_asmgcroot_static(llmemory.Address, 2)
self.addr = gccallshapes + pos
+ self.jit_index = -1
def setjitframe(self, extra_stack_depth):
self.addr = llmemory.NULL
@@ -564,9 +565,10 @@
self.extra_stack_depth = extra_stack_depth
def next(self):
- addr = self.addr
- if addr:
+ index = self.jit_index
+ if index < 0:
# case "outside the jit"
+ addr = self.addr
value = 0
while True:
b = ord(addr.char[0])
@@ -581,7 +583,6 @@
# case "in the jit"
from rpython.jit.backend.x86.arch import FRAME_FIXED_SIZE
from rpython.jit.backend.x86.arch import PASS_ON_MY_FRAME
- index = self.jit_index
self.jit_index = index + 1
if index == 0:
# the jitframe is an object in EBP
More information about the pypy-commit
mailing list