Module Name:    src
Committed By:   maxv
Date:           Wed Mar 28 19:56:40 UTC 2018

Modified Files:
        src/sys/arch/amd64/amd64: locore.S

Log Message:
The call to svs_lwp_switch can clobber %rdi/%rsi, so restore them before
calling speculation_barrier.


To generate a diff of this commit:
cvs rdiff -u -r1.160 -r1.161 src/sys/arch/amd64/amd64/locore.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amd64/amd64/locore.S
diff -u src/sys/arch/amd64/amd64/locore.S:1.160 src/sys/arch/amd64/amd64/locore.S:1.161
--- src/sys/arch/amd64/amd64/locore.S:1.160	Wed Mar 28 16:02:49 2018
+++ src/sys/arch/amd64/amd64/locore.S	Wed Mar 28 19:56:40 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.160 2018/03/28 16:02:49 maxv Exp $	*/
+/*	$NetBSD: locore.S,v 1.161 2018/03/28 19:56:40 maxv Exp $	*/
 
 /*
  * Copyright-o-rama!
@@ -1096,6 +1096,10 @@ ENTRY(cpu_switchto)
 	callq	_C_LABEL(svs_lwp_switch)
 .Lskip_svs:
 	popq	%rdx
+
+	/* Restore rdi/rsi for speculation_barrier */
+	movq	%r13,%rdi
+	movq	%r12,%rsi
 #endif
 
 	pushq	%rdx

Reply via email to