summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libitm/ChangeLog6
-rw-r--r--libitm/config/x86/sjlj.S3
-rw-r--r--libitm/config/x86/target.h8
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
OpenPOWER on IntegriCloud