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>