[pypy-commit] pypy remove-globals-in-jit: Pass the first test.

arigo noreply at buildbot.pypy.org
Thu Nov 15 21:45:55 CET 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: remove-globals-in-jit
Changeset: r58925:7dad9c72895a
Date: 2012-11-15 12:04 +0100
http://bitbucket.org/pypy/pypy/changeset/7dad9c72895a/

Log:	Pass the first test.

diff --git a/pypy/jit/backend/llsupport/llmodel.py b/pypy/jit/backend/llsupport/llmodel.py
--- a/pypy/jit/backend/llsupport/llmodel.py
+++ b/pypy/jit/backend/llsupport/llmodel.py
@@ -6,7 +6,7 @@
 from pypy.jit.metainterp import history
 from pypy.jit.codewriter import heaptracker, longlong
 from pypy.jit.backend.model import AbstractCPU
-from pypy.jit.backend.llsupport import symbolic
+from pypy.jit.backend.llsupport import symbolic, jitframe
 from pypy.jit.backend.llsupport.symbolic import WORD, unroll_basic_sizes
 from pypy.jit.backend.llsupport.descr import (
     get_size_descr, get_field_descr, get_array_descr,
@@ -307,6 +307,27 @@
                                           self._zer_error_inst)
         return zer_vtable, zer_inst
 
+    def get_latest_descr(self, deadframe):
+        deadframe = lltype.cast_opaque_ptr(jitframe.DEADFRAMEPTR, deadframe)
+        descr = deadframe.jf_descr
+        return history.AbstractDescr.show(self, descr)
+
+    def get_latest_value_int(self, deadframe, index):
+        deadframe = lltype.cast_opaque_ptr(jitframe.DEADFRAMEPTR, deadframe)
+        return deadframe.jf_values[index].int
+
+    def get_latest_value_ref(self, deadframe, index):
+        deadframe = lltype.cast_opaque_ptr(jitframe.DEADFRAMEPTR, deadframe)
+        return deadframe.jf_values[index].ref
+
+    def get_latest_value_float(self, deadframe, index):
+        deadframe = lltype.cast_opaque_ptr(jitframe.DEADFRAMEPTR, deadframe)
+        return deadframe.jf_values[index].float
+
+    def get_latest_value_count(self, deadframe):
+        deadframe = lltype.cast_opaque_ptr(jitframe.DEADFRAMEPTR, deadframe)
+        return len(deadframe.jf_values)
+
     # ____________________________________________________________
 
     def bh_arraylen_gc(self, array, arraydescr):
diff --git a/pypy/jit/backend/x86/runner.py b/pypy/jit/backend/x86/runner.py
--- a/pypy/jit/backend/x86/runner.py
+++ b/pypy/jit/backend/x86/runner.py
@@ -87,18 +87,6 @@
         return self.assembler.assemble_bridge(faildescr, inputargs, operations,
                                               original_loop_token, log=log)
 
-    def get_latest_value_int(self, index):
-        return self.assembler.fail_boxes_int.getitem(index)
-
-    def get_latest_value_float(self, index):
-        return self.assembler.fail_boxes_float.getitem(index)
-
-    def get_latest_value_ref(self, index):
-        return self.assembler.fail_boxes_ptr.getitem(index)
-
-    def get_latest_value_count(self):
-        return self.assembler.fail_boxes_count
-
     def clear_latest_values(self, count):
         setitem = self.assembler.fail_boxes_ptr.setitem
         null = lltype.nullptr(llmemory.GCREF.TO)


More information about the pypy-commit mailing list