3b2: Fix critical MAU issues
- A bug in the Square Root implementation could lead to an infinite loop. - Incorrect rounding was used when MAU destination register was single or double word. - Fix Coverity-discovered issues.
This commit is contained in:
parent
c1d9db8be7
commit
292898e9f4
2 changed files with 382 additions and 266 deletions
638
3B2/3b2_mau.c
638
3B2/3b2_mau.c
File diff suppressed because it is too large
Load diff
|
@ -282,6 +282,14 @@ typedef enum {
|
||||||
M_OP_NONE
|
M_OP_NONE
|
||||||
} op_spec;
|
} op_spec;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 128-bit value
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
t_uint64 low;
|
||||||
|
t_uint64 high;
|
||||||
|
} t_mau_128;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Not-a-Number Type
|
* Not-a-Number Type
|
||||||
*/
|
*/
|
||||||
|
@ -289,7 +297,7 @@ typedef struct {
|
||||||
t_bool sign;
|
t_bool sign;
|
||||||
t_uint64 high;
|
t_uint64 high;
|
||||||
t_uint64 low;
|
t_uint64 low;
|
||||||
} NAN_T;
|
} T_NAN;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extended Precision (80 bits).
|
* Extended Precision (80 bits).
|
||||||
|
|
Loading…
Add table
Reference in a new issue