Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Sep 2002 00:00:24 -0700 (PDT)
From:      Jonathan Mini <mini@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 17136 for review
Message-ID:  <200209060700.g8670Opb085074@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=17136

Change 17136 by mini@mini_stylus on 2002/09/05 23:59:53

	Remove unused complexity in {get,set}context().

Affected files ...

.. //depot/projects/kse/lib/libc/i386/gen/getcontext.S#7 edit

Differences ...

==== //depot/projects/kse/lib/libc/i386/gen/getcontext.S#7 (text+ko) ====

@@ -33,22 +33,10 @@
 #define	MC_SIZE			640	/* sizeof mcontext_t */
 #define	UC_MC_OFFSET		16	/* offset to mcontext from ucontext */
 #define	UC_MC_LEN_OFFSET	96	/* offset to mc_len from mcontext */
-#define	UC_FLAGS_OFFSET		676	/* offset to uc_flags from ucontext */
-#define	MC_FLAGS_OFFSET		660	/* offset to uc_flags from ucontext */
-#define	MC_BUSY_OFFSET		656	/* offset to uc_busy from ucontext */
 #define	MC_LEN_OFFSET		80	/* offset to mc_len from mcontext */
 #define	MC_FP_REGS_OFFSET	96	/* offset to FP regs from mcontext */
 #define	MC_FP_CW_OFFSET		96	/* offset to FP control word */
 #define	MC_OWNEDFP_OFFSET	88	/* offset to mc_ownedfp from mcontext */
-#define	UCF_SKIPSIGMASK	0x00000001	/* Don't set/restore signal mask. */
-#define	UCF_OBEYBUSY	0x00000002	/* Respect uc_busy marker. */
-#define	UCF_SWAPPED	0x00000080	/* Used by swapcontext(3). */
-#define	UCF_CRITICAL	0x00000200	/* In a critical section. */
-#define	UCF_CLEARSTATE	0x00000400	/* Clear UCF_STATE in setcontext. */
-#define	UCF_STATE	0x0000ff00	/* State-related flags. */
-#define	UCF_OPTIONS	0x000000ff	/* Behaviour-related flags. */
- 
- 
 
 /*
  * int setcontext(ucontext_t *ucp);
@@ -64,14 +52,12 @@
 	cmpl	$0, %eax		/* check for null pointer */
 	jne	1f
 	movl	$-1, %eax
-	jmp	8f
+	jmp	5f
 1:	cmpl	$MC_SIZE, UC_MC_LEN_OFFSET(%eax) /* is context valid? */
 	je	2f
 	movl	$-1, %eax		/* bzzzt, invalid context */
-	jmp	8f
-2:	testl $UCF_SKIPSIGMASK, UC_FLAGS_OFFSET(%eax)	/* Restore sigmask? */
-	jnz 3f
-	PIC_PROLOGUE
+	jmp	5f
+2:	PIC_PROLOGUE
 	pushl	$0			/* oset = NULL */
 	pushl	%eax			/* set = &ucp->uc_sigmask */
 	pushl	$3			/* how = SIG_SETMASK */
@@ -79,8 +65,8 @@
 	addl	$12, %esp
 	PIC_EPILOGUE
 	testl	%eax, %eax		/* check for error */
-	jnz	8f
-3:	movl	4(%esp), %edx		/* get address of context */
+	jnz	5f
+	movl	4(%esp), %edx		/* get address of context */
 	addl	$UC_MC_OFFSET, %edx	/* add offset to mcontext */
 	movl	4(%edx), %gs
 	movl	8(%edx), %fs
@@ -95,25 +81,19 @@
 	movl	60(%edx), %eax		/* put return address at top of stack */
 	movl	%eax, (%esp)
 	cmpl	$0, MC_OWNEDFP_OFFSET(%edx) /* are FP regs valid? */
-	jz	4f
+	jz	3f
 	frstor	MC_FP_REGS_OFFSET(%edx) /* restore FP regs */
-	jmp	5f
-4:	fninit
+	jmp	4f
+3:	fninit
 	fldcw	MC_FP_CW_OFFSET(%edx)
-5:	movl	48(%edx), %eax		/* restore ax, bx, cx */
+4:	movl	48(%edx), %eax		/* restore ax, bx, cx */
 	movl	36(%edx), %ebx
 	movl	44(%edx), %ecx
 	pushl	68(%edx)		/* flags on stack */
 	pushl	40(%edx)		/* %edx on stack  */
-	testl $UCF_CLEARSTATE, MC_FLAGS_OFFSET(%edx)	/* clear flag state? */
-	jz 6f
-	andl	$UCF_OPTIONS, MC_FLAGS_OFFSET(%edx)
-6:	testl $UCF_OBEYBUSY, MC_FLAGS_OFFSET(%edx)	/* set uc_busy? */
-	jz 7f
-	movl	$1, MC_BUSY_OFFSET(%edx)	/* set uc_busy */
-7:	popl	%edx			/* %edx off stack */
+	popl	%edx			/* %edx off stack */
 	popf				/* flags off stack */
-8:	ret
+5:	ret
 
 /*
  * int getcontext(ucontext_t *ucp);
@@ -129,10 +109,8 @@
 	cmpl	$0, %eax		/* check for null pointer */
 	jne	1f
 	movl	$-1, %eax
-	jmp	3f
-	movl	4(%esp), %eax		/* get address of context and sigset */
-1:	testl $UCF_SKIPSIGMASK, UC_FLAGS_OFFSET(%eax)	/* Save sigmask? */
-	jnz 2f
+	jmp	2f
+1:	movl	4(%esp), %eax		/* get address of context and sigset */
 	PIC_PROLOGUE
 	pushl	%eax			/* oset = &ucp->uc_sigmask */
 	pushl	$0			/* set = NULL */
@@ -141,8 +119,8 @@
 	addl	$12, %esp
 	PIC_EPILOGUE
 	testl	%eax, %eax		/* check for error */
-	jnz	3f
-2:	pushl	%edx			/* save value of edx */
+	jnz	2f
+	pushl	%edx			/* save value of edx */
 	movl	8(%esp), %edx		/* get address of context */
 	addl	$UC_MC_OFFSET, %edx	/* add offset to mcontext */
 	movl	%gs, 4(%edx)
@@ -178,4 +156,4 @@
 	movl	$MC_SIZE, MC_LEN_OFFSET(%edx) /* context is now valid */
 	movl	40(%edx), %edx		/* restore edx -- is this needed? */
 	xorl	%eax, %eax		/* return 0 */
-3:	ret
+2:	ret

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200209060700.g8670Opb085074>