[pypy-commit] pypy stmgc-c7: import stmgc/7949c54b03a5

arigo noreply at buildbot.pypy.org
Thu Aug 21 17:25:26 CEST 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: stmgc-c7
Changeset: r72948:92734c1dff54
Date: 2014-08-21 17:20 +0200
http://bitbucket.org/pypy/pypy/changeset/92734c1dff54/

Log:	import stmgc/7949c54b03a5

diff --git a/rpython/translator/stm/src_stm/revision b/rpython/translator/stm/src_stm/revision
--- a/rpython/translator/stm/src_stm/revision
+++ b/rpython/translator/stm/src_stm/revision
@@ -1,1 +1,1 @@
-b067967930aa
+7949c54b03a5
diff --git a/rpython/translator/stm/src_stm/stm/rewind_setjmp.h b/rpython/translator/stm/src_stm/stm/rewind_setjmp.h
--- a/rpython/translator/stm/src_stm/stm/rewind_setjmp.h
+++ b/rpython/translator/stm/src_stm/stm/rewind_setjmp.h
@@ -75,8 +75,13 @@
 
 /* remember the current stack and ss_stack positions */
 #define rewind_jmp_enterframe(rjthread, rjbuf, ss)   do {  \
+    rewind_jmp_prepareframe(rjbuf);                        \
+    rewind_jmp_enterprepframe(rjthread, rjbuf, ss);        \
+} while (0)
+#define rewind_jmp_prepareframe(rjbuf)                     \
+    ((rjbuf)->frame_base = __builtin_frame_address(0))
+#define rewind_jmp_enterprepframe(rjthread, rjbuf, ss)   do {  \
     assert((((long)(ss)) & 1) == 0);                       \
-    (rjbuf)->frame_base = __builtin_frame_address(0);      \
     (rjbuf)->shadowstack_base = (char *)(ss);              \
     (rjbuf)->prev = (rjthread)->head;                      \
     (rjthread)->head = (rjbuf);                            \
diff --git a/rpython/translator/stm/src_stm/stmgc.h b/rpython/translator/stm/src_stm/stmgc.h
--- a/rpython/translator/stm/src_stm/stmgc.h
+++ b/rpython/translator/stm/src_stm/stmgc.h
@@ -329,6 +329,8 @@
 /* At some key places, like the entry point of the thread and in the
    function with the interpreter's dispatch loop, you need to declare
    a local variable of type 'rewind_jmp_buf' and call these macros. */
+#define stm_rewind_jmp_enterprepframe(tl, rjbuf)   \
+    rewind_jmp_enterprepframe(&(tl)->rjthread, rjbuf, (tl)->shadowstack)
 #define stm_rewind_jmp_enterframe(tl, rjbuf)       \
     rewind_jmp_enterframe(&(tl)->rjthread, rjbuf, (tl)->shadowstack)
 #define stm_rewind_jmp_leaveframe(tl, rjbuf)       \


More information about the pypy-commit mailing list