On 03/09/2016 05:42 AM, Bastian Koppelmann wrote:
This patch adds a file for all the FPU related helpers with all the includes,
useful defines, and a function to update the status bits. Additionally it adds
a mask for the rounding mode bits of PSW as well as all the opcodes for the
FPU instructions.
Signed-off-by: Bastian Koppelmann <kbast...@mail.uni-paderborn.de>
---
v2 -> v3:
- remove f_get_excp_flags(), which used a magic number
Actually I liked f_get_excp_flags, since it immediately discards the exceptions
that you don't care about. I just wanted it to be written
return get_float_exception_flags(&env->fp_status)
& (float_flag_invalid
| float_flag_overflow
| float_flag_underflow
| float_flag_output_denormal
| float_flag_divbyzero
| float_flag_inexact);
instead of "& 0xbf".
- remove double check on float_flag_invalid in f_update_psw_flags()
...
+ if (flags & float_flag_invalid) {
+ env->FPU_FI = (flags & float_flag_invalid) << 31;
+ some_excp = 1;
+ }
You didn't, actually.
r~