Patchwork [libitm] : A couple of trivial x86 changes

login
register
mail settings
Submitter Uros Bizjak
Date Oct. 2, 2012, 7:52 a.m.
Message ID <CAFULd4awF5TsgAQba3yDGvLOe+iee-qnHoOMVVmCQ5JDuC2uuQ@mail.gmail.com>
Download mbox | patch
Permalink /patch/188414/
State New
Headers show

Comments

Uros Bizjak - Oct. 2, 2012, 7:52 a.m.
Hello!

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.

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

Uros.

Patch

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