Author: Armin Rigo <[email protected]>
Branch:
Changeset: r66879:f21ab1e8ae20
Date: 2013-09-09 22:01 +0200
http://bitbucket.org/pypy/pypy/changeset/f21ab1e8ae20/
Log: Move gc_writebarrier() closer to where it needs to be: just before
calling the assembler
diff --git a/rpython/jit/backend/llsupport/gc.py
b/rpython/jit/backend/llsupport/gc.py
--- a/rpython/jit/backend/llsupport/gc.py
+++ b/rpython/jit/backend/llsupport/gc.py
@@ -133,9 +133,7 @@
def malloc_jitframe(self, frame_info):
""" Allocate a new frame, overwritten by tests
"""
- frame = jitframe.JITFRAME.allocate(frame_info)
- llop.gc_writebarrier(lltype.Void, frame)
- return frame
+ return jitframe.JITFRAME.allocate(frame_info)
class JitFrameDescrs:
def _freeze_(self):
diff --git a/rpython/jit/backend/llsupport/llmodel.py
b/rpython/jit/backend/llsupport/llmodel.py
--- a/rpython/jit/backend/llsupport/llmodel.py
+++ b/rpython/jit/backend/llsupport/llmodel.py
@@ -247,6 +247,7 @@
else:
assert kind == history.REF
self.set_ref_value(ll_frame, num, arg)
+ llop.gc_writebarrier(lltype.Void, ll_frame)
ll_frame = func(ll_frame)
finally:
if not self.translate_support_code:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit