From 062f93f255e4b793edb00849336bf6c4e8239b6e Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 30 Nov 2011 14:29:33 -0800 Subject: 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. From-SVN: r181863 --- libitm/libitm_i.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libitm/libitm_i.h') diff --git a/libitm/libitm_i.h b/libitm/libitm_i.h index ba1afb4..ff6884e 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; -- cgit v1.1