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