Author: fijal
Branch: jit-leaner-frontend
Changeset: r82872:87305d3006b1
Date: 2016-03-07 22:10 +0200
http://bitbucket.org/pypy/pypy/changeset/87305d3006b1/
Log: one more commit of progress
diff --git a/rpython/jit/metainterp/opencoder.py
b/rpython/jit/metainterp/opencoder.py
--- a/rpython/jit/metainterp/opencoder.py
+++ b/rpython/jit/metainterp/opencoder.py
@@ -26,7 +26,7 @@
self.save_pos = -1
def length(self):
- return self.end - self.start - 1
+ return self.end - self.start
def done(self):
return self.pos >= self.end
diff --git a/rpython/jit/metainterp/pyjitpl.py
b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -2609,7 +2609,10 @@
self.history.record(rop.JUMP, live_arg_boxes[num_green_args:], None,
descr=target_jitcell_token)
self.history.ends_with_jump = True
- target_token = compile.compile_trace(self, self.resumekey)
+ try:
+ target_token = compile.compile_trace(self, self.resumekey)
+ finally:
+ xxxx
if target_token is not None: # raise if it *worked* correctly
assert isinstance(target_token, TargetToken)
jitcell_token = target_token.targeting_jitcell_token
diff --git a/rpython/jit/metainterp/resume.py b/rpython/jit/metainterp/resume.py
--- a/rpython/jit/metainterp/resume.py
+++ b/rpython/jit/metainterp/resume.py
@@ -317,13 +317,15 @@
#self._number_boxes(topsnapshot.boxes, optimizer, state)
#assert state.position == special_boxes_size
+ total = 2
while not snapshot_iter.done():
size, jitcode_index, pc = snapshot_iter.get_size_jitcode_pc()
+ total += 2 + size
state.append(rffi.cast(rffi.SHORT, jitcode_index))
state.append(rffi.cast(rffi.SHORT, pc))
self._number_boxes(snapshot_iter, size, optimizer, state)
- numb = resumecode.create_numbering(state.current)
+ numb = resumecode.create_numbering(state.current, total)
return numb, state.liveboxes, state.v
def forget_numberings(self):
diff --git a/rpython/jit/metainterp/resumecode.py
b/rpython/jit/metainterp/resumecode.py
--- a/rpython/jit/metainterp/resumecode.py
+++ b/rpython/jit/metainterp/resumecode.py
@@ -24,9 +24,12 @@
NUMBERINGP.TO.become(NUMBERING)
NULL_NUMBER = lltype.nullptr(NUMBERING)
-def create_numbering(lst):
+def create_numbering(lst, total=-1):
+ if total == -1:
+ total = len(lst)
result = []
- for item in lst:
+ for i in range(total):
+ item = lst[i]
item = rffi.cast(lltype.Signed, item)
item *= 2
if item < 0:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit