OSDN Git Service

libitm: Filter out undo writes that overlap with the libitm stack.
authortorvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Jan 2012 23:45:06 +0000 (23:45 +0000)
committertorvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Jan 2012 23:45:06 +0000 (23:45 +0000)
commit16cd83025fa0a794e4beec3647be492f08fe2d72
tree8ed0df69ae3d1543fa4811e7cb7e72a8d99333b5
parentad76fe700e7812977c64513fd552a701571b3e3f
libitm: Filter out undo writes that overlap with the libitm stack.

PR libitm/51855
* config/generic/tls.h (GTM::mask_stack_top): New.
(GTM::mask_stack_bottom): Declare.
* config/generic/tls.c (GTM::mask_stack_bottom): New.
* local.cc (gtm_undolog::rollback): Filter out any updates that
overlap the libitm stack.  Add current transaction as parameter.
* libitm_i.h (GTM::gtm_undolog::rollback): Adapt.
* beginend.cc (GTM::gtm_thread::rollback): Adapt.
* testsuite/libitm.c/stackundo.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183172 138bc75d-0d04-0410-961f-82ee72b054a4
libitm/ChangeLog
libitm/beginend.cc
libitm/config/generic/tls.cc
libitm/config/generic/tls.h
libitm/libitm_i.h
libitm/local.cc
libitm/testsuite/libitm.c/stackundo.c [new file with mode: 0644]