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