Hello!

2012-10-02  Uros Bizjak  <ubiz...@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.

Tested on x86_64-pc-linux-gnu, committed to mainline SVN.

Uros.
Index: config/x86/sjlj.S
===================================================================
--- config/x86/sjlj.S   (revision 191953)
+++ config/x86/sjlj.S   (working copy)
@@ -74,7 +74,6 @@
        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 @@
 #endif
        addl    $28, %esp
        cfi_def_cfa_offset(4)
-       ret
 #endif
+       ret
        cfi_endproc
 
        TYPE(_ITM_beginTransaction)
Index: config/x86/target.h
===================================================================
--- config/x86/target.h (revision 191953)
+++ config/x86/target.h (working copy)
@@ -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 @@
   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

Reply via email to