mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 19:03:59 +08:00
target.h (gtm_jmpbuf): Move rip to the end of structure.
* config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to the end of structure. * config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update offset values. Do not copy return address. Decrement stack by 56 bytes only. (GTM_longjump) [__x86_64__]: Update offset values. From-SVN: r183467
This commit is contained in:
parent
a023688237
commit
9848887afa
@ -1,3 +1,12 @@
|
||||
2012-01-24 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to the
|
||||
end of structure.
|
||||
* config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update
|
||||
offset values. Do not copy return address. Decrement stack
|
||||
by 56 bytes only.
|
||||
(GTM_longjump) [__x86_64__]: Update offset values.
|
||||
|
||||
2012-01-23 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR libitm/51830
|
||||
|
@ -61,20 +61,18 @@ SYM(_ITM_beginTransaction):
|
||||
cfi_startproc
|
||||
#ifdef __x86_64__
|
||||
leaq 8(%rsp), %rax
|
||||
movq (%rsp), %r8
|
||||
subq $72, %rsp
|
||||
cfi_def_cfa_offset(80)
|
||||
subq $56, %rsp
|
||||
cfi_def_cfa_offset(64)
|
||||
movq %rax, (%rsp)
|
||||
movq %r8, 8(%rsp)
|
||||
movq %rbx, 16(%rsp)
|
||||
movq %rbp, 24(%rsp)
|
||||
movq %r12, 32(%rsp)
|
||||
movq %r13, 40(%rsp)
|
||||
movq %r14, 48(%rsp)
|
||||
movq %r15, 56(%rsp)
|
||||
movq %rbx, 8(%rsp)
|
||||
movq %rbp, 16(%rsp)
|
||||
movq %r12, 24(%rsp)
|
||||
movq %r13, 32(%rsp)
|
||||
movq %r14, 40(%rsp)
|
||||
movq %r15, 48(%rsp)
|
||||
movq %rsp, %rsi
|
||||
call SYM(GTM_begin_transaction)
|
||||
addq $72, %rsp
|
||||
addq $56, %rsp
|
||||
cfi_def_cfa_offset(8)
|
||||
ret
|
||||
#else
|
||||
@ -115,13 +113,13 @@ SYM(GTM_longjmp):
|
||||
cfi_startproc
|
||||
#ifdef __x86_64__
|
||||
movq (%rsi), %rcx
|
||||
movq 8(%rsi), %rdx
|
||||
movq 16(%rsi), %rbx
|
||||
movq 24(%rsi), %rbp
|
||||
movq 32(%rsi), %r12
|
||||
movq 40(%rsi), %r13
|
||||
movq 48(%rsi), %r14
|
||||
movq 56(%rsi), %r15
|
||||
movq 8(%rsi), %rbx
|
||||
movq 16(%rsi), %rbp
|
||||
movq 24(%rsi), %r12
|
||||
movq 32(%rsi), %r13
|
||||
movq 40(%rsi), %r14
|
||||
movq 48(%rsi), %r15
|
||||
movq 56(%rsi), %rdx
|
||||
movl %edi, %eax
|
||||
cfi_def_cfa(%rcx, 0)
|
||||
cfi_register(%rip, %rdx)
|
||||
|
@ -29,13 +29,13 @@ namespace GTM HIDDEN {
|
||||
typedef struct gtm_jmpbuf
|
||||
{
|
||||
void *cfa;
|
||||
unsigned long rip;
|
||||
unsigned long rbx;
|
||||
unsigned long rbp;
|
||||
unsigned long r12;
|
||||
unsigned long r13;
|
||||
unsigned long r14;
|
||||
unsigned long r15;
|
||||
unsigned long rip;
|
||||
} gtm_jmpbuf;
|
||||
#else
|
||||
typedef struct gtm_jmpbuf
|
||||
|
Loading…
Reference in New Issue
Block a user