From 72824d5e40692acaba4e7635b0b26f2e8e48b059 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 14 Feb 2012 11:46:46 -0800 Subject: [PATCH] * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections. From-SVN: r184227 --- libitm/ChangeLog | 4 ++++ libitm/config/x86/sjlj.S | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 23594d37498..3b54c8b7335 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,7 @@ +2012-02-14 Richard Henderson + + * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections. + 2012-02-14 Uros Bizjak * config/x86/target.h (GTM_longjmp): Correct .cfi directives. 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