Author: Armin Rigo <ar...@tunes.org> Branch: stmgc-c7 Changeset: r69889:fafe0f9d754c Date: 2014-03-12 09:39 +0100 http://bitbucket.org/pypy/pypy/changeset/fafe0f9d754c/
Log: Fixes for test_stm_atomic diff --git a/rpython/rtyper/lltypesystem/lloperation.py b/rpython/rtyper/lltypesystem/lloperation.py --- a/rpython/rtyper/lltypesystem/lloperation.py +++ b/rpython/rtyper/lltypesystem/lloperation.py @@ -441,6 +441,10 @@ 'stm_threadlocal_get': LLOp(sideeffects=False), 'stm_threadlocal_set': LLOp(), + 'stm_increment_atomic': LLOp(), + 'stm_decrement_atomic': LLOp(), + 'stm_get_atomic': LLOp(sideeffects=False), + ## 'stm_allocate_nonmovable_int_adr': LLOp(sideeffects=False, canmallocgc=True), ## 'stm_become_inevitable': LLOp(canmallocgc=True), ## 'stm_stop_all_other_threads': LLOp(canmallocgc=True), @@ -449,9 +453,6 @@ ## 'stm_major_collect': LLOp(canmallocgc=True), ## 'stm_get_tid': LLOp(canfold=True), ## 'stm_ptr_eq': LLOp(canfold=True), -## 'stm_change_atomic': LLOp(), -## 'stm_get_atomic': LLOp(sideeffects=False), -## 'stm_perform_transaction':LLOp(canmallocgc=True), ## 'stm_abort_and_retry': LLOp(canmallocgc=True), ## 'stm_weakref_allocate': LLOp(sideeffects=False, canmallocgc=True), 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 @@ -171,6 +171,16 @@ return ('pypy_stm_perform_transaction((object_t *)%s, ' '(int(*)(object_t *, int))%s);' % (arg0, arg1)) +def stm_increment_atomic(funcgen, op): + return 'pypy_stm_increment_atomic();' + +def stm_decrement_atomic(funcgen, op): + return 'pypy_stm_decrement_atomic();' + +def stm_get_atomic(funcgen, op): + result = funcgen.expr(op.result) + return '%s = pypy_stm_get_atomic();' % (result,) + ##def stm_initialize(funcgen, op): ## return '''stm_initialize(); @@ -301,14 +311,6 @@ ## result = funcgen.expr(op.result) ## return '%s = ((struct rpyobj_s*)%s)->tid;' % (result, arg0) -##def stm_change_atomic(funcgen, op): -## arg0 = funcgen.expr(op.args[0]) -## return 'stm_atomic(%s);' % (arg0,) - -##def stm_get_atomic(funcgen, op): -## result = funcgen.expr(op.result) -## return '%s = stm_atomic(0);' % (result,) - ##def stm_enter_callback_call(funcgen, op): ## result = funcgen.expr(op.result) ## return '%s = stm_enter_callback_call();' % (result,) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit