Index: ChangeLog
===================================================================
--- ChangeLog	(revision 184197)
+++ ChangeLog	(working copy)
@@ -1,3 +1,7 @@
+2012-02-15  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/x86/target.h (GTM_longjmp): Jump indirect from memory address.
+
 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* configure.tgt (target_cpu): Handle sparc and sparc64 & sparcv9.
Index: config/x86/sjlj.S
===================================================================
--- config/x86/sjlj.S	(revision 184150)
+++ config/x86/sjlj.S	(working copy)
@@ -119,23 +119,21 @@
 	movq	32(%rsi), %r13
 	movq	40(%rsi), %r14
 	movq	48(%rsi), %r15
-	movq	56(%rsi), %rdx
 	movl	%edi, %eax
+	cfi_offset(%rip, 56)
 	cfi_def_cfa(%rcx, 0)
-	cfi_register(%rip, %rdx)
 	movq	%rcx, %rsp
-	jmp	*%rdx
+	jmp	*56(%rsi)
 #else
 	movl	(%edx), %ecx
 	movl	4(%edx), %ebx
 	movl	8(%edx), %esi
 	movl	12(%edx), %edi
 	movl	16(%edx), %ebp
-	movl	20(%edx), %edx
+	cfi_offset(%eip, 20)
 	cfi_def_cfa(%ecx, 0)
-	cfi_register(%eip, %edx)
 	movl	%ecx, %esp
-	jmp	*%edx
+	jmp	*20(%edx)
 #endif
 	cfi_endproc
 
