* config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
authorRichard Henderson <rth@redhat.com>
Tue, 14 Feb 2012 19:46:46 +0000 (11:46 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 14 Feb 2012 19:46:46 +0000 (11:46 -0800)
From-SVN: r184227

libitm/ChangeLog
libitm/config/x86/sjlj.S

index 23594d37498491a147de248a215726d856bfc8f4..3b54c8b7335b6f3e4e4e45a433b5dfd8e4066cdf 100644 (file)
@@ -1,3 +1,7 @@
+2012-02-14  Richard Henderson  <rth@redhat.com>
+
+       * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.
+
 2012-02-14  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/x86/target.h (GTM_longjmp): Correct .cfi directives.
index 554ec984d461a6ee207caefe1203bf4edf3acf2a..884422882beee02e5319e9add7a4eefb85595668 100644 (file)
@@ -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