[pypy-svn] r52941 - in pypy/branch/jit-hotpath/pypy/jit: rainbow rainbow/test timeshifter
antocuni at codespeak.net
antocuni at codespeak.net
Tue Mar 25 21:03:46 CET 2008
Author: antocuni
Date: Tue Mar 25 21:03:44 2008
New Revision: 52941
Modified:
pypy/branch/jit-hotpath/pypy/jit/rainbow/interpreter.py
pypy/branch/jit-hotpath/pypy/jit/rainbow/test/test_interpreter.py
pypy/branch/jit-hotpath/pypy/jit/timeshifter/rtimeshift.py
pypy/branch/jit-hotpath/pypy/jit/timeshifter/rvalue.py
Log:
test_green_with_side_effects passes for ootype
Modified: pypy/branch/jit-hotpath/pypy/jit/rainbow/interpreter.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/rainbow/interpreter.py (original)
+++ pypy/branch/jit-hotpath/pypy/jit/rainbow/interpreter.py Tue Mar 25 21:03:44 2008
@@ -1033,6 +1033,11 @@
return rtimeshift.gengetfield(self.jitstate, deepfrozen, fielddesc,
structbox)
+ @arguments("red", "fielddesc", "red")
+ def opimpl_red_oosetfield(self, destbox, fielddesc, valuebox):
+ rtimeshift.gensetfield(self.jitstate, fielddesc, destbox,
+ valuebox)
+
class DebugTrace(object):
def __init__(self, *args):
Modified: pypy/branch/jit-hotpath/pypy/jit/rainbow/test/test_interpreter.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/rainbow/test/test_interpreter.py (original)
+++ pypy/branch/jit-hotpath/pypy/jit/rainbow/test/test_interpreter.py Tue Mar 25 21:03:44 2008
@@ -2015,8 +2015,6 @@
def _skip(self):
py.test.skip('in progress')
- #test_green_with_side_effects = _skip
-
test_degenerated_before_return = _skip
test_degenerated_before_return_2 = _skip
test_degenerated_at_return = _skip
Modified: pypy/branch/jit-hotpath/pypy/jit/timeshifter/rtimeshift.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/timeshifter/rtimeshift.py (original)
+++ pypy/branch/jit-hotpath/pypy/jit/timeshifter/rtimeshift.py Tue Mar 25 21:03:44 2008
@@ -170,7 +170,7 @@
return argbox.op_getfield(jitstate, fielddesc)
def gensetfield(jitstate, fielddesc, destbox, valuebox):
- assert isinstance(destbox, rvalue.PtrRedBox)
+ assert isinstance(destbox, (rvalue.PtrRedBox, rvalue.InstanceRedBox))
destbox.op_setfield(jitstate, fielddesc, valuebox)
def ll_gengetsubstruct(jitstate, fielddesc, argbox):
Modified: pypy/branch/jit-hotpath/pypy/jit/timeshifter/rvalue.py
==============================================================================
--- pypy/branch/jit-hotpath/pypy/jit/timeshifter/rvalue.py (original)
+++ pypy/branch/jit-hotpath/pypy/jit/timeshifter/rvalue.py Tue Mar 25 21:03:44 2008
@@ -347,6 +347,16 @@
self.remember_field(fielddesc, box)
return box
+ def op_setfield(self, jitstate, fielddesc, valuebox):
+ self.learn_nonzeroness(jitstate, True)
+ gv_ptr = self.genvar
+ if gv_ptr:
+ fielddesc.generate_set(jitstate, gv_ptr,
+ valuebox.getgenvar(jitstate))
+ else:
+ assert self.content is not None
+ self.content.op_setfield(jitstate, fielddesc, valuebox)
+
def remember_field(self, fielddesc, box):
if self.genvar.is_const:
return # no point in remembering field then
@@ -358,16 +368,6 @@
class PtrRedBox(AbstractPtrRedBox, LLTypeMixin):
- def op_setfield(self, jitstate, fielddesc, valuebox):
- self.learn_nonzeroness(jitstate, True)
- gv_ptr = self.genvar
- if gv_ptr:
- fielddesc.generate_set(jitstate, gv_ptr,
- valuebox.getgenvar(jitstate))
- else:
- assert self.content is not None
- self.content.op_setfield(jitstate, fielddesc, valuebox)
-
def op_getsubstruct(self, jitstate, fielddesc):
self.learn_nonzeroness(jitstate, True)
gv_ptr = self.genvar
More information about the Pypy-commit
mailing list