[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50575db8-efb8-2d56-5dd9-fe4318db2af3@redhat.com>
Date: Tue, 21 Feb 2023 08:45:56 +0100
From: Paolo Bonzini <pbonzini@...hat.com>
To: Tianrui Zhao <zhaotianrui@...ngson.cn>
Cc: Huacai Chen <chenhuacai@...nel.org>,
WANG Xuerui <kernel@...0n.name>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
loongarch@...ts.linux.dev, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org, Jens Axboe <axboe@...nel.dk>,
Mark Brown <broonie@...nel.org>,
Alex Deucher <alexander.deucher@....com>,
Oliver Upton <oliver.upton@...ux.dev>, maobibo@...ngson.cn
Subject: Re: [PATCH v2 27/29] LoongArch: KVM: Implement vcpu world switch
On 2/20/23 07:57, Tianrui Zhao wrote:
> + /* Load Guest gprs */
> + ld.d $r1, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 1)
> + ld.d $r2, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 2)
> + ld.d $r3, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 3)
> + ld.d $r4, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 4)
> + ld.d $r5, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 5)
> + ld.d $r7, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 7)
> + ld.d $r8, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 8)
> + ld.d $r9, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 9)
> + ld.d $r10, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 10)
> + ld.d $r11, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 11)
> + ld.d $r12, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 12)
> + ld.d $r13, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 13)
> + ld.d $r14, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 14)
> + ld.d $r15, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 15)
> + ld.d $r16, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 16)
> + ld.d $r17, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 17)
> + ld.d $r18, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 18)
> + ld.d $r19, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 19)
> + ld.d $r20, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 20)
> + ld.d $r21, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 21)
> + ld.d $r22, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 22)
> + ld.d $r23, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 23)
> + ld.d $r24, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 24)
> + ld.d $r25, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 25)
> + ld.d $r26, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 26)
> + ld.d $r27, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 27)
> + ld.d $r28, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 28)
> + ld.d $r29, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 29)
> + ld.d $r30, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 30)
> + ld.d $r31, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * 31)
> + /* Load KVM_ARCH register */
> + ld.d \KVM_ARCH, \KVM_ARCH, (KVM_ARCH_GGPR + 8 * \GPRNUM)
This in practice relies on KVM_ARCH being a2 so please remove the
KVM_ARCH and GPRNUM arguments from the macro; just replace \KVM_ARCH
with a2 as needed.
Also, in these ld.d and st.d sequences you may want to use the ABI names
instead of the rNN names, so it's clearer that you are skipping the
KVM_ARCH register.
Paolo
Powered by blists - more mailing lists