Page MenuHomeFreeBSD

arm64: Enable Floating-point exception
ClosedPublic

Authored by dchagin on May 18 2022, 6:49 PM.
Tags
None
Referenced Files
Unknown Object (File)
Feb 18 2024, 8:25 AM
Unknown Object (File)
Jan 18 2024, 6:25 PM
Unknown Object (File)
Jan 14 2024, 3:41 PM
Unknown Object (File)
Dec 20 2023, 2:17 AM
Unknown Object (File)
Dec 12 2023, 3:13 PM
Unknown Object (File)
Nov 5 2023, 12:23 AM
Unknown Object (File)
Oct 30 2023, 6:08 AM
Unknown Object (File)
Oct 26 2023, 5:38 PM
Subscribers

Details

Summary

To enable it user-space needs to call feenableexcept().

FPE_FLTIDO has been added ss IDF bit can't be mapped to any existing FPE code.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

sys/arm64/arm64/trap.c
416

I'd drop the do_ from this name.

421

This should be if ((exception & ISS_DATA_TFV) != 0) { (and similar below)

583

Do we need to restore the VFP state? It should be enabled when this exception is raised.

sys/arm64/include/armreg.h
307–314

These should be named something like ISS_FP_TFV_FOO and placed before the ISS_INSN_* definitions. The ISS_DATA_* macros are for data aborts.

dchagin added inline comments.
sys/arm64/arm64/trap.c
583

yep, I should read Architecture Reference Manual before

sys/arm64/include/armreg.h
307–314

I'd prefer ISS_FP_FOO as TVF and FOO are bits in the same word, but if you insist, I'll change the naming

This revision is now accepted and ready to land.May 19 2022, 11:57 AM
This revision was automatically updated to reflect the committed changes.
dchagin marked 2 inline comments as done.