diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-02-14 07:50:38 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-02-14 07:50:38 +0000 |
commit | f4858af8ace52c7400e47d171319f61cfae61105 (patch) | |
tree | 529977eb49b5177417a3feddd087a94813367eae /libitm | |
parent | 0ead4a40258234c098fdd1a50b35713d90804490 (diff) | |
download | gcc-f4858af8ace52c7400e47d171319f61cfae61105.tar.gz |
* config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184198 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libitm')
-rw-r--r-- | libitm/ChangeLog | 4 | ||||
-rw-r--r-- | libitm/config/x86/sjlj.S | 10 |
2 files changed, 8 insertions, 6 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index ad8e3d73a8f..6e24888b710 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,7 @@ +2012-02-15 Uros Bizjak <ubizjak@gmail.com> + + * config/x86/target.h (GTM_longjmp): Jump indirect from memory address. + 2012-02-13 Eric Botcazou <ebotcazou@adacore.com> * configure.tgt (target_cpu): Handle sparc and sparc64 & sparcv9. diff --git a/libitm/config/x86/sjlj.S b/libitm/config/x86/sjlj.S index 0571a4ab658..9a74d97f76f 100644 --- a/libitm/config/x86/sjlj.S +++ b/libitm/config/x86/sjlj.S @@ -119,23 +119,21 @@ SYM(GTM_longjmp): movq 32(%rsi), %r13 movq 40(%rsi), %r14 movq 48(%rsi), %r15 - movq 56(%rsi), %rdx movl %edi, %eax + cfi_offset(%rip, 56) cfi_def_cfa(%rcx, 0) - cfi_register(%rip, %rdx) movq %rcx, %rsp - jmp *%rdx + jmp *56(%rsi) #else movl (%edx), %ecx movl 4(%edx), %ebx movl 8(%edx), %esi movl 12(%edx), %edi movl 16(%edx), %ebp - movl 20(%edx), %edx + cfi_offset(%eip, 20) cfi_def_cfa(%ecx, 0) - cfi_register(%eip, %edx) movl %ecx, %esp - jmp *%edx + jmp *20(%edx) #endif cfi_endproc |