diff options
-rw-r--r-- | libitm/ChangeLog | 6 | ||||
-rw-r--r-- | libitm/config/x86/sjlj.S | 3 | ||||
-rw-r--r-- | libitm/config/x86/target.h | 8 |
3 files changed, 9 insertions, 8 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index ee148b5cdf6..d62247987ea 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -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> PR other/43620 diff --git a/libitm/config/x86/sjlj.S b/libitm/config/x86/sjlj.S index 884422882be..4d733f4c220 100644 --- a/libitm/config/x86/sjlj.S +++ b/libitm/config/x86/sjlj.S @@ -74,7 +74,6 @@ SYM(_ITM_beginTransaction): call SYM(GTM_begin_transaction) addq $56, %rsp cfi_def_cfa_offset(8) - ret #else leal 4(%esp), %ecx movl 4(%esp), %eax @@ -99,8 +98,8 @@ SYM(_ITM_beginTransaction): #endif addl $28, %esp cfi_def_cfa_offset(4) - ret #endif + ret cfi_endproc TYPE(_ITM_beginTransaction) diff --git a/libitm/config/x86/target.h b/libitm/config/x86/target.h index 73b6585ae70..74f4f92cfbc 100644 --- a/libitm/config/x86/target.h +++ b/libitm/config/x86/target.h @@ -24,11 +24,11 @@ namespace GTM HIDDEN { -#ifdef __x86_64__ /* ??? This doesn't work for Win64. */ typedef struct gtm_jmpbuf { void *cfa; +#ifdef __x86_64__ unsigned long long rbx; unsigned long long rbp; unsigned long long r12; @@ -36,18 +36,14 @@ typedef struct gtm_jmpbuf unsigned long long r14; unsigned long long r15; unsigned long long rip; -} gtm_jmpbuf; #else -typedef struct gtm_jmpbuf -{ - void *cfa; unsigned long ebx; unsigned long esi; unsigned long edi; unsigned long ebp; unsigned long eip; -} gtm_jmpbuf; #endif +} gtm_jmpbuf; /* x86 doesn't require strict alignment for the basic types. */ #define STRICT_ALIGNMENT 0 |