Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Sep 2005 18:38:51 GMT
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 84376 for review
Message-ID:  <200509271838.j8RIcpYm023867@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=84376

Change 84376 by peter@peter_daintree on 2005/09/27 18:37:59

	Kill pcb_rflags.
	Kill pcb_padxxx - it had better be fixed by now.  If not, now
	is the time to fix the stack underflow I couldn't find before.

Affected files ...

.. //depot/projects/hammer/sys/amd64/amd64/cpu_switch.S#33 edit
.. //depot/projects/hammer/sys/amd64/amd64/gdb_machdep.c#11 edit
.. //depot/projects/hammer/sys/amd64/amd64/genassym.c#40 edit
.. //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#80 edit
.. //depot/projects/hammer/sys/amd64/include/pcb.h#23 edit

Differences ...

==== //depot/projects/hammer/sys/amd64/amd64/cpu_switch.S#33 (text+ko) ====

@@ -100,8 +100,6 @@
 	movq	%r13,PCB_R13(%r8)
 	movq	%r14,PCB_R14(%r8)
 	movq	%r15,PCB_R15(%r8)
-	pushfq					/* PSL */
-	popq	PCB_RFLAGS(%r8)
 
 	testl	$PCB_32BIT,PCB_FLAGS(%r8)
 	jz	1f				/* no, skip over */
@@ -233,8 +231,6 @@
 	movq	PCB_R15(%r8),%r15
 	movq	PCB_RIP(%r8),%rax
 	movq	%rax,(%rsp)
-	pushq	PCB_RFLAGS(%r8)
-	popfq
 
 	movq	%r8, PCPU(CURPCB)
 	movq	%rsi, PCPU(CURTHREAD)		/* into next thread */
@@ -284,8 +280,6 @@
 	movq	%r13,PCB_R13(%rcx)
 	movq	%r14,PCB_R14(%rcx)
 	movq	%r15,PCB_R15(%rcx)
-	pushfq
-	popq	PCB_RFLAGS(%rcx)
 
 	/*
 	 * If fpcurthread == NULL, then the fpu h/w state is irrelevant and the

==== //depot/projects/hammer/sys/amd64/amd64/gdb_machdep.c#11 (text+ko) ====

@@ -75,7 +75,6 @@
 	case 14: return (&kdb_thrctx->pcb_r14);
 	case 15: return (&kdb_thrctx->pcb_r15);
 	case 16: return (&kdb_thrctx->pcb_rip);
-	case 17: return (&kdb_thrctx->pcb_rflags);
 	}
 	return (NULL);
 }

==== //depot/projects/hammer/sys/amd64/amd64/genassym.c#40 (text+ko) ====

@@ -121,7 +121,6 @@
 ASSYM(PCB_RSP, offsetof(struct pcb, pcb_rsp));
 ASSYM(PCB_RBX, offsetof(struct pcb, pcb_rbx));
 ASSYM(PCB_RIP, offsetof(struct pcb, pcb_rip));
-ASSYM(PCB_RFLAGS, offsetof(struct pcb, pcb_rflags));
 ASSYM(PCB_FSBASE, offsetof(struct pcb, pcb_fsbase));
 ASSYM(PCB_GSBASE, offsetof(struct pcb, pcb_gsbase));
 ASSYM(PCB_DS, offsetof(struct pcb, pcb_ds));

==== //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#80 (text+ko) ====

@@ -155,7 +155,6 @@
 	pcb2->pcb_rsp = (register_t)td2->td_frame - sizeof(void *);
 	pcb2->pcb_rbx = (register_t)td2;		/* fork_trampoline argument */
 	pcb2->pcb_rip = (register_t)fork_trampoline;
-	pcb2->pcb_rflags = td2->td_frame->tf_rflags & ~PSL_I; /* ints disabled */
 	/*-
 	 * pcb2->pcb_dr*:	cloned above.
 	 * pcb2->pcb_savefpu:	cloned above.
@@ -290,12 +289,10 @@
 	pcb2->pcb_rsp = (register_t)td->td_frame - sizeof(void *);	/* trampoline arg */
 	pcb2->pcb_rbx = (register_t)td;			    /* trampoline arg */
 	pcb2->pcb_rip = (register_t)fork_trampoline;
-	pcb2->pcb_rflags = PSL_KERNEL; /* ints disabled */
 	/*
 	 * If we didn't copy the pcb, we'd need to do the following registers:
 	 * pcb2->pcb_dr*:	cloned above.
 	 * pcb2->pcb_savefpu:	cloned above.
-	 * pcb2->pcb_rflags:	cloned above.
 	 * pcb2->pcb_onfault:	cloned above (always NULL here?).
 	 * pcb2->pcb_[fg]sbase: cloned above
 	 */

==== //depot/projects/hammer/sys/amd64/include/pcb.h#23 (text+ko) ====

@@ -43,7 +43,6 @@
 #include <machine/fpu.h>
 
 struct pcb {
-	register_t	padxx[8];
 	register_t	pcb_cr3;
 	register_t	pcb_r15;
 	register_t	pcb_r14;
@@ -53,7 +52,6 @@
 	register_t	pcb_rsp;
 	register_t	pcb_rbx;
 	register_t	pcb_rip;
-	register_t	pcb_rflags;
 	register_t	pcb_fsbase;
 	register_t	pcb_gsbase;
 	u_int32_t	pcb_ds;



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