mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-04-19 11:21:51 +00:00
M-profile CPUs with half-precision floating point support should be able to write to FPSCR.FZ16, but an M-profile specific masking of the value at the top of vfp_set_fpscr() currently prevents that. This is not yet an active bug because we have no M-profile FP16 CPUs, but needs to be fixed before we can add any. The bits that the masking is effectively preventing from being set are the A-profile only short-vector Len and Stride fields, plus the Neon QC bit. Rearrange the order of the function so that those fields are handled earlier and only under a suitable guard; this allows us to drop the M-profile specific masking, making FZ16 writeable. This change also makes the QC bit correctly RAZ/WI for older no-Neon A-profile cores. This refactoring also paves the way for the low-overhead-branch LTPSIZE field, which uses some of the bits that are used for A-profile Stride and Len. Backports commit d31e2ce68d56f5bcc83831497e5fe4b8a7e18e85 |
||
---|---|---|
.. | ||
arm | ||
i386 | ||
m68k | ||
mips | ||
riscv | ||
sparc |