summaryrefslogtreecommitdiff
path: root/libitm/config
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2012-02-14 19:46:46 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2012-02-14 19:46:46 +0000
commit0eb0282b973e0f9235df1098b6b9259bc4bf2809 (patch)
tree4f6366712bdd6cf290de07bf8aa4a23dbcf875d3 /libitm/config
parent65d3bb170fd1dff98a980a1771a2f67d313a513d (diff)
downloadgcc-0eb0282b973e0f9235df1098b6b9259bc4bf2809.tar.gz
* config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184227 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libitm/config')
-rw-r--r--libitm/config/x86/sjlj.S10
1 files changed, 5 insertions, 5 deletions
diff --git a/libitm/config/x86/sjlj.S b/libitm/config/x86/sjlj.S
index 554ec984d46..884422882be 100644
--- a/libitm/config/x86/sjlj.S
+++ b/libitm/config/x86/sjlj.S
@@ -112,7 +112,6 @@ SYM(_ITM_beginTransaction):
SYM(GTM_longjmp):
cfi_startproc
#ifdef __x86_64__
- cfi_def_cfa(%rsi, 0)
movq (%rsi), %rcx
movq 8(%rsi), %rbx
movq 16(%rsi), %rbp
@@ -120,21 +119,22 @@ SYM(GTM_longjmp):
movq 32(%rsi), %r13
movq 40(%rsi), %r14
movq 48(%rsi), %r15
- cfi_offset(%rip, 56)
movl %edi, %eax
- movq %rcx, %rsp
+ cfi_def_cfa(%rsi, 0)
+ cfi_offset(%rip, 56)
cfi_register(%rsp, %rcx)
+ movq %rcx, %rsp
jmp *56(%rsi)
#else
- cfi_def_cfa(%edx, 0)
movl (%edx), %ecx
movl 4(%edx), %ebx
movl 8(%edx), %esi
movl 12(%edx), %edi
movl 16(%edx), %ebp
+ cfi_def_cfa(%edx, 0)
cfi_offset(%eip, 20)
- movl %ecx, %esp
cfi_register(%esp, %ecx)
+ movl %ecx, %esp
jmp *20(%edx)
#endif
cfi_endproc