socsvn commit: r225262 - in soc2011/xxp/xxp-head/lib: libc/amd64/gen libthr/arch/amd64/amd64

xxp at FreeBSD.org xxp at FreeBSD.org
Fri Aug 19 09:26:51 UTC 2011


Author: xxp
Date: Fri Aug 19 09:26:48 2011
New Revision: 225262
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=225262

Log:
  Review amd64.

Modified:
  soc2011/xxp/xxp-head/lib/libc/amd64/gen/rfork_thread.S
  soc2011/xxp/xxp-head/lib/libc/amd64/gen/setjmp.S
  soc2011/xxp/xxp-head/lib/libc/amd64/gen/sigsetjmp.S
  soc2011/xxp/xxp-head/lib/libthr/arch/amd64/amd64/_umtx_op_err.S

Modified: soc2011/xxp/xxp-head/lib/libc/amd64/gen/rfork_thread.S
==============================================================================
--- soc2011/xxp/xxp-head/lib/libc/amd64/gen/rfork_thread.S	Fri Aug 19 08:29:10 2011	(r225261)
+++ soc2011/xxp/xxp-head/lib/libc/amd64/gen/rfork_thread.S	Fri Aug 19 09:26:48 2011	(r225262)
@@ -47,10 +47,14 @@
 ENTRY(rfork_thread)
 	pushq	%rbx
 	cfi_adjust_cfa_offset(8)
+	cfi_rel_offset(%rbx, 0)
 	pushq	%r12
 	cfi_adjust_cfa_offset(8)
+	cfi_rel_offset(%r12, 0)
 	movq	%rdx, %rbx
+	cfi_register(%rdx, %rbx)
 	movq	%rcx, %r12
+	cfi_register(%rcx, %r12)
 
 	/*
 	 * Prepare and execute the thread creation syscall
@@ -66,8 +70,10 @@
 	jnz	1f
 	popq	%r12
 	cfi_adjust_cfa_offset(-8)
+	cfi_restore(%r12)
 	popq	%rbx
 	cfi_adjust_cfa_offset(-8)
+	cfi_restore(%rbx)
 	ret
 
 	/*
@@ -77,7 +83,9 @@
 	 */
 1:
 	movq	%rsi, %rsp
+	cfi_register(%rsi, %rsp)
 	movq	%r12, %rdi 
+	cfi_register(%r12, %rdi)
 	call	*%rbx
 	movl	%eax, %edi
 
@@ -97,8 +105,10 @@
 2:
 	popq	%r12
 	cfi_adjust_cfa_offset(-8)
+	cfi_restore(%r12)
 	popq	%rbx
 	cfi_adjust_cfa_offset(-8)
+	cfi_restore(%rbx)
 #ifdef PIC
 	movq	PIC_GOT(HIDENAME(cerror)), %rdx
 	jmp	*%rdx

Modified: soc2011/xxp/xxp-head/lib/libc/amd64/gen/setjmp.S
==============================================================================
--- soc2011/xxp/xxp-head/lib/libc/amd64/gen/setjmp.S	Fri Aug 19 08:29:10 2011	(r225261)
+++ soc2011/xxp/xxp-head/lib/libc/amd64/gen/setjmp.S	Fri Aug 19 09:26:48 2011	(r225262)
@@ -51,14 +51,18 @@
 ENTRY(setjmp)
 	pushq	%rdi
 	cfi_adjust_cfa_offset(8)
+	cfi_rel_offset(%rdi, 0)
 	movq	%rdi,%rcx
+	cfi_register(%rdi, %rcx)
 	movq	$1,%rdi			/* SIG_BLOCK       */
 	movq	$0,%rsi			/* (sigset_t*)set  */
 	leaq	72(%rcx),%rdx		/* 9,10; (sigset_t*)oset */
 	call	PIC_PLT(CNAME(_sigprocmask))
 	popq	%rdi
 	cfi_adjust_cfa_offset(-8)
+	cfi_restore(%rdi)
 	movq	%rdi,%rcx
+	cfi_register(%rdi, %rcx)
 	movq	0(%rsp),%rdx		/* retval */
 	movq	%rdx, 0(%rcx)		/* 0; retval */
 	movq	%rbx, 8(%rcx)		/* 1; rbx */

Modified: soc2011/xxp/xxp-head/lib/libc/amd64/gen/sigsetjmp.S
==============================================================================
--- soc2011/xxp/xxp-head/lib/libc/amd64/gen/sigsetjmp.S	Fri Aug 19 08:29:10 2011	(r225261)
+++ soc2011/xxp/xxp-head/lib/libc/amd64/gen/sigsetjmp.S	Fri Aug 19 09:26:48 2011	(r225262)
@@ -59,14 +59,18 @@
 	jz	2f
 	pushq	%rdi
 	cfi_adjust_cfa_offset(8)
+	cfi_rel_offset(%rdi, 0)
 	movq	%rdi,%rcx
+	cfi_register(%rdi, %rcx)
 	movq	$1,%rdi			/* SIG_BLOCK       */
 	movq	$0,%rsi			/* (sigset_t*)set  */
 	leaq	72(%rcx),%rdx		/* 9,10 (sigset_t*)oset */
 	call	PIC_PLT(CNAME(_sigprocmask))
 	popq	%rdi
 	cfi_adjust_cfa_offset(-8)
+	cfi_restore(%rdi)
 2:	movq	%rdi,%rcx
+	cfi_register(%rdi, %rcx)
 	movq	0(%rsp),%rdx		/* retval */
 	movq	%rdx, 0(%rcx)		/* 0; retval */
 	movq	%rbx, 8(%rcx)		/* 1; rbx */
@@ -87,20 +91,27 @@
 	cmpl	$0,88(%rdi)
 	jz	2f
 	movq	%rdi,%rdx
+	cfi_register(%rdi, %rdx)
 	pushq	%rdi
 	cfi_adjust_cfa_offset(8)
+	cfi_rel_offset(%rdi, 0)
 	pushq	%rsi
 	cfi_adjust_cfa_offset(8)
+	cfi_rel_offset(%rsi, 0)
 	movq	$3,%rdi			/* SIG_SETMASK     */
 	leaq	72(%rdx),%rsi		/* (sigset_t*)set  */
 	movq	$0,%rdx			/* (sigset_t*)oset */
 	call	PIC_PLT(CNAME(_sigprocmask))
 	popq	%rsi
 	cfi_adjust_cfa_offset(-8)
+	cfi_restore(%rsi)
 	popq	%rdi			/* jmpbuf */
 	cfi_adjust_cfa_offset(-8)
+	cfi_restore(%rdi)
 2:	movq	%rdi,%rdx
+	cfi_register(%rdi, %rdx)
 	movq	%rsi,%rax		/* retval */
+	cfi_register(%rsi, %rax)
 	movq	0(%rdx),%rcx
 	movq	8(%rdx),%rbx
 	movq	16(%rdx),%rsp

Modified: soc2011/xxp/xxp-head/lib/libthr/arch/amd64/amd64/_umtx_op_err.S
==============================================================================
--- soc2011/xxp/xxp-head/lib/libthr/arch/amd64/amd64/_umtx_op_err.S	Fri Aug 19 08:29:10 2011	(r225261)
+++ soc2011/xxp/xxp-head/lib/libthr/arch/amd64/amd64/_umtx_op_err.S	Fri Aug 19 09:26:48 2011	(r225262)
@@ -32,7 +32,7 @@
 #define	RSYSCALL_ERR(x)	ENTRY(__CONCAT(x, _err));		\
 			mov __CONCAT($SYS_,x),%rax; KERNCALL; ret; 
 
-#define KERNCALL	movq %rcx, %r10; syscall
+#define KERNCALL	movq %rcx, %r10; cfi_register(%rcx, %r10); syscall
 
 RSYSCALL_ERR(_umtx_op)
 


More information about the svn-soc-all mailing list