svn commit: r363329 - head/sys/amd64/amd64
Konstantin Belousov
kib at FreeBSD.org
Sun Jul 19 17:47:56 UTC 2020
Author: kib
Date: Sun Jul 19 17:47:55 2020
New Revision: 363329
URL: https://svnweb.freebsd.org/changeset/base/363329
Log:
Simplify non-pti syscall entry on amd64.
Limit manipulations to use %rax as scratch to the pti portion of the
syscall entry code.
Submitted by: alc
Reviewed by: markj
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D25722
Modified:
head/sys/amd64/amd64/exception.S
Modified: head/sys/amd64/amd64/exception.S
==============================================================================
--- head/sys/amd64/amd64/exception.S Sun Jul 19 17:27:48 2020 (r363328)
+++ head/sys/amd64/amd64/exception.S Sun Jul 19 17:47:55 2020 (r363329)
@@ -526,17 +526,17 @@ prot_addrf:
IDTVEC(fast_syscall_pti)
swapgs
lfence
- movq %rax,PCPU(SCRATCH_RAX)
cmpq $~0,PCPU(UCR3)
je fast_syscall_common
+ movq %rax,PCPU(SCRATCH_RAX)
movq PCPU(KCR3),%rax
movq %rax,%cr3
+ movq PCPU(SCRATCH_RAX),%rax
jmp fast_syscall_common
SUPERALIGN_TEXT
IDTVEC(fast_syscall)
swapgs
lfence
- movq %rax,PCPU(SCRATCH_RAX)
fast_syscall_common:
movq %rsp,PCPU(SCRATCH_RSP)
movq PCPU(RSP0),%rsp
@@ -547,7 +547,6 @@ fast_syscall_common:
movq %rcx,TF_RIP(%rsp) /* %rcx original value is in %r10 */
movq PCPU(SCRATCH_RSP),%r11 /* %r11 already saved */
movq %r11,TF_RSP(%rsp) /* user stack pointer */
- movq PCPU(SCRATCH_RAX),%rax
/*
* Save a few arg registers early to free them for use in
* handle_ibrs_entry(). %r10 is especially tricky. It is not an
More information about the svn-src-head
mailing list