/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ |
A D | s_subMagsF128.c | 55 struct uint128 sigA; in softfloat_subMagsF128() local 63 sigA.v64 = fracF128UI64( uiA64 ); in softfloat_subMagsF128() 64 sigA.v0 = uiA0; in softfloat_subMagsF128() 68 sigA = softfloat_shortShiftLeft128( sigA.v64, sigA.v0, 4 ); in softfloat_subMagsF128() 74 if ( sigA.v64 | sigA.v0 | sigB.v64 | sigB.v0 ) goto propagateNaN; in softfloat_subMagsF128() 84 if ( sigB.v0 < sigA.v0 ) goto aBigger; in softfloat_subMagsF128() 85 if ( sigA.v0 < sigB.v0 ) goto bBigger; in softfloat_subMagsF128() 104 sigA = softfloat_shiftRightJam128( sigA.v64, sigA.v0, -expDiff ); in softfloat_subMagsF128() 110 sigZ = softfloat_sub128( sigB.v64, sigB.v0, sigA.v64, sigA.v0 ); in softfloat_subMagsF128() 114 if ( sigA.v64 | sigA.v0 ) goto propagateNaN; in softfloat_subMagsF128() [all …]
|
A D | s_subMagsF32.c | 49 uint_fast32_t sigA; in softfloat_subMagsF32() local 59 sigA = fracF32UI( uiA ); in softfloat_subMagsF32() 63 sigA <<= 7; in softfloat_subMagsF32() 77 if ( sigB < sigA ) goto aBigger; in softfloat_subMagsF32() 78 if ( sigA < sigB ) goto bBigger; in softfloat_subMagsF32() 87 sigA += expA ? 0x40000000 : sigA; in softfloat_subMagsF32() 88 sigA = softfloat_shiftRightJam32( sigA, -expDiff ); in softfloat_subMagsF32() 93 sigZ = sigB - sigA; in softfloat_subMagsF32() 97 if ( sigA ) goto propagateNaN; in softfloat_subMagsF32() 103 sigA |= 0x40000000; in softfloat_subMagsF32() [all …]
|
A D | s_subMagsF64.c | 49 uint_fast64_t sigA; in softfloat_subMagsF64() local 59 sigA = fracF64UI( uiA ); in softfloat_subMagsF64() 63 sigA <<= 10; in softfloat_subMagsF64() 77 if ( sigB < sigA ) goto aBigger; in softfloat_subMagsF64() 78 if ( sigA < sigB ) goto bBigger; in softfloat_subMagsF64() 87 sigA += expA ? UINT64_C( 0x4000000000000000 ) : sigA; in softfloat_subMagsF64() 88 sigA = softfloat_shiftRightJam64( sigA, -expDiff ); in softfloat_subMagsF64() 93 sigZ = sigB - sigA; in softfloat_subMagsF64() 97 if ( sigA ) goto propagateNaN; in softfloat_subMagsF64() 103 sigA |= UINT64_C( 0x4000000000000000 ); in softfloat_subMagsF64() [all …]
|
A D | f32_div.c | 51 uint_fast32_t sigA; in f32_div() local 76 sigA = fracF32UI( uiA ); in f32_div() 86 if ( sigA ) goto propagateNaN; in f32_div() 110 if ( ! sigA ) goto zero; in f32_div() 113 sigA = normExpSig.sig; in f32_div() 118 sigA |= 0x00800000; in f32_div() 121 if ( sigA < sigB ) { in f32_div() 123 sig64A = (uint_fast64_t) sigA<<31; in f32_div() 130 if ( sigA < sigB ) { in f32_div() 132 sigA <<= 8; in f32_div() [all …]
|
A D | f64_sqrt.c | 51 uint_fast64_t sigA, uiZ; in f64_sqrt() local 66 sigA = fracF64UI( uiA ); in f64_sqrt() 70 if ( sigA ) { in f64_sqrt() 80 if ( ! (expA | sigA) ) return a; in f64_sqrt() 86 if ( ! sigA ) return a; in f64_sqrt() 89 sigA = normExpSig.sig; in f64_sqrt() 98 sigA |= UINT64_C( 0x0010000000000000 ); in f64_sqrt() 99 sig32A = sigA>>21; in f64_sqrt() 103 sigA <<= 8; in f64_sqrt() 106 sigA <<= 9; in f64_sqrt() [all …]
|
A D | f128_mul.c | 51 struct uint128 sigA; in f128_mul() local 75 sigA.v64 = fracF128UI64( uiA64 ); in f128_mul() 76 sigA.v0 = uiA0; in f128_mul() 89 (sigA.v64 | sigA.v0) || ((expB == 0x7FFF) && (sigB.v64 | sigB.v0)) in f128_mul() 98 magBits = expA | sigA.v64 | sigA.v0; in f128_mul() 104 if ( ! (sigA.v64 | sigA.v0) ) goto zero; in f128_mul() 105 normExpSig = softfloat_normSubnormalF128Sig( sigA.v64, sigA.v0 ); in f128_mul() 107 sigA = normExpSig.sig; in f128_mul() 118 sigA.v64 |= UINT64_C( 0x0001000000000000 ); in f128_mul() 120 softfloat_mul128To256M( sigA.v64, sigA.v0, sigB.v64, sigB.v0, sig256Z ); in f128_mul() [all …]
|
A D | f32_sqrt.c | 51 uint_fast32_t sigA, uiZ; in f32_sqrt() local 64 sigA = fracF32UI( uiA ); in f32_sqrt() 68 if ( sigA ) { in f32_sqrt() 78 if ( ! (expA | sigA) ) return a; in f32_sqrt() 84 if ( ! sigA ) return a; in f32_sqrt() 85 normExpSig = softfloat_normSubnormalF32Sig( sigA ); in f32_sqrt() 87 sigA = normExpSig.sig; in f32_sqrt() 93 sigA = (sigA | 0x00800000)<<8; in f32_sqrt() 95 ((uint_fast64_t) sigA * softfloat_approxRecipSqrt32_1( expA, sigA )) in f32_sqrt()
|
A D | s_addMagsF128.c | 54 struct uint128 sigA; in softfloat_addMagsF128() local 65 sigA.v64 = fracF128UI64( uiA64 ); in softfloat_addMagsF128() 66 sigA.v0 = uiA0; in softfloat_addMagsF128() 73 if ( sigA.v64 | sigA.v0 | sigB.v64 | sigB.v0 ) goto propagateNaN; in softfloat_addMagsF128() 78 sigZ = softfloat_add128( sigA.v64, sigA.v0, sigB.v64, sigB.v0 ); in softfloat_addMagsF128() 98 sigA.v64 |= UINT64_C( 0x0001000000000000 ); in softfloat_addMagsF128() 105 softfloat_shiftRightJam128Extra( sigA.v64, sigA.v0, 0, -expDiff ); in softfloat_addMagsF128() 106 sigA = sig128Extra.v; in softfloat_addMagsF128() 110 if ( sigA.v64 | sigA.v0 ) goto propagateNaN; in softfloat_addMagsF128() 131 sigA.v64 | UINT64_C( 0x0001000000000000 ), in softfloat_addMagsF128() [all …]
|
A D | s_addMagsF32.c | 48 uint_fast32_t sigA; in softfloat_addMagsF32() local 58 sigA = fracF32UI( uiA ); in softfloat_addMagsF32() 62 sigA <<= 6; in softfloat_addMagsF32() 66 if ( sigA | sigB ) goto propagateNaN; in softfloat_addMagsF32() 75 sigZ = 0x40000000 + sigA + sigB; in softfloat_addMagsF32() 84 sigA += expA ? 0x20000000 : sigA; in softfloat_addMagsF32() 85 sigA = softfloat_shiftRightJam32( sigA, -expDiff ); in softfloat_addMagsF32() 88 if ( sigA ) goto propagateNaN; in softfloat_addMagsF32() 96 sigZ = 0x20000000 + sigA + sigB; in softfloat_addMagsF32()
|
A D | f128_div.c | 51 struct uint128 sigA; in f128_div() local 78 sigA.v64 = fracF128UI64( uiA64 ); in f128_div() 79 sigA.v0 = uiA0; in f128_div() 91 if ( sigA.v64 | sigA.v0 ) goto propagateNaN; in f128_div() 106 if ( ! (expA | sigA.v64 | sigA.v0) ) goto invalid; in f128_div() 115 if ( ! (sigA.v64 | sigA.v0) ) goto zero; in f128_div() 116 normExpSig = softfloat_normSubnormalF128Sig( sigA.v64, sigA.v0 ); in f128_div() 118 sigA = normExpSig.sig; in f128_div() 125 rem = sigA; in f128_div() 126 if ( softfloat_lt128( sigA.v64, sigA.v0, sigB.v64, sigB.v0 ) ) { in f128_div() [all …]
|
A D | s_addMagsF64.c | 48 uint_fast64_t sigA; in softfloat_addMagsF64() local 58 sigA = fracF64UI( uiA ); in softfloat_addMagsF64() 62 sigA <<= 9; in softfloat_addMagsF64() 66 if ( sigA | sigB ) goto propagateNaN; in softfloat_addMagsF64() 77 sigZ = UINT64_C( 0x4000000000000000 ) + sigA + sigB; in softfloat_addMagsF64() 86 sigA += expA ? UINT64_C( 0x2000000000000000 ) : sigA; in softfloat_addMagsF64() 87 sigA = softfloat_shiftRightJam64( sigA, -expDiff ); in softfloat_addMagsF64() 90 if ( sigA ) goto propagateNaN; in softfloat_addMagsF64() 98 sigZ = UINT64_C( 0x2000000000000000 ) + sigA + sigB; in softfloat_addMagsF64()
|
A D | f128_sqrt.c | 51 struct uint128 sigA, uiZ; in f128_sqrt() local 71 sigA.v64 = fracF128UI64( uiA64 ); in f128_sqrt() 72 sigA.v0 = uiA0; in f128_sqrt() 76 if ( sigA.v64 | sigA.v0 ) { in f128_sqrt() 86 if ( ! (expA | sigA.v64 | sigA.v0) ) return a; in f128_sqrt() 92 if ( ! (sigA.v64 | sigA.v0) ) return a; in f128_sqrt() 93 normExpSig = softfloat_normSubnormalF128Sig( sigA.v64, sigA.v0 ); in f128_sqrt() 95 sigA = normExpSig.sig; in f128_sqrt() 105 sig32A = sigA.v64>>17; in f128_sqrt() 110 rem = softfloat_shortShiftLeft128( sigA.v64, sigA.v0, 12 ); in f128_sqrt() [all …]
|
A D | extF80_roundToInt.c | 51 uint_fast64_t sigA; in extF80_roundToInt() local 65 sigA = uA.s.signif; in extF80_roundToInt() 68 if ( ! (sigA & UINT64_C( 0x8000000000000000 )) && (exp != 0x7FFF) ) { in extF80_roundToInt() 69 if ( ! sigA ) { in extF80_roundToInt() 74 normExpSig = softfloat_normSubnormalExtF80Sig( sigA ); in extF80_roundToInt() 76 sigA = normExpSig.sig; in extF80_roundToInt() 82 if ( sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) { in extF80_roundToInt() 90 sigZ = sigA; in extF80_roundToInt() 99 if ( ! (sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) break; in extF80_roundToInt() 123 sigZ = sigA; in extF80_roundToInt() [all …]
|
A D | f64_div.c | 51 uint_fast64_t sigA; in f64_div() local 73 sigA = fracF64UI( uiA ); in f64_div() 83 if ( sigA ) goto propagateNaN; in f64_div() 98 if ( ! (expA | sigA) ) goto invalid; in f64_div() 107 if ( ! sigA ) goto zero; in f64_div() 108 normExpSig = softfloat_normSubnormalF64Sig( sigA ); in f64_div() 110 sigA = normExpSig.sig; in f64_div() 115 sigA |= UINT64_C( 0x0010000000000000 ); in f64_div() 117 if ( sigA < sigB ) { in f64_div() 119 sigA <<= 11; in f64_div() [all …]
|
A D | s_compareNonnormExtF80M.c | 48 uint64_t sigA; in softfloat_compareNonnormExtF80M() local 57 sigA = aSPtr->signif; in softfloat_compareNonnormExtF80M() 63 if ( ! (sigA | sigB) ) return 0; in softfloat_compareNonnormExtF80M() 81 if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) { in softfloat_compareNonnormExtF80M() 82 if ( sigA ) { in softfloat_compareNonnormExtF80M() 83 expA += softfloat_normExtF80SigM( &sigA ); in softfloat_compareNonnormExtF80M() 100 if ( (expB < expA) || (sigB < sigA) ) return -1; in softfloat_compareNonnormExtF80M() 103 if ( (expA < expB) || (sigA < sigB) ) return -1; in softfloat_compareNonnormExtF80M() 105 return (sigA != sigB); in softfloat_compareNonnormExtF80M()
|
A D | f64_mul.c | 51 uint_fast64_t sigA; in f64_mul() local 75 sigA = fracF64UI( uiA ); in f64_mul() 85 if ( sigA || ((expB == 0x7FF) && sigB) ) goto propagateNaN; in f64_mul() 91 magBits = expA | sigA; in f64_mul() 97 if ( ! sigA ) goto zero; in f64_mul() 98 normExpSig = softfloat_normSubnormalF64Sig( sigA ); in f64_mul() 100 sigA = normExpSig.sig; in f64_mul() 111 sigA = (sigA | UINT64_C( 0x0010000000000000 ))<<10; in f64_mul() 114 sig128Z = softfloat_mul64To128( sigA, sigB ); in f64_mul() 117 softfloat_mul64To128M( sigA, sigB, sig128Z ); in f64_mul()
|
A D | extF80M_roundToInt.c | 74 uint64_t sigA; in extF80M_roundToInt() local 87 sigA = aSPtr->signif; in extF80M_roundToInt() 90 if ( ! (sigA & UINT64_C( 0x8000000000000000 )) && (exp != 0x7FFF) ) { in extF80M_roundToInt() 91 if ( ! sigA ) { in extF80M_roundToInt() 96 exp += softfloat_normExtF80SigM( &sigA ); in extF80M_roundToInt() 104 if ( ! (sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) break; in extF80M_roundToInt() 127 if ( sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) { in extF80M_roundToInt() 133 sigZ = sigA; in extF80M_roundToInt() 143 sigZ = sigA; in extF80M_roundToInt() 159 if ( exact && (sigZ != sigA) ) { in extF80M_roundToInt()
|
A D | f32_mul.c | 51 uint_fast32_t sigA; in f32_mul() local 68 sigA = fracF32UI( uiA ); in f32_mul() 76 if ( sigA || ((expB == 0xFF) && sigB) ) goto propagateNaN; in f32_mul() 82 magBits = expA | sigA; in f32_mul() 86 if ( ! sigA ) goto zero; in f32_mul() 87 normExpSig = softfloat_normSubnormalF32Sig( sigA ); in f32_mul() 89 sigA = normExpSig.sig; in f32_mul() 98 sigA = (sigA | 0x00800000)<<7; in f32_mul() 100 sigZ = softfloat_shortShiftRightJam64( (uint_fast64_t) sigA * sigB, 32 ); in f32_mul()
|
A D | s_subMagsExtF80.c | 55 uint_fast64_t sigA; in softfloat_subMagsExtF80() local 69 sigA = uiA0; in softfloat_subMagsExtF80() 78 if ( (sigA | sigB) & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) { in softfloat_subMagsExtF80() 91 if ( sigB < sigA ) goto aBigger; in softfloat_subMagsExtF80() 92 if ( sigA < sigB ) goto bBigger; in softfloat_subMagsExtF80() 111 sig128 = softfloat_shiftRightJam128( sigA, 0, -expDiff ); in softfloat_subMagsExtF80() 112 sigA = sig128.v64; in softfloat_subMagsExtF80() 118 sig128 = softfloat_sub128( sigB, 0, sigA, sigExtra ); in softfloat_subMagsExtF80() 124 if ( sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN; in softfloat_subMagsExtF80() 140 sig128 = softfloat_sub128( sigA, 0, sigB, sigExtra ); in softfloat_subMagsExtF80()
|
A D | extF80_sqrt.c | 52 uint_fast64_t sigA; in extF80_sqrt() local 72 sigA = uiA0; in extF80_sqrt() 76 if ( sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) { in extF80_sqrt() 88 if ( ! sigA ) goto zero; in extF80_sqrt() 94 if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) { in extF80_sqrt() 95 if ( ! sigA ) goto zero; in extF80_sqrt() 96 normExpSig = softfloat_normSubnormalExtF80Sig( sigA ); in extF80_sqrt() 98 sigA = normExpSig.sig; in extF80_sqrt() 107 sig32A = sigA>>32; in extF80_sqrt() 112 rem = softfloat_shortShiftLeft128( 0, sigA, 61 ); in extF80_sqrt() [all …]
|
A D | s_mulAddF128.c | 58 struct uint128 sigA; in softfloat_mulAddF128() local 83 sigA.v64 = fracF128UI64( uiA64 ); in softfloat_mulAddF128() 84 sigA.v0 = uiA0; in softfloat_mulAddF128() 98 (sigA.v64 | sigA.v0) || ((expB == 0x7FFF) && (sigB.v64 | sigB.v0)) in softfloat_mulAddF128() 107 magBits = expA | sigA.v64 | sigA.v0; in softfloat_mulAddF128() 123 if ( ! (sigA.v64 | sigA.v0) ) goto zeroProd; in softfloat_mulAddF128() 124 normExpSig = softfloat_normSubnormalF128Sig( sigA.v64, sigA.v0 ); in softfloat_mulAddF128() 126 sigA = normExpSig.sig; in softfloat_mulAddF128() 137 sigA.v64 |= UINT64_C( 0x0001000000000000 ); in softfloat_mulAddF128() 139 sigA = softfloat_shortShiftLeft128( sigA.v64, sigA.v0, 8 ); in softfloat_mulAddF128() [all …]
|
A D | extF80M_rem.c | 68 uint64_t sigA; in extF80M_rem() local 106 sigA = aSPtr->signif; in extF80M_rem() 107 if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) { in extF80M_rem() 108 if ( ! sigA ) { in extF80M_rem() 112 expA += softfloat_normExtF80SigM( &sigA ); in extF80M_rem() 118 rem[indexWord( 3, 2 )] = sigA>>34; in extF80M_rem() 119 rem[indexWord( 3, 1 )] = sigA>>2; in extF80M_rem() 120 rem[indexWord( 3, 0 )] = (uint32_t) sigA<<30; in extF80M_rem() 196 sigA >>= 1 - expA; in extF80M_rem() 200 zSPtr->signif = sigA; in extF80M_rem()
|
A D | f128_rem.c | 51 struct uint128 sigA; in f128_rem() local 74 sigA.v64 = fracF128UI64( uiA64 ); in f128_rem() 75 sigA.v0 = uiA0; in f128_rem() 87 (sigA.v64 | sigA.v0) || ((expB == 0x7FFF) && (sigB.v64 | sigB.v0)) in f128_rem() 106 if ( ! (sigA.v64 | sigA.v0) ) return a; in f128_rem() 107 normExpSig = softfloat_normSubnormalF128Sig( sigA.v64, sigA.v0 ); in f128_rem() 109 sigA = normExpSig.sig; in f128_rem() 113 sigA.v64 |= UINT64_C( 0x0001000000000000 ); in f128_rem() 115 rem = sigA; in f128_rem()
|
A D | s_mulAddF64.c | 53 uint_fast64_t sigA; in softfloat_mulAddF64() local 75 sigA = fracF64UI( uiA ); in softfloat_mulAddF64() 92 magBits = expA | sigA; in softfloat_mulAddF64() 106 if ( ! sigA ) goto zeroProd; in softfloat_mulAddF64() 109 sigA = normExpSig.sig; in softfloat_mulAddF64() 120 sigA = (sigA | UINT64_C( 0x0010000000000000 ))<<10; in softfloat_mulAddF64() 253 uint64_t sigA; in softfloat_mulAddF64() local 274 sigA = fracF64UI( uiA ); in softfloat_mulAddF64() 291 magBits = expA | sigA; in softfloat_mulAddF64() 308 sigA = normExpSig.sig; in softfloat_mulAddF64() [all …]
|
A D | extF80_mul.c | 52 uint_fast64_t sigA; in extF80_mul() local 75 sigA = uiA0; in extF80_mul() 87 (sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) in extF80_mul() 97 magBits = expA | sigA; in extF80_mul() 103 if ( ! (sigA & UINT64_C( 0x8000000000000000 )) ) { in extF80_mul() 104 if ( ! sigA ) goto zero; in extF80_mul() 105 normExpSig = softfloat_normSubnormalExtF80Sig( sigA ); in extF80_mul() 107 sigA = normExpSig.sig; in extF80_mul() 119 sig128Z = softfloat_mul64To128( sigA, sigB ); in extF80_mul()
|