Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r60049:940e01414f34
Date: 2013-01-14 15:30 +0200
http://bitbucket.org/pypy/pypy/changeset/940e01414f34/
Log: frontend fixes
diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -857,10 +857,14 @@
# ____________________________________________________________
+memory_error = MemoryError()
+
class PropagateExceptionDescr(AbstractFailDescr):
def handle_fail(self, deadframe, metainterp_sd, jitdriver_sd):
cpu = metainterp_sd.cpu
exception = cpu.grab_exc_value(deadframe)
+ if not exception:
+ exception = memory_error
assert exception, "PropagateExceptionDescr: no exception??"
raise metainterp_sd.ExitFrameWithExceptionRef(cpu, exception)
diff --git a/pypy/jit/metainterp/resume.py b/pypy/jit/metainterp/resume.py
--- a/pypy/jit/metainterp/resume.py
+++ b/pypy/jit/metainterp/resume.py
@@ -694,6 +694,7 @@
def _init(self, cpu, storage):
self.cpu = cpu
self.cur_numb = storage.rd_numb
+ self.count = storage.rd_count
self.consts = storage.rd_consts
def _prepare(self, storage):
@@ -1243,7 +1244,7 @@
else:
assert tag == TAGBOX
if num < 0:
- num += self.cpu.get_latest_value_count(self.deadframe)
+ num += self.count
return self.cpu.get_int_value(self.deadframe, num)
def decode_ref(self, tagged):
@@ -1257,7 +1258,7 @@
else:
assert tag == TAGBOX
if num < 0:
- num += self.cpu.get_latest_value_count(self.deadframe)
+ num += self.count
return self.cpu.get_ref_value(self.deadframe, num)
def decode_float(self, tagged):
@@ -1267,7 +1268,7 @@
else:
assert tag == TAGBOX
if num < 0:
- num += self.cpu.get_latest_value_count(self.deadframe)
+ num += self.count
return self.cpu.get_float_value(self.deadframe, num)
def write_an_int(self, index, int):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit