... despite quite likely the gain being rather limited. Signed-off-by: Jan Beulich <jbeul...@suse.com> --- 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) jz restore_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