|
|
|
@@ -24,6 +24,8 @@ |
|
|
|
#include <stdint.h> |
|
|
|
#include "common.h" |
|
|
|
|
|
|
|
#include "avassert.h" |
|
|
|
|
|
|
|
#define MIN_EXP -126 |
|
|
|
#define MAX_EXP 126 |
|
|
|
#define ONE_BITS 29 |
|
|
|
@@ -61,6 +63,7 @@ static inline av_const SoftFloat av_normalize1_sf(SoftFloat a){ |
|
|
|
a.exp++; |
|
|
|
a.mant>>=1; |
|
|
|
} |
|
|
|
av_assert2(a.mant < 0x40000000 && a.mant > -0x40000000); |
|
|
|
return a; |
|
|
|
#elif 1 |
|
|
|
int t= a.mant + 0x40000000 < 0; |
|
|
|
@@ -78,6 +81,7 @@ static inline av_const SoftFloat av_normalize1_sf(SoftFloat a){ |
|
|
|
*/ |
|
|
|
static inline av_const SoftFloat av_mul_sf(SoftFloat a, SoftFloat b){ |
|
|
|
a.exp += b.exp; |
|
|
|
av_assert2((int32_t)((a.mant * (int64_t)b.mant) >> ONE_BITS) == (a.mant * (int64_t)b.mant) >> ONE_BITS); |
|
|
|
a.mant = (a.mant * (int64_t)b.mant) >> ONE_BITS; |
|
|
|
return av_normalize1_sf(a); |
|
|
|
} |
|
|
|
|