#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.
◆ f64_to_ui64_r_minMag()
Definition at line 44 of file f64_to_ui64_r_minMag.c.
45{
51 bool sign;
53
54
55
57 uiA = uA.ui;
60
61
62 shiftDist = 0x433 - exp;
63 if ( 53 <= shiftDist ) {
64 if ( exact && (exp | sig) ) {
66 }
67 return 0;
68 }
69
70
72 if ( sign ) goto invalid;
73 if ( shiftDist <= 0 ) {
74 if ( shiftDist < -11 ) goto invalid;
75 z = (sig |
UINT64_C( 0x0010000000000000 ))<<-shiftDist;
76 } else {
77 sig |=
UINT64_C( 0x0010000000000000 );
78 z = sig>>shiftDist;
79 if ( exact && (
uint64_t) (sig<<(-shiftDist & 63)) ) {
81 }
82 }
83 return z;
84
85
86 invalid:
88 return
91
92}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
void softfloat_raiseFlags(uint_fast8_t flags)
#define ui64_fromPosOverflow
#define ui64_fromNegOverflow
THREAD_LOCAL uint_fast8_t softfloat_exceptionFlags
unsigned __int64 uint64_t