PERFORCE change 84376 for review
Peter Wemm
peter at FreeBSD.org
Tue Sep 27 11:38:53 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=84376
Change 84376 by peter at 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;
More information about the p4-projects
mailing list