diff options
author | kib <kib@FreeBSD.org> | 2015-10-07 09:12:49 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2015-10-07 09:12:49 +0000 |
commit | 58e0a4096fe55cc3548ea668f795925a29276273 (patch) | |
tree | 19ad3a9d2f0f2b2df036bcc42c15929999d74b41 /sys/arm/include/md_var.h | |
parent | 198f362e320ac36fa16f2544e295d847aedf3122 (diff) | |
download | FreeBSD-src-58e0a4096fe55cc3548ea668f795925a29276273.zip FreeBSD-src-58e0a4096fe55cc3548ea668f795925a29276273.tar.gz |
A follow-up to r288492. In fact, revert the mentioned commit for
pre-VFPv3 processors, since they do require software support code to
handle denormals. For VFPv3 and later, enable flush-to-zero if
hardware does not claim full denormals arithmetic support by VMVFR1_FZ
field in mvfr1 register.
The end result is that we do use correct fpu environment on Cortexes
with VFPv3, while ARM11 (e.g. rpi) is in non-compliant flush-to-zero
mode. At least CPUs without complete hardware implementation of
IEEE 754 do not cause unhandled floating point exception on underflow,
as it was before r288492.
Noted by: ian
Tested by: gjb
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Diffstat (limited to 'sys/arm/include/md_var.h')
-rw-r--r-- | sys/arm/include/md_var.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/arm/include/md_var.h b/sys/arm/include/md_var.h index 030b48b..642124d 100644 --- a/sys/arm/include/md_var.h +++ b/sys/arm/include/md_var.h @@ -71,4 +71,6 @@ void dump_add_page(vm_paddr_t); void dump_drop_page(vm_paddr_t); int minidumpsys(struct dumperinfo *); +extern uint32_t initial_fpscr; + #endif /* !_MACHINE_MD_VAR_H_ */ |