Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Mar 2021 17:38:59 GMT
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: df7549775c4e - main - Replace the arm64 initial_fpcr with a macro
Message-ID:  <202103231738.12NHcxBd042512@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=df7549775c4e36d8ac0ed6cce2525203beb2b32c

commit df7549775c4e36d8ac0ed6cce2525203beb2b32c
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2021-03-23 15:28:20 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2021-03-23 17:12:43 +0000

    Replace the arm64 initial_fpcr with a macro
    
    This value was never changed from its default value. Replace it with a
    macro.
    
    Sponsored by:   Innovate UK
---
 sys/arm64/arm64/vfp.c        | 4 ++--
 sys/arm64/arm64/vm_machdep.c | 2 --
 sys/arm64/include/md_var.h   | 2 --
 sys/arm64/include/vfp.h      | 1 +
 4 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/sys/arm64/arm64/vfp.c b/sys/arm64/arm64/vfp.c
index 5fa420e668c1..4935946d2430 100644
--- a/sys/arm64/arm64/vfp.c
+++ b/sys/arm64/arm64/vfp.c
@@ -212,7 +212,7 @@ vfp_reset_state(struct thread *td, struct pcb *pcb)
 	bzero(&pcb->pcb_fpustate.vfp_regs, sizeof(pcb->pcb_fpustate.vfp_regs));
 	KASSERT(pcb->pcb_fpusaved == &pcb->pcb_fpustate,
 	    ("pcb_fpusaved should point to pcb_fpustate."));
-	pcb->pcb_fpustate.vfp_fpcr = initial_fpcr;
+	pcb->pcb_fpustate.vfp_fpcr = VFPCR_INIT;
 	pcb->pcb_fpustate.vfp_fpsr = 0;
 	pcb->pcb_vfpcpu = UINT_MAX;
 	pcb->pcb_fpflags = 0;
@@ -262,7 +262,7 @@ vfp_init(void)
 	vfp_disable();
 
 	if (PCPU_GET(cpuid) == 0)
-		thread0.td_pcb->pcb_fpusaved->vfp_fpcr = initial_fpcr;
+		thread0.td_pcb->pcb_fpusaved->vfp_fpcr = VFPCR_INIT;
 }
 
 SYSINIT(vfp, SI_SUB_CPU, SI_ORDER_ANY, vfp_init, NULL);
diff --git a/sys/arm64/arm64/vm_machdep.c b/sys/arm64/arm64/vm_machdep.c
index 0193048e2697..c37f1d849359 100644
--- a/sys/arm64/arm64/vm_machdep.c
+++ b/sys/arm64/arm64/vm_machdep.c
@@ -55,8 +55,6 @@ __FBSDID("$FreeBSD$");
 #include <machine/vfp.h>
 #endif
 
-uint32_t initial_fpcr = VFPCR_DN;
-
 #include <dev/psci/psci.h>
 
 /*
diff --git a/sys/arm64/include/md_var.h b/sys/arm64/include/md_var.h
index 73cf642148b5..0132ab0dd8fd 100644
--- a/sys/arm64/include/md_var.h
+++ b/sys/arm64/include/md_var.h
@@ -54,6 +54,4 @@ void generic_bs_poke_2(void) __asm(__STRING(generic_bs_poke_2));
 void generic_bs_poke_4(void) __asm(__STRING(generic_bs_poke_4));
 void generic_bs_poke_8(void) __asm(__STRING(generic_bs_poke_8));
 
-extern uint32_t initial_fpcr;
-
 #endif /* !_MACHINE_MD_VAR_H_ */
diff --git a/sys/arm64/include/vfp.h b/sys/arm64/include/vfp.h
index 3632e5eaa396..6689be1b15d7 100644
--- a/sys/arm64/include/vfp.h
+++ b/sys/arm64/include/vfp.h
@@ -36,6 +36,7 @@
 #define	VFPCR_AHP		(0x04000000)	/* alt. half-precision: */
 #define	VFPCR_DN		(0x02000000)	/* default NaN enable */
 #define	VFPCR_FZ		(0x01000000)	/* flush to zero enabled */
+#define	VFPCR_INIT		VFPCR_DN	/* Default fpcr after exec */
 
 #define	VFPCR_RMODE_OFF		22		/* rounding mode offset */
 #define	VFPCR_RMODE_MASK	(0x00c00000)	/* rounding mode mask */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202103231738.12NHcxBd042512>