[pypy-commit] pypy jit-targets: reenable autoconstruction of jump descr in oparser
hakanardo
noreply at buildbot.pypy.org
Wed Nov 23 19:18:35 CET 2011
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-targets
Changeset: r49701:175f0efa03c1
Date: 2011-11-23 19:18 +0100
http://bitbucket.org/pypy/pypy/changeset/175f0efa03c1/
Log: reenable autoconstruction of jump descr in oparser
diff --git a/pypy/jit/tool/oparser.py b/pypy/jit/tool/oparser.py
--- a/pypy/jit/tool/oparser.py
+++ b/pypy/jit/tool/oparser.py
@@ -70,7 +70,7 @@
self.invent_fail_descr = invent_fail_descr
self.nonstrict = nonstrict
self.model = get_model(self.use_mock_model)
- self.celltoken = self.model.JitCellToken()
+ self.original_jitcell_token = self.model.JitCellToken()
def get_const(self, name, typ):
if self._consts is None:
@@ -241,9 +241,10 @@
if opnum == rop.FINISH:
if descr is None and self.invent_fail_descr:
descr = self.invent_fail_descr(self.model, fail_args)
-## elif opnum == rop.JUMP:
-## if descr is None and self.invent_fail_descr:
-## ...
+ elif opnum == rop.JUMP:
+ if descr is None and self.invent_fail_descr:
+ descr = self.original_jitcell_token
+
return opnum, args, descr, fail_args
def create_op(self, opnum, args, result, descr):
@@ -307,6 +308,7 @@
raise ParseError("unexpected dedent at line: %s" % newlines[num])
loop = self.model.ExtendedTreeLoop("loop")
loop.comment = first_comment
+ loop.original_jitcell_token = self.original_jitcell_token
loop.operations = ops
loop.inputargs = inpargs
loop.last_offset = last_offset
diff --git a/pypy/jit/tool/oparser_model.py b/pypy/jit/tool/oparser_model.py
--- a/pypy/jit/tool/oparser_model.py
+++ b/pypy/jit/tool/oparser_model.py
@@ -33,13 +33,13 @@
return LoopModel
def get_mock_model():
- class LoopModel(object):
+ class MockLoopModel(object):
class TreeLoop(object):
def __init__(self, name):
self.name = name
- class LoopToken(object):
+ class JitCellToken(object):
I_am_a_descr = True
class BasicFailDescr(object):
@@ -107,9 +107,9 @@
class llhelper(object):
pass
- LoopModel.llhelper.BoxRef = LoopModel.BoxRef
+ MockLoopModel.llhelper.BoxRef = MockLoopModel.BoxRef
- return LoopModel
+ return MockLoopModel
def get_model(use_mock):
diff --git a/pypy/jit/tool/test/test_oparser.py b/pypy/jit/tool/test/test_oparser.py
--- a/pypy/jit/tool/test/test_oparser.py
+++ b/pypy/jit/tool/test/test_oparser.py
@@ -119,7 +119,7 @@
jump()
'''
loop = self.parse(x)
- assert loop.operations[0].getdescr() is loop.token
+ assert loop.operations[0].getdescr() is loop.original_jitcell_token
def test_jump_target_other(self):
looptoken = JitCellToken()
More information about the pypy-commit
mailing list