#include <stdbool.h>
#include <stdint.h>
#include "platform.h"
#include "internals.h"
#include "specialize.h"
#include "softfloat.h"
Go to the source code of this file.
◆ f128M_to_i32_r_minMag()
Definition at line 55 of file f128M_to_i32_r_minMag.c.
56{
59 bool sign;
65
66
67
74
75
76 if ( exp < 0x3FFF ) {
77 if ( exact && (exp | sig64) ) {
79 }
80 return 0;
81 }
82
83
84 if ( 0x401F <= exp ) goto invalid;
85 shiftDist = 0x402F - exp;
86 sig64 |=
UINT64_C( 0x0001000000000000 );
87 absZ = sig64>>shiftDist;
88 uiZ = sign ? -absZ : absZ;
89 if ( uiZ>>31 != sign ) goto invalid;
90 if ( exact && ((
uint64_t) absZ<<shiftDist != sig64) ) {
92 }
93 uZ.ui = uiZ;
94 return uZ.i;
95
96
97 invalid:
99 return
102
103}
void softfloat_raiseFlags(uint_fast8_t flags)
#define i32_fromNegOverflow
#define i32_fromPosOverflow
#define fracF128UI96(a96)
#define signF128UI96(a96)
#define indexWord(total, n)
#define indexWordHi(total)
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags
unsigned __int64 uint64_t