Page MenuHomeFreeBSD

D19514.diff
No OneTemporary

D19514.diff

Index: head/sys/amd64/amd64/cpu_switch.S
===================================================================
--- head/sys/amd64/amd64/cpu_switch.S
+++ head/sys/amd64/amd64/cpu_switch.S
@@ -209,14 +209,11 @@
done_tss:
movq %r8,PCPU(RSP0)
movq %r8,PCPU(CURPCB)
- /* Update the TSS_RSP0 pointer for the next interrupt */
- cmpq $~0,PCPU(UCR3)
- je 1f
movq PCPU(PTI_RSP0),%rax
+ cmpq $~0,PCPU(UCR3)
+ cmove %r8,%rax
movq %rax,TSS_RSP0(%rdx)
- jmp 2f
-1: movq %r8,TSS_RSP0(%rdx)
-2: movq %r12,PCPU(CURTHREAD) /* into next thread */
+ movq %r12,PCPU(CURTHREAD) /* into next thread */
/* Test if debug registers should be restored. */
testl $PCB_DBREGS,PCB_FLAGS(%r8)

File Metadata

Mime Type
text/plain
Expires
Fri, Dec 20, 11:15 PM (17 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15536319
Default Alt Text
D19514.diff (678 B)

Event Timeline