| 30 | uint32_t z; |
| 31 | uint32_t w; |
| 32 | }; |
| 33 | |
| 34 | void mul_hi_lo(uint32_t lhs, uint32_t rhs, uint32_t & hi, uint32_t & lo) { |
| 35 | const uint64_t product = static_cast<uint64_t>(lhs) * static_cast<uint64_t>(rhs); |
| 36 | lo = static_cast<uint32_t>(product); |
| 37 | hi = static_cast<uint32_t>(product >> 32U); |
| 38 | } |
| 39 |