| 41 | #ifndef softfloat_shiftRightJam128 |
| 42 | |
| 43 | struct uint128 |
| 44 | softfloat_shiftRightJam128( uint64_t a64, uint64_t a0, uint_fast32_t dist ) |
| 45 | { |
| 46 | uint_fast8_t u8NegDist; |
| 47 | struct uint128 z; |
| 48 | |
| 49 | if ( dist < 64 ) { |
| 50 | u8NegDist = -dist; |
| 51 | z.v64 = a64>>dist; |
| 52 | z.v0 = |
| 53 | a64<<(u8NegDist & 63) | a0>>dist |
| 54 | | ((uint64_t) (a0<<(u8NegDist & 63)) != 0); |
| 55 | } else { |
| 56 | z.v64 = 0; |
| 57 | z.v0 = |
| 58 | (dist < 127) |
| 59 | ? a64>>(dist & 63) |
| 60 | | (((a64 & (((uint_fast64_t) 1<<(dist & 63)) - 1)) | a0) |
| 61 | != 0) |
| 62 | : ((a64 | a0) != 0); |
| 63 | } |
| 64 | return z; |
| 65 | |
| 66 | } |
| 67 | |
| 68 | #endif |
| 69 |
no outgoing calls
no test coverage detected