mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
x86/entry: replace two GET_CURRENT() uses
Now that we have %r14 set up using GET_STACK_END() in a number of places, in two places we can eliminate the redundancy of GET_CURRENT() also invoking that macro. In handle_ist_exception() actually go a step farther and avoid using %rbx altogether when retrieving the processor ID: Obtain the current vCPU pointer only in the PV32-specific code actually needing it. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
1 parent
f575f05524
commit
e047b8d0fa
2 files changed
+4
-3
No files matched your search
@@ -118,6 +118,7 @@ void __dummy__(void)
|
||||
#endif
|
||||
|
||||
OFFSET(CPUINFO_guest_cpu_user_regs, struct cpu_info, guest_cpu_user_regs);
|
||||
OFFSET(CPUINFO_processor_id, struct cpu_info, processor_id);
|
||||
OFFSET(CPUINFO_verw_sel, struct cpu_info, verw_sel);
|
||||
OFFSET(CPUINFO_current_vcpu, struct cpu_info, current_vcpu);
|
||||
OFFSET(CPUINFO_per_cpu_offset, struct cpu_info, per_cpu_offset);
|
||||
|
||||
@@ -749,7 +749,7 @@ FUNC(handle_exception, 0)
|
||||
.Lxcpt_cr3_okay:
|
||||
|
||||
handle_exception_saved:
|
||||
GET_CURRENT(bx)
|
||||
mov STACK_CPUINFO_FIELD(current_vcpu)(%r14), %rbx
|
||||
testb $X86_EFLAGS_IF>>8,UREGS_eflags+1(%rsp)
|
||||
jz exception_with_ints_disabled
|
||||
|
||||
@@ -1130,9 +1130,8 @@ FUNC(handle_ist_exception)
|
||||
#ifdef CONFIG_PV
|
||||
testb $3,UREGS_cs(%rsp)
|
||||
jz restore_all_xen
|
||||
GET_CURRENT(bx)
|
||||
/* Send an IPI to ourselves to cover for the lack of event checking. */
|
||||
movl VCPU_processor(%rbx),%eax
|
||||
mov STACK_CPUINFO_FIELD(processor_id)(%r14), %eax
|
||||
shll $IRQSTAT_shift,%eax
|
||||
leaq irq_stat+IRQSTAT_softirq_pending(%rip),%rcx
|
||||
cmpl $0,(%rcx,%rax,1)
|
||||
@@ -1141,6 +1140,7 @@ FUNC(handle_ist_exception)
|
||||
call send_IPI_self
|
||||
1:
|
||||
#ifdef CONFIG_PV32
|
||||
mov STACK_CPUINFO_FIELD(current_vcpu)(%r14), %rbx
|
||||
movq VCPU_domain(%rbx),%rax
|
||||
cmpb $0,DOMAIN_is_32bit_pv(%rax)
|
||||
je restore_all_guest
|
||||
|
||||