Author: Lars Wassermann <[email protected]>
Branch: 
Changeset: r138:4ad14e0d4c7c
Date: 2013-03-07 18:19 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/4ad14e0d4c7c/

Log:    added can_enter_jit hint

diff --git a/spyvm/interpreter.py b/spyvm/interpreter.py
--- a/spyvm/interpreter.py
+++ b/spyvm/interpreter.py
@@ -74,10 +74,15 @@
     def c_loop(self, s_context):
         # padding = ' ' * (self.max_stack_depth - self.remaining_stack_depth)
         # print padding + s_context.short_str()
+        old_pc = 0
         while True:
             pc = s_context._pc
             method = s_context.s_method()
-
+            if pc < old_pc:
+                self.jit_driver.can_enter_jit(
+                    pc=pc, self=self, method=method,
+                    s_context=s_context)
+            old_pc = pc
             self.jit_driver.jit_merge_point(
                 pc=pc, self=self, method=method,
                 s_context=s_context)
diff --git a/spyvm/shadow.py b/spyvm/shadow.py
--- a/spyvm/shadow.py
+++ b/spyvm/shadow.py
@@ -532,6 +532,7 @@
         self._temps_and_stack[ptr] = w_v
         self._stack_ptr = ptr + 1
 
+    @jit.unroll_safe
     def push_all(self, lst):
         for elt in lst:
             self.push(elt)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to