mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
Revert the previous change I made to cpu_switch. It doesn't help as
much as I thought it would and according to bde was a pessimization.
This commit is contained in:
parent
894fbb6682
commit
1b00f92039
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=69779
@ -103,7 +103,8 @@ ENTRY(cpu_switch)
|
||||
|
||||
movl P_ADDR(%ecx),%edx
|
||||
|
||||
popl PCB_EIP(%edx) /* Hardware registers */
|
||||
movl (%esp),%eax /* Hardware registers */
|
||||
movl %eax,PCB_EIP(%edx)
|
||||
movl %ebx,PCB_EBX(%edx)
|
||||
movl %esp,PCB_ESP(%edx)
|
||||
movl %ebp,PCB_EBP(%edx)
|
||||
@ -253,7 +254,8 @@ sw1b:
|
||||
movl PCB_EBP(%edx),%ebp
|
||||
movl PCB_ESI(%edx),%esi
|
||||
movl PCB_EDI(%edx),%edi
|
||||
pushl PCB_EIP(%edx)
|
||||
movl PCB_EIP(%edx),%eax
|
||||
movl %eax,(%esp)
|
||||
|
||||
#ifdef SMP
|
||||
#ifdef GRAB_LOPRIO /* hold LOPRIO for INTs */
|
||||
|
@ -103,7 +103,8 @@ ENTRY(cpu_switch)
|
||||
|
||||
movl P_ADDR(%ecx),%edx
|
||||
|
||||
popl PCB_EIP(%edx) /* Hardware registers */
|
||||
movl (%esp),%eax /* Hardware registers */
|
||||
movl %eax,PCB_EIP(%edx)
|
||||
movl %ebx,PCB_EBX(%edx)
|
||||
movl %esp,PCB_ESP(%edx)
|
||||
movl %ebp,PCB_EBP(%edx)
|
||||
@ -253,7 +254,8 @@ sw1b:
|
||||
movl PCB_EBP(%edx),%ebp
|
||||
movl PCB_ESI(%edx),%esi
|
||||
movl PCB_EDI(%edx),%edi
|
||||
pushl PCB_EIP(%edx)
|
||||
movl PCB_EIP(%edx),%eax
|
||||
movl %eax,(%esp)
|
||||
|
||||
#ifdef SMP
|
||||
#ifdef GRAB_LOPRIO /* hold LOPRIO for INTs */
|
||||
|
@ -168,7 +168,7 @@ cpu_fork(p1, p2, flags)
|
||||
pcb2->pcb_edi = 0;
|
||||
pcb2->pcb_esi = (int)fork_return; /* fork_trampoline argument */
|
||||
pcb2->pcb_ebp = 0;
|
||||
pcb2->pcb_esp = (int)p2->p_md.md_regs;
|
||||
pcb2->pcb_esp = (int)p2->p_md.md_regs - sizeof(void *);
|
||||
pcb2->pcb_ebx = (int)p2; /* fork_trampoline argument */
|
||||
pcb2->pcb_eip = (int)fork_trampoline;
|
||||
/*
|
||||
|
@ -103,7 +103,8 @@ ENTRY(cpu_switch)
|
||||
|
||||
movl P_ADDR(%ecx),%edx
|
||||
|
||||
popl PCB_EIP(%edx) /* Hardware registers */
|
||||
movl (%esp),%eax /* Hardware registers */
|
||||
movl %eax,PCB_EIP(%edx)
|
||||
movl %ebx,PCB_EBX(%edx)
|
||||
movl %esp,PCB_ESP(%edx)
|
||||
movl %ebp,PCB_EBP(%edx)
|
||||
@ -253,7 +254,8 @@ sw1b:
|
||||
movl PCB_EBP(%edx),%ebp
|
||||
movl PCB_ESI(%edx),%esi
|
||||
movl PCB_EDI(%edx),%edi
|
||||
pushl PCB_EIP(%edx)
|
||||
movl PCB_EIP(%edx),%eax
|
||||
movl %eax,(%esp)
|
||||
|
||||
#ifdef SMP
|
||||
#ifdef GRAB_LOPRIO /* hold LOPRIO for INTs */
|
||||
|
@ -168,7 +168,7 @@ cpu_fork(p1, p2, flags)
|
||||
pcb2->pcb_edi = 0;
|
||||
pcb2->pcb_esi = (int)fork_return; /* fork_trampoline argument */
|
||||
pcb2->pcb_ebp = 0;
|
||||
pcb2->pcb_esp = (int)p2->p_md.md_regs;
|
||||
pcb2->pcb_esp = (int)p2->p_md.md_regs - sizeof(void *);
|
||||
pcb2->pcb_ebx = (int)p2; /* fork_trampoline argument */
|
||||
pcb2->pcb_eip = (int)fork_trampoline;
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user