mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 10:32:29 +00:00
feat(big): add ExtractLowPartLargeSum
This commit is contained in:
parent
4d3651134c
commit
f01c906aa1
3 changed files with 57 additions and 0 deletions
|
|
@ -58,6 +58,14 @@ uint32_t ExtractLowPart(uint64_t& value) {
|
|||
return low;
|
||||
}
|
||||
|
||||
uint32_t ExtractLowPartLargeSum(uint64_t& value, uint64_t add) {
|
||||
auto carry = (value += add) < add;
|
||||
auto low = ExtractLowPart(value);
|
||||
value += static_cast<uint64_t>(carry) << 32;
|
||||
|
||||
return low;
|
||||
}
|
||||
|
||||
uint32_t ExtractLowPartSx(uint64_t& value) {
|
||||
auto low = static_cast<uint32_t>(value);
|
||||
value >>= 32;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ void Div(BigBuffer& a, uint32_t* b, const BigBuffer& c, uint64_t d);
|
|||
|
||||
uint32_t ExtractLowPart(uint64_t& value);
|
||||
|
||||
uint32_t ExtractLowPartLargeSum(uint64_t& value, uint64_t add);
|
||||
|
||||
uint32_t ExtractLowPartSx(uint64_t& value);
|
||||
|
||||
void FromBinary(BigBuffer& buffer, const void* value, uint32_t bytes);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue