/optee_os/lib/libutils/isoc/arch/arm/softfloat/source/ |
A D | f128_rem.c | 56 struct uint128 sigB; in f128_rem() local 82 sigB.v0 = uiB0; in f128_rem() 87 (sigA.v64 | sigA.v0) || ((expB == 0x7FFF) && (sigB.v64 | sigB.v0)) in f128_rem() 94 if ( sigB.v64 | sigB.v0 ) goto propagateNaN; in f128_rem() 100 if ( ! (sigB.v64 | sigB.v0) ) goto invalid; in f128_rem() 101 normExpSig = softfloat_normSubnormalF128Sig( sigB.v64, sigB.v0 ); in f128_rem() 121 sigB = softfloat_add128( sigB.v64, sigB.v0, sigB.v64, sigB.v0 ); in f128_rem() 124 q = softfloat_le128( sigB.v64, sigB.v0, rem.v64, rem.v0 ); in f128_rem() 137 term = softfloat_mul128By32( sigB.v64, sigB.v0, q ); in f128_rem() 149 term = softfloat_mul128By32( sigB.v64, sigB.v0, q ); in f128_rem() [all …]
|
A D | s_subMagsF128.c | 57 struct uint128 sigB, sigZ; in softfloat_subMagsF128() local 66 sigB.v64 = fracF128UI64( uiB64 ); in softfloat_subMagsF128() 67 sigB.v0 = uiB0; in softfloat_subMagsF128() 69 sigB = softfloat_shortShiftLeft128( sigB.v64, sigB.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() 93 if ( sigB.v64 | sigB.v0 ) goto propagateNaN; in softfloat_subMagsF128() 110 sigZ = softfloat_sub128( sigB.v64, sigB.v0, sigA.v64, sigA.v0 ); in softfloat_subMagsF128() 125 sigB = softfloat_shiftRightJam128( sigB.v64, sigB.v0, expDiff ); in softfloat_subMagsF128() [all …]
|
A D | f128_div.c | 86 sigB.v0 = uiB0; in f128_div() 93 if ( sigB.v64 | sigB.v0 ) goto propagateNaN; in f128_div() 99 if ( sigB.v64 | sigB.v0 ) goto propagateNaN; in f128_div() 105 if ( ! (sigB.v64 | sigB.v0) ) { in f128_div() 110 normExpSig = softfloat_normSubnormalF128Sig( sigB.v64, sigB.v0 ); in f128_div() 126 if ( softfloat_lt128( sigA.v64, sigA.v0, sigB.v64, sigB.v0 ) ) { in f128_div() 138 term = softfloat_mul128By32( sigB.v64, sigB.v0, q ); in f128_div() 142 rem = softfloat_add128( rem.v64, rem.v0, sigB.v64, sigB.v0 ); in f128_div() 150 term = softfloat_mul128By32( sigB.v64, sigB.v0, q ); in f128_div() 154 rem = softfloat_add128( rem.v64, rem.v0, sigB.v64, sigB.v0 ); in f128_div() [all …]
|
A D | f64_rem.c | 55 uint_fast64_t sigB; in f64_rem() local 76 sigB = fracF64UI( uiB ); in f64_rem() 84 if ( sigB ) goto propagateNaN; in f64_rem() 93 if ( ! sigB ) goto invalid; in f64_rem() 96 sigB = normExpSig.sig; in f64_rem() 111 sigB <<= 9; in f64_rem() 117 q = (sigB <= rem); in f64_rem() 118 if ( q ) rem -= sigB; in f64_rem() 133 sigB <<= 9; in f64_rem() 153 altRem = rem + sigB; in f64_rem() [all …]
|
A D | s_subMagsF32.c | 51 uint_fast32_t sigB; in softfloat_subMagsF32() local 61 sigB = fracF32UI( uiB ); in softfloat_subMagsF32() 64 sigB <<= 7; in softfloat_subMagsF32() 77 if ( sigB < sigA ) goto aBigger; in softfloat_subMagsF32() 78 if ( sigA < sigB ) goto bBigger; in softfloat_subMagsF32() 83 if ( sigB ) goto propagateNaN; in softfloat_subMagsF32() 89 sigB |= 0x40000000; in softfloat_subMagsF32() 93 sigZ = sigB - sigA; in softfloat_subMagsF32() 101 sigB += expB ? 0x40000000 : sigB; in softfloat_subMagsF32() 102 sigB = softfloat_shiftRightJam32( sigB, expDiff ); in softfloat_subMagsF32() [all …]
|
A D | s_subMagsF64.c | 51 uint_fast64_t sigB; in softfloat_subMagsF64() local 61 sigB = fracF64UI( uiB ); in softfloat_subMagsF64() 64 sigB <<= 10; in softfloat_subMagsF64() 77 if ( sigB < sigA ) goto aBigger; in softfloat_subMagsF64() 78 if ( sigA < sigB ) goto bBigger; in softfloat_subMagsF64() 83 if ( sigB ) goto propagateNaN; in softfloat_subMagsF64() 89 sigB |= UINT64_C( 0x4000000000000000 ); in softfloat_subMagsF64() 93 sigZ = sigB - sigA; in softfloat_subMagsF64() 101 sigB += expB ? UINT64_C( 0x4000000000000000 ) : sigB; in softfloat_subMagsF64() 102 sigB = softfloat_shiftRightJam64( sigB, expDiff ); in softfloat_subMagsF64() [all …]
|
A D | f128_mul.c | 56 struct uint128 sigB; in f128_mul() local 82 sigB.v64 = fracF128UI64( uiB64 ); in f128_mul() 83 sigB.v0 = uiB0; in f128_mul() 89 (sigA.v64 | sigA.v0) || ((expB == 0x7FFF) && (sigB.v64 | sigB.v0)) in f128_mul() 93 magBits = expB | sigB.v64 | sigB.v0; in f128_mul() 97 if ( sigB.v64 | sigB.v0 ) goto propagateNaN; in f128_mul() 110 if ( ! (sigB.v64 | sigB.v0) ) goto zero; in f128_mul() 111 normExpSig = softfloat_normSubnormalF128Sig( sigB.v64, sigB.v0 ); in f128_mul() 113 sigB = normExpSig.sig; in f128_mul() 119 sigB = softfloat_shortShiftLeft128( sigB.v64, sigB.v0, 16 ); in f128_mul() [all …]
|
A D | f32_rem.c | 55 uint_fast32_t sigB; in f32_rem() local 74 sigB = fracF32UI( uiB ); in f32_rem() 82 if ( sigB ) goto propagateNaN; in f32_rem() 88 if ( ! sigB ) goto invalid; in f32_rem() 91 sigB = normExpSig.sig; in f32_rem() 102 sigB |= 0x00800000; in f32_rem() 106 sigB <<= 6; in f32_rem() 112 q = (sigB <= rem); in f32_rem() 113 if ( q ) rem -= sigB; in f32_rem() 128 sigB <<= 6; in f32_rem() [all …]
|
A D | f32_div.c | 56 uint_fast32_t sigB; in f32_div() local 81 sigB = fracF32UI( uiB ); in f32_div() 88 if ( sigB ) goto propagateNaN; in f32_div() 94 if ( sigB ) goto propagateNaN; in f32_div() 100 if ( ! sigB ) { in f32_div() 107 sigB = normExpSig.sig; in f32_div() 119 sigB |= 0x00800000; in f32_div() 121 if ( sigA < sigB ) { in f32_div() 127 sigZ = sig64A / sigB; in f32_div() 130 if ( sigA < sigB ) { in f32_div() [all …]
|
A D | f64_div.c | 56 uint_fast64_t sigB; in f64_div() local 78 sigB = fracF64UI( uiB ); in f64_div() 85 if ( sigB ) goto propagateNaN; in f64_div() 91 if ( sigB ) goto propagateNaN; in f64_div() 97 if ( ! sigB ) { in f64_div() 102 normExpSig = softfloat_normSubnormalF64Sig( sigB ); in f64_div() 104 sigB = normExpSig.sig; in f64_div() 116 sigB |= UINT64_C( 0x0010000000000000 ); in f64_div() 117 if ( sigA < sigB ) { in f64_div() 123 sigB <<= 11; in f64_div() [all …]
|
A D | s_addMagsF128.c | 56 struct uint128 sigB; in softfloat_addMagsF128() local 68 sigB.v64 = fracF128UI64( uiB64 ); in softfloat_addMagsF128() 69 sigB.v0 = uiB0; 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() 91 if ( sigB.v64 | sigB.v0 ) goto propagateNaN; in softfloat_addMagsF128() 117 sigB.v64 |= UINT64_C( 0x0001000000000000 ); in softfloat_addMagsF128() 124 softfloat_shiftRightJam128Extra( sigB.v64, sigB.v0, 0, expDiff ); in softfloat_addMagsF128() 125 sigB = sig128Extra.v; in softfloat_addMagsF128() 133 sigB.v64, in softfloat_addMagsF128() [all …]
|
A D | s_addMagsF32.c | 50 uint_fast32_t sigB; in softfloat_addMagsF32() local 60 sigB = fracF32UI( uiB ); in softfloat_addMagsF32() 63 sigB <<= 6; in softfloat_addMagsF32() 66 if ( sigA | sigB ) goto propagateNaN; in softfloat_addMagsF32() 75 sigZ = 0x40000000 + sigA + sigB; in softfloat_addMagsF32() 79 if ( sigB ) goto propagateNaN; in softfloat_addMagsF32() 93 sigB += expB ? 0x20000000 : sigB; in softfloat_addMagsF32() 94 sigB = softfloat_shiftRightJam32( sigB, expDiff ); in softfloat_addMagsF32() 96 sigZ = 0x20000000 + sigA + sigB; in softfloat_addMagsF32()
|
A D | s_addMagsF64.c | 50 uint_fast64_t sigB; in softfloat_addMagsF64() local 60 sigB = fracF64UI( uiB ); in softfloat_addMagsF64() 63 sigB <<= 9; in softfloat_addMagsF64() 66 if ( sigA | sigB ) goto propagateNaN; in softfloat_addMagsF64() 77 sigZ = UINT64_C( 0x4000000000000000 ) + sigA + sigB; in softfloat_addMagsF64() 81 if ( sigB ) goto propagateNaN; in softfloat_addMagsF64() 95 sigB += expB ? UINT64_C( 0x2000000000000000 ) : sigB; in softfloat_addMagsF64() 96 sigB = softfloat_shiftRightJam64( sigB, expDiff ); in softfloat_addMagsF64() 98 sigZ = UINT64_C( 0x2000000000000000 ) + sigA + sigB; in softfloat_addMagsF64()
|
A D | f64_mul.c | 56 uint_fast64_t sigB; in f64_mul() local 80 sigB = fracF64UI( uiB ); in f64_mul() 85 if ( sigA || ((expB == 0x7FF) && sigB) ) goto propagateNaN; in f64_mul() 86 magBits = expB | sigB; in f64_mul() 90 if ( sigB ) goto propagateNaN; in f64_mul() 103 if ( ! sigB ) goto zero; in f64_mul() 104 normExpSig = softfloat_normSubnormalF64Sig( sigB ); in f64_mul() 106 sigB = normExpSig.sig; in f64_mul() 112 sigB = (sigB | UINT64_C( 0x0010000000000000 ))<<11; in f64_mul() 114 sig128Z = softfloat_mul64To128( sigA, sigB ); in f64_mul() [all …]
|
A D | s_compareNonnormExtF80M.c | 50 uint64_t sigB; in softfloat_compareNonnormExtF80M() local 59 sigB = bSPtr->signif; in softfloat_compareNonnormExtF80M() 63 if ( ! (sigA | sigB) ) return 0; in softfloat_compareNonnormExtF80M() 89 if ( ! (sigB & UINT64_C( 0x8000000000000000 )) ) { in softfloat_compareNonnormExtF80M() 90 if ( sigB ) { in softfloat_compareNonnormExtF80M() 91 expB += softfloat_normExtF80SigM( &sigB ); 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 | f32_mul.c | 56 uint_fast32_t sigB; in f32_mul() local 73 sigB = fracF32UI( uiB ); in f32_mul() 76 if ( sigA || ((expB == 0xFF) && sigB) ) goto propagateNaN; in f32_mul() 77 magBits = expB | sigB; in f32_mul() 81 if ( sigB ) goto propagateNaN; in f32_mul() 92 if ( ! sigB ) goto zero; in f32_mul() 93 normExpSig = softfloat_normSubnormalF32Sig( sigB ); in f32_mul() 95 sigB = normExpSig.sig; in f32_mul() 99 sigB = (sigB | 0x00800000)<<8; in f32_mul() 100 sigZ = softfloat_shortShiftRightJam64( (uint_fast64_t) sigA * sigB, 32 ); in f32_mul()
|
A D | extF80_div.c | 58 uint_fast64_t sigB; in extF80_div() local 88 sigB = uiB0; in extF80_div() 107 if ( ! (sigB & UINT64_C( 0x8000000000000000 )) ) { in extF80_div() 108 if ( ! sigB ) { in extF80_div() 115 sigB = normExpSig.sig; in extF80_div() 127 if ( sigA < sigB ) { in extF80_div() 133 recip32 = softfloat_approxRecip32_1( sigB>>32 ); in extF80_div() 142 term = softfloat_mul64ByShifted32To128( sigB, q ); in extF80_div() 146 rem = softfloat_add128( rem.v64, rem.v0, sigB>>32, sigB<<32 ); in extF80_div() 154 term = softfloat_mul64ByShifted32To128( sigB, q ); in extF80_div() [all …]
|
A D | s_addExtF80M.c | 60 uint64_t sigZ, sigB; in softfloat_addExtF80M() local 107 sigB = bSPtr->signif; in softfloat_addExtF80M() 116 extSigX[indexWord( 3, 1 )] = sigB; in softfloat_addExtF80M() 119 sigB = in softfloat_addExtF80M() 123 sigZ -= sigB; in softfloat_addExtF80M() 139 sigZ += sigB; in softfloat_addExtF80M() 149 if ( sigZ < sigB ) { in softfloat_addExtF80M() 151 sigZ = sigB - sigZ; in softfloat_addExtF80M() 153 sigZ -= sigB; in softfloat_addExtF80M() 163 sigZ += sigB; in softfloat_addExtF80M() [all …]
|
A D | s_subMagsExtF80.c | 57 uint_fast64_t sigB; in softfloat_subMagsExtF80() local 71 sigB = uiB0; 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() 101 if ( sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN; in softfloat_subMagsExtF80() 118 sig128 = softfloat_sub128( sigB, 0, sigA, sigExtra ); in softfloat_subMagsExtF80() 134 sig128 = softfloat_shiftRightJam128( sigB, 0, expDiff ); in softfloat_subMagsExtF80() 135 sigB = sig128.v64; in softfloat_subMagsExtF80() 140 sig128 = softfloat_sub128( sigA, 0, sigB, sigExtra ); in softfloat_subMagsExtF80()
|
A D | extF80_rem.c | 58 uint_fast64_t sigB; in extF80_rem() local 84 sigB = uiB0; in extF80_rem() 108 if ( ! (sigB & UINT64_C( 0x8000000000000000 )) ) { in extF80_rem() 109 if ( ! sigB ) goto invalid; in extF80_rem() 110 normExpSig = softfloat_normSubnormalExtF80Sig( sigB ); in extF80_rem() 112 sigB = normExpSig.sig; in extF80_rem() 129 shiftedSigB = softfloat_shortShiftLeft128( 0, sigB, 32 ); in extF80_rem() 136 q = (sigB <= sigA); in extF80_rem() 144 recip32 = softfloat_approxRecip32_1( sigB>>32 ); in extF80_rem() 151 term = softfloat_mul64ByShifted32To128( sigB, q ); in extF80_rem() [all …]
|
A D | f128M_div.c | 68 uint32_t y[5], sigB[4]; in f128M_div() local 102 expB = softfloat_shiftNormSigF128M( bWPtr, 13, sigB ); in f128M_div() 114 if ( softfloat_compare128M( y, sigB ) < 0 ) { in f128M_div() 120 ((uint64_t) sigB[indexWord( 4, 3 )]<<32 | sigB[indexWord( 4, 2 )]) in f128M_div() 129 softfloat_remStep128MBy32( y, 29, sigB, q, y ); in f128M_div() 132 softfloat_add128M( y, sigB, y ); in f128M_div() 139 softfloat_remStep128MBy32( y, 29, sigB, q, y ); in f128M_div() 142 softfloat_add128M( y, sigB, y ); in f128M_div() 143 } else if ( softfloat_compare128M( sigB, y ) <= 0 ) { in f128M_div() 145 softfloat_sub128M( y, sigB, y ); in f128M_div()
|
A D | s_mulAddF128.c | 61 struct uint128 sigB; in softfloat_mulAddF128() local 87 sigB.v64 = fracF128UI64( uiB64 ); in softfloat_mulAddF128() 88 sigB.v0 = uiB0; in softfloat_mulAddF128() 98 (sigA.v64 | sigA.v0) || ((expB == 0x7FFF) && (sigB.v64 | sigB.v0)) in softfloat_mulAddF128() 102 magBits = expB | sigB.v64 | sigB.v0; in softfloat_mulAddF128() 106 if ( sigB.v64 | sigB.v0 ) goto propagateNaN_ABC; in softfloat_mulAddF128() 129 if ( ! (sigB.v64 | sigB.v0) ) goto zeroProd; in softfloat_mulAddF128() 130 normExpSig = softfloat_normSubnormalF128Sig( sigB.v64, sigB.v0 ); in softfloat_mulAddF128() 132 sigB = normExpSig.sig; in softfloat_mulAddF128() 140 sigB = softfloat_shortShiftLeft128( sigB.v64, sigB.v0, 15 ); in softfloat_mulAddF128() [all …]
|
A D | extF80_mul.c | 58 uint_fast64_t sigB; in extF80_mul() local 81 sigB = uiB0; in extF80_mul() 88 || ((expB == 0x7FFF) && (sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF ))) in extF80_mul() 92 magBits = expB | sigB; in extF80_mul() 96 if ( sigB & UINT64_C( 0x7FFFFFFFFFFFFFFF ) ) goto propagateNaN; in extF80_mul() 110 if ( ! (sigB & UINT64_C( 0x8000000000000000 )) ) { in extF80_mul() 111 if ( ! sigB ) goto zero; in extF80_mul() 112 normExpSig = softfloat_normSubnormalExtF80Sig( sigB ); in extF80_mul() 114 sigB = normExpSig.sig; in extF80_mul() 119 sig128Z = softfloat_mul64To128( sigA, sigB ); in extF80_mul()
|
A D | s_mulAddF64.c | 56 uint_fast64_t sigB; in softfloat_mulAddF64() local 78 sigB = fracF64UI( uiB ); in softfloat_mulAddF64() 87 magBits = expB | sigB; in softfloat_mulAddF64() 112 if ( ! sigB ) goto zeroProd; in softfloat_mulAddF64() 115 sigB = normExpSig.sig; in softfloat_mulAddF64() 121 sigB = (sigB | UINT64_C( 0x0010000000000000 ))<<10; in softfloat_mulAddF64() 256 uint64_t sigB; in softfloat_mulAddF64() local 277 sigB = fracF64UI( uiB ); in softfloat_mulAddF64() 286 magBits = expB | sigB; in softfloat_mulAddF64() 314 sigB = normExpSig.sig; in softfloat_mulAddF64() [all …]
|
A D | extF80M_div.c | 72 uint32_t y[3], recip32, sigB[3]; in extF80M_div() local 128 sigB[indexWord( 3, 0 )] = (uint32_t) x64<<30; in extF80M_div() 130 sigB[indexWord( 3, 2 )] = x64>>32; in extF80M_div() 131 sigB[indexWord( 3, 1 )] = x64; in extF80M_div() 138 softfloat_remStep96MBy32( y, 29, sigB, q, y ); in extF80M_div() 141 softfloat_add96M( y, sigB, y ); in extF80M_div() 148 softfloat_remStep96MBy32( y, 29, sigB, q, y ); in extF80M_div() 151 softfloat_add96M( y, sigB, y ); in extF80M_div() 152 } else if ( softfloat_compare96M( sigB, y ) <= 0 ) { in extF80M_div() 154 softfloat_sub96M( y, sigB, y ); in extF80M_div()
|