... despite quite likely the gain being rather limited.
Signed-off-by: Jan Beulich
---
v4: Split off from earlier patch.
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -583,7 +583,8 @@ ENTRY(common_interrupt)
CR4_PV32_RESTORE
movq %rsp,%rdi
callq do_IRQ
-mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)
+ALTERNATIVE __stringify(mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)),
\
+"", X86_FEATURE_NO_XPTI
jmp ret_from_intr
ENTRY(page_fault)
@@ -665,7 +666,8 @@ handle_exception_saved:
PERFC_INCR(exceptions, %rax, %rbx)
mov (%rdx, %rax, 8), %rdx
INDIRECT_CALL %rdx
-mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)
+ALTERNATIVE __stringify(mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)),
\
+"", X86_FEATURE_NO_XPTI
testb $3,UREGS_cs(%rsp)
jzrestore_all_xen
leaq VCPU_trap_bounce(%rbx),%rdx
@@ -698,7 +700,8 @@ exception_with_ints_disabled:
rep; movsq # make room for ec/ev
1: movq UREGS_error_code(%rsp),%rax # ec/ev
movq %rax,UREGS_kernel_sizeof(%rsp)
-mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)
+ALTERNATIVE __stringify(mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)),
\
+"", X86_FEATURE_NO_XPTI
jmp restore_all_xen # return to fixup code
/* No special register assumptions. */
@@ -849,7 +852,8 @@ handle_ist_exception:
leaq exception_table(%rip),%rdx
mov (%rdx, %rax, 8), %rdx
INDIRECT_CALL %rdx
-mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)
+ALTERNATIVE __stringify(mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)),
\
+"", X86_FEATURE_NO_XPTI
cmpb $TRAP_nmi,UREGS_entry_vector(%rsp)
jne ret_from_intr
___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel