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/libitm_i.h | |
parent | 2380e91ebcff9e62483029a65772f4f6bc431afb (diff) |
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/libitm_i.h')
-rw-r--r-- | libitm/libitm_i.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libitm/libitm_i.h b/libitm/libitm_i.h index ba1afb4710c8..ff6884e88051 100644 --- a/libitm/libitm_i.h +++ b/libitm/libitm_i.h @@ -285,7 +285,7 @@ namespace GTM HIDDEN { // are used. extern uint64_t gtm_spin_count_var; -extern "C" uint32_t GTM_longjmp (const gtm_jmpbuf *, uint32_t, uint32_t) +extern "C" uint32_t GTM_longjmp (uint32_t, const gtm_jmpbuf *, uint32_t) ITM_NORETURN ITM_REGPARM; extern "C" void GTM_LB (const void *, size_t) ITM_REGPARM; |