From: Michal Orzel <michal.orzel@arm.com> To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, bertrand.marquis@arm.com, Julien Grall <jgrall@amazon.com> Subject: [PATCH v2 01/10] arm64/vfp: Get rid of READ/WRITE_SYSREG32 Date: Tue, 27 Apr 2021 11:35:37 +0200 [thread overview] Message-ID: <20210427093546.30703-2-michal.orzel@arm.com> (raw) In-Reply-To: <20210427093546.30703-1-michal.orzel@arm.com> AArch64 registers are 64bit whereas AArch32 registers are 32bit or 64bit. MSR/MRS are expecting 64bit values thus we should get rid of helpers READ/WRITE_SYSREG32 in favour of using READ/WRITE_SYSREG. We should also use register_t type when reading sysregs which can correspond to uint64_t or uint32_t. Even though many AArch64 registers have upper 32bit reserved it does not mean that they can't be widen in the future. Modify type of FPCR, FPSR, FPEXC32_EL2 to register_t. Signed-off-by: Michal Orzel <michal.orzel@arm.com> Reviewed-by: Julien Grall <jgrall@amazon.com> --- xen/arch/arm/arm64/vfp.c | 12 ++++++------ xen/include/asm-arm/arm64/vfp.h | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c index 999a0d58a5..47885e76ba 100644 --- a/xen/arch/arm/arm64/vfp.c +++ b/xen/arch/arm/arm64/vfp.c @@ -26,10 +26,10 @@ void vfp_save_state(struct vcpu *v) "stp q30, q31, [%1, #16 * 30]\n\t" : "=Q" (*v->arch.vfp.fpregs) : "r" (v->arch.vfp.fpregs)); - v->arch.vfp.fpsr = READ_SYSREG32(FPSR); - v->arch.vfp.fpcr = READ_SYSREG32(FPCR); + v->arch.vfp.fpsr = READ_SYSREG(FPSR); + v->arch.vfp.fpcr = READ_SYSREG(FPCR); if ( is_32bit_domain(v->domain) ) - v->arch.vfp.fpexc32_el2 = READ_SYSREG32(FPEXC32_EL2); + v->arch.vfp.fpexc32_el2 = READ_SYSREG(FPEXC32_EL2); } void vfp_restore_state(struct vcpu *v) @@ -55,8 +55,8 @@ void vfp_restore_state(struct vcpu *v) "ldp q30, q31, [%1, #16 * 30]\n\t" : : "Q" (*v->arch.vfp.fpregs), "r" (v->arch.vfp.fpregs)); - WRITE_SYSREG32(v->arch.vfp.fpsr, FPSR); - WRITE_SYSREG32(v->arch.vfp.fpcr, FPCR); + WRITE_SYSREG(v->arch.vfp.fpsr, FPSR); + WRITE_SYSREG(v->arch.vfp.fpcr, FPCR); if ( is_32bit_domain(v->domain) ) - WRITE_SYSREG32(v->arch.vfp.fpexc32_el2, FPEXC32_EL2); + WRITE_SYSREG(v->arch.vfp.fpexc32_el2, FPEXC32_EL2); } diff --git a/xen/include/asm-arm/arm64/vfp.h b/xen/include/asm-arm/arm64/vfp.h index 6ab5d36c6c..e6e8c363bc 100644 --- a/xen/include/asm-arm/arm64/vfp.h +++ b/xen/include/asm-arm/arm64/vfp.h @@ -7,9 +7,9 @@ struct vfp_state { uint64_t fpregs[64] __vfp_aligned; - uint32_t fpcr; - uint32_t fpexc32_el2; - uint32_t fpsr; + register_t fpcr; + register_t fpexc32_el2; + register_t fpsr; }; #endif /* _ARM_ARM64_VFP_H */ -- 2.29.0
next prev parent reply other threads:[~2021-04-27 9:36 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-27 9:35 [PATCH v2 00/10] " Michal Orzel 2021-04-27 9:35 ` Michal Orzel [this message] 2021-04-27 9:35 ` [PATCH v2 02/10] arm/domain: " Michal Orzel 2021-04-27 9:45 ` Julien Grall 2021-04-29 6:58 ` Michal Orzel 2021-04-27 9:35 ` [PATCH v2 03/10] arm: Modify type of actlr to register_t Michal Orzel 2021-04-27 9:47 ` Julien Grall 2021-04-29 7:10 ` Michal Orzel 2021-04-27 9:35 ` [PATCH v2 04/10] arm/gic: Remove member hcr of structure gic_v3 Michal Orzel 2021-04-27 9:48 ` Julien Grall 2021-04-27 9:35 ` [PATCH v2 05/10] arm/gic: Get rid of READ/WRITE_SYSREG32 Michal Orzel 2021-04-27 10:02 ` Julien Grall 2021-04-29 7:14 ` Michal Orzel 2021-04-27 9:35 ` [PATCH v2 06/10] arm/p2m: " Michal Orzel 2021-04-27 9:35 ` [PATCH v2 07/10] arm/mm: " Michal Orzel 2021-04-27 9:59 ` Julien Grall 2021-04-29 7:16 ` Michal Orzel 2021-04-27 9:35 ` [PATCH v2 08/10] arm/page: " Michal Orzel 2021-04-27 9:35 ` [PATCH v2 09/10] arm/time,vtimer: " Michal Orzel 2021-04-27 10:09 ` Julien Grall 2021-04-27 9:35 ` [PATCH v2 10/10] arm64: Change type of hsr, cpsr, spsr_el1 to uint64_t Michal Orzel 2021-04-27 11:09 ` Julien Grall 2021-04-29 8:53 ` Michal Orzel 2021-04-29 10:31 ` Tamas K Lengyel 2021-04-29 10:35 ` Julien Grall
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210427093546.30703-2-michal.orzel@arm.com \ --to=michal.orzel@arm.com \ --cc=Volodymyr_Babchuk@epam.com \ --cc=bertrand.marquis@arm.com \ --cc=jgrall@amazon.com \ --cc=julien@xen.org \ --cc=sstabellini@kernel.org \ --cc=xen-devel@lists.xenproject.org \ --subject='Re: [PATCH v2 01/10] arm64/vfp: Get rid of READ/WRITE_SYSREG32' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).