@@ -1843,20 +1843,20 @@ extern "C" int jl_test_cpu_feature(jl_cpu_feature_t feature)
1843
1843
1844
1844
#ifdef _CPU_AARCH64_
1845
1845
// FPCR FZ, bit [24]
1846
- static constexpr uint32_t fpcr_fz_mask = 1 << 24 ;
1846
+ static constexpr uint64_t fpcr_fz_mask = 1 << 24 ;
1847
1847
// FPCR FZ16, bit [19]
1848
- static constexpr uint32_t fpcr_fz16_mask = 1 << 19 ;
1848
+ static constexpr uint64_t fpcr_fz16_mask = 1 << 19 ;
1849
1849
// FPCR DN, bit [25]
1850
- static constexpr uint32_t fpcr_dn_mask = 1 << 25 ;
1850
+ static constexpr uint64_t fpcr_dn_mask = 1 << 25 ;
1851
1851
1852
- static inline uint32_t get_fpcr_aarch64 (void )
1852
+ static inline uint64_t get_fpcr_aarch64 (void )
1853
1853
{
1854
- uint32_t fpcr;
1854
+ uint64_t fpcr;
1855
1855
asm volatile (" mrs %0, fpcr" : " =r" (fpcr));
1856
1856
return fpcr;
1857
1857
}
1858
1858
1859
- static inline void set_fpcr_aarch64 (uint32_t fpcr)
1859
+ static inline void set_fpcr_aarch64 (uint64_t fpcr)
1860
1860
{
1861
1861
asm volatile (" msr fpcr, %0" :: " r" (fpcr));
1862
1862
}
@@ -1868,8 +1868,8 @@ extern "C" JL_DLLEXPORT int32_t jl_get_zero_subnormals(void)
1868
1868
1869
1869
extern " C" JL_DLLEXPORT int32_t jl_set_zero_subnormals (int8_t isZero)
1870
1870
{
1871
- uint32_t fpcr = get_fpcr_aarch64 ();
1872
- static uint32_t mask = fpcr_fz_mask | (jl_test_cpu_feature (JL_AArch64_fullfp16) ? fpcr_fz16_mask : 0 );
1871
+ uint64_t fpcr = get_fpcr_aarch64 ();
1872
+ static uint64_t mask = fpcr_fz_mask | (jl_test_cpu_feature (JL_AArch64_fullfp16) ? fpcr_fz16_mask : 0 );
1873
1873
fpcr = isZero ? (fpcr | mask) : (fpcr & ~mask);
1874
1874
set_fpcr_aarch64 (fpcr);
1875
1875
return 0 ;
@@ -1882,7 +1882,7 @@ extern "C" JL_DLLEXPORT int32_t jl_get_default_nans(void)
1882
1882
1883
1883
extern " C" JL_DLLEXPORT int32_t jl_set_default_nans (int8_t isDefault)
1884
1884
{
1885
- uint32_t fpcr = get_fpcr_aarch64 ();
1885
+ uint64_t fpcr = get_fpcr_aarch64 ();
1886
1886
fpcr = isDefault ? (fpcr | fpcr_dn_mask) : (fpcr & ~fpcr_dn_mask);
1887
1887
set_fpcr_aarch64 (fpcr);
1888
1888
return 0 ;
0 commit comments