svn commit: r345443 - stable/12/sys/amd64/amd64

Konstantin Belousov kib at FreeBSD.org
Sat Mar 23 10:37:27 UTC 2019


Author: kib
Date: Sat Mar 23 10:37:26 2019
New Revision: 345443
URL: https://svnweb.freebsd.org/changeset/base/345443

Log:
  MFC r345225:
  amd64: rewrite cpu_switch.S fragment to reload tss.rsp0 on context switch.

Modified:
  stable/12/sys/amd64/amd64/cpu_switch.S
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/amd64/amd64/cpu_switch.S
==============================================================================
--- stable/12/sys/amd64/amd64/cpu_switch.S	Sat Mar 23 10:13:01 2019	(r345442)
+++ stable/12/sys/amd64/amd64/cpu_switch.S	Sat Mar 23 10:37:26 2019	(r345443)
@@ -209,14 +209,11 @@ do_kthread:
 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)


More information about the svn-src-all mailing list