Author: Armin Rigo <[email protected]>
Branch: stmgc-c7
Changeset: r73990:f626a453d3e4
Date: 2014-10-17 12:51 +0200
http://bitbucket.org/pypy/pypy/changeset/f626a453d3e4/
Log: (fijal, arigo)
Reintroduce a direct test for _stm_expand_marker_for_pypy
diff --git a/rpython/translator/stm/funcgen.py
b/rpython/translator/stm/funcgen.py
--- a/rpython/translator/stm/funcgen.py
+++ b/rpython/translator/stm/funcgen.py
@@ -222,7 +222,7 @@
def stm_expand_marker(funcgen, op):
result = funcgen.expr(op.result)
- return '%s = _stm_expand_marker();' % (result,)
+ return '%s = _pypy_stm_test_expand_marker();' % (result,)
def stm_setup_expand_marker_for_pypy(funcgen, op):
# hack hack hack
diff --git a/rpython/translator/stm/src_stm/extracode.h
b/rpython/translator/stm/src_stm/extracode.h
--- a/rpython/translator/stm/src_stm/extracode.h
+++ b/rpython/translator/stm/src_stm/extracode.h
@@ -128,6 +128,28 @@
return result;
}
+char *_pypy_stm_test_expand_marker(void)
+{
+ /* only for tests: XXX fishing */
+ stm_loc_marker_t marker;
+ marker.tl = &stm_thread_local;
+ marker.segment_base = STM_SEGMENT->segment_base;
+
+ struct stm_shadowentry_s *_ss = stm_thread_local.shadowstack - 2;
+ while (!(((uintptr_t)(_ss->ss)) & 1)) {
+ _ss--;
+ assert(_ss >= stm_thread_local.shadowstack_base);
+ }
+ marker.odd_number = (uintptr_t)(_ss->ss);
+ marker.object = (_ss + 1)->ss;
+
+ static char buffer[80];
+ int length = _stm_expand_marker_for_pypy(&marker, buffer, 80);
+ assert(length >= 0 && length < 80);
+ buffer[length] = 0;
+ return buffer;
+}
+
void pypy_stm_setup_expand_marker(long co_filename_ofs,
long co_name_ofs,
long co_firstlineno_ofs,
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit