target.h (GTM_longjmp): Jump indirect from memory address.

* config/x86/target.h (GTM_longjmp): Jump indirect from memory address.

From-SVN: r184198
This commit is contained in:
Uros Bizjak 2012-02-14 08:50:38 +01:00 committed by Uros Bizjak
parent 1982a38354
commit d4a698d494
2 changed files with 8 additions and 6 deletions

View File

@ -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.

View File

@ -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