From owner-p4-projects@FreeBSD.ORG Tue Sep 27 18:38:53 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8B5F716A421; Tue, 27 Sep 2005 18:38:52 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4DD2616A41F for ; Tue, 27 Sep 2005 18:38:52 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AEA8D43D4C for ; Tue, 27 Sep 2005 18:38:51 +0000 (GMT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j8RIcpe2023870 for ; Tue, 27 Sep 2005 18:38:51 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8RIcpYm023867 for perforce@freebsd.org; Tue, 27 Sep 2005 18:38:51 GMT (envelope-from peter@freebsd.org) Date: Tue, 27 Sep 2005 18:38:51 GMT Message-Id: <200509271838.j8RIcpYm023867@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 84376 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Sep 2005 18:38:53 -0000 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 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;