Integer storage optimization

This commit is contained in:
Eugen Wissner 2017-04-30 16:07:44 +02:00
parent 4fa47153ba
commit 65c3ca14ec
2 changed files with 879 additions and 606 deletions

File diff suppressed because it is too large Load Diff

View File

@ -90,18 +90,19 @@ body
size_t i; size_t i;
auto tmp1 = Integer(x, x.allocator); auto tmp1 = Integer(x, x.allocator);
auto result = Integer(x.allocator); auto result = Integer(x.allocator);
bool firstBit;
if (x.length == 0 && y.length != 0) if (x.size == 0 && y.size != 0)
{ {
i = y.length; i = y.size;
} }
else else
{ {
result = 1; result = 1;
} }
while (i < y.length) while (i < y.size)
{ {
for (ubyte mask = 0x01; mask; mask <<= 1) for (uint mask = 0x01; mask != 0x10000000; mask <<= 1)
{ {
if (y.rep[i] & mask) if (y.rep[i] & mask)
{ {