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
|
||||
} op_spec;
|
||||
|
||||
/*
|
||||
* 128-bit value
|
||||
*/
|
||||
typedef struct {
|
||||
t_uint64 low;
|
||||
t_uint64 high;
|
||||
} t_mau_128;
|
||||
|
||||
/*
|
||||
* Not-a-Number Type
|
||||
*/
|
||||
|
@ -289,7 +297,7 @@ typedef struct {
|
|||
t_bool sign;
|
||||
t_uint64 high;
|
||||
t_uint64 low;
|
||||
} NAN_T;
|
||||
} T_NAN;
|
||||
|
||||
/*
|
||||
* Extended Precision (80 bits).
|
||||
|
|
Loading…
Add table
Reference in a new issue