summaryrefslogtreecommitdiff
path: root/libitm/beginend.cc
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-30 22:29:33 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-30 22:29:33 +0000
commit0389984f5e1661a5cd9dc0f15dc55a9ff5a3b927 (patch)
tree9f60b09cc1447fb54c59835052aa947c7643e8ec /libitm/beginend.cc
parent2380e91ebcff9e62483029a65772f4f6bc431afb (diff)
downloadgcc-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.cc12
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