diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-30 22:29:33 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-30 22:29:33 +0000 |
commit | 0389984f5e1661a5cd9dc0f15dc55a9ff5a3b927 (patch) | |
tree | 9f60b09cc1447fb54c59835052aa947c7643e8ec /libitm/beginend.cc | |
parent | 2380e91ebcff9e62483029a65772f4f6bc431afb (diff) | |
download | gcc-0389984f5e1661a5cd9dc0f15dc55a9ff5a3b927.tar.gz |
Swap the action and jmpbuf arguments to GTM_longjmp
On several ABIs, the first register parameter is the same as
the return value register. Moving the action parameter first
avoids the need for register shuffling on these targets.
* libitm_i.h (GTM_longjmp): Swap first and second arguments.
* beginend.c (_ITM_abortTransaction): Update to match.
(GTM::gtm_thread::restart): Likewise.
* config/alpha/sjlj.S (GTM_longjmp): Likewise.
* config/x86/sjlj.S (GTM_longjmp): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181863 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libitm/beginend.cc')
-rw-r--r-- | libitm/beginend.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libitm/beginend.cc b/libitm/beginend.cc index a26697567a3..d8ef651236d 100644 --- a/libitm/beginend.cc +++ b/libitm/beginend.cc @@ -404,8 +404,8 @@ _ITM_abortTransaction (_ITM_abortReason reason) tx->rollback (cp, true); // Jump to nested transaction (use the saved jump buffer). - GTM_longjmp (&longjmp_jb, a_abortTransaction | a_restoreLiveVariables, - longjmp_prop); + GTM_longjmp (a_abortTransaction | a_restoreLiveVariables, + &longjmp_jb, longjmp_prop); } else { @@ -421,8 +421,8 @@ _ITM_abortTransaction (_ITM_abortReason reason) gtm_thread::serial_lock.read_unlock (tx); tx->state = 0; - GTM_longjmp (&tx->jb, a_abortTransaction | a_restoreLiveVariables, - tx->prop); + GTM_longjmp (a_abortTransaction | a_restoreLiveVariables, + &tx->jb, tx->prop); } } @@ -512,8 +512,8 @@ GTM::gtm_thread::restart (gtm_restart_reason r) disp = abi_disp(); } - GTM_longjmp (&jb, - choose_code_path(prop, disp) | a_restoreLiveVariables, prop); + GTM_longjmp (choose_code_path(prop, disp) | a_restoreLiveVariables, + &jb, prop); } void ITM_REGPARM |