mirror of git://gcc.gnu.org/git/gcc.git
target.h (struct gtm_jmpbuf): Merge x86_64 and ia32 declarations some more.
* config/x86/target.h (struct gtm_jmpbuf): Merge x86_64 and ia32 declarations some more. * config/x86/sjlj.S (_ITM_beginTransaction): Move ret to common code. From-SVN: r191955
This commit is contained in:
parent
c8ae7abfab
commit
0c609a2144
|
|
@ -1,3 +1,9 @@
|
||||||
|
2012-10-02 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
|
* config/x86/target.h (struct gtm_jmpbuf): Merge x86_64
|
||||||
|
and ia32 declarations some more.
|
||||||
|
* config/x86/sjlj.S (_ITM_beginTransaction): Move ret to common code.
|
||||||
|
|
||||||
2012-09-20 Jakub Jelinek <jakub@redhat.com>
|
2012-09-20 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR other/43620
|
PR other/43620
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,6 @@ SYM(_ITM_beginTransaction):
|
||||||
call SYM(GTM_begin_transaction)
|
call SYM(GTM_begin_transaction)
|
||||||
addq $56, %rsp
|
addq $56, %rsp
|
||||||
cfi_def_cfa_offset(8)
|
cfi_def_cfa_offset(8)
|
||||||
ret
|
|
||||||
#else
|
#else
|
||||||
leal 4(%esp), %ecx
|
leal 4(%esp), %ecx
|
||||||
movl 4(%esp), %eax
|
movl 4(%esp), %eax
|
||||||
|
|
@ -99,8 +98,8 @@ SYM(_ITM_beginTransaction):
|
||||||
#endif
|
#endif
|
||||||
addl $28, %esp
|
addl $28, %esp
|
||||||
cfi_def_cfa_offset(4)
|
cfi_def_cfa_offset(4)
|
||||||
ret
|
|
||||||
#endif
|
#endif
|
||||||
|
ret
|
||||||
cfi_endproc
|
cfi_endproc
|
||||||
|
|
||||||
TYPE(_ITM_beginTransaction)
|
TYPE(_ITM_beginTransaction)
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,11 @@
|
||||||
|
|
||||||
namespace GTM HIDDEN {
|
namespace GTM HIDDEN {
|
||||||
|
|
||||||
#ifdef __x86_64__
|
|
||||||
/* ??? This doesn't work for Win64. */
|
/* ??? This doesn't work for Win64. */
|
||||||
typedef struct gtm_jmpbuf
|
typedef struct gtm_jmpbuf
|
||||||
{
|
{
|
||||||
void *cfa;
|
void *cfa;
|
||||||
|
#ifdef __x86_64__
|
||||||
unsigned long long rbx;
|
unsigned long long rbx;
|
||||||
unsigned long long rbp;
|
unsigned long long rbp;
|
||||||
unsigned long long r12;
|
unsigned long long r12;
|
||||||
|
|
@ -36,18 +36,14 @@ typedef struct gtm_jmpbuf
|
||||||
unsigned long long r14;
|
unsigned long long r14;
|
||||||
unsigned long long r15;
|
unsigned long long r15;
|
||||||
unsigned long long rip;
|
unsigned long long rip;
|
||||||
} gtm_jmpbuf;
|
|
||||||
#else
|
#else
|
||||||
typedef struct gtm_jmpbuf
|
|
||||||
{
|
|
||||||
void *cfa;
|
|
||||||
unsigned long ebx;
|
unsigned long ebx;
|
||||||
unsigned long esi;
|
unsigned long esi;
|
||||||
unsigned long edi;
|
unsigned long edi;
|
||||||
unsigned long ebp;
|
unsigned long ebp;
|
||||||
unsigned long eip;
|
unsigned long eip;
|
||||||
} gtm_jmpbuf;
|
|
||||||
#endif
|
#endif
|
||||||
|
} gtm_jmpbuf;
|
||||||
|
|
||||||
/* x86 doesn't require strict alignment for the basic types. */
|
/* x86 doesn't require strict alignment for the basic types. */
|
||||||
#define STRICT_ALIGNMENT 0
|
#define STRICT_ALIGNMENT 0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue