From 265c3bd7bb3eac701976a5fd318673e2bde3a362 Mon Sep 17 00:00:00 2001 From: Vectorized Date: Sun, 29 Dec 2024 20:23:09 +0000 Subject: [PATCH] Optimize --- src/utils/LibBytes.sol | 9 +++++---- src/utils/g/LibBytes.sol | 16 ++++++++-------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/utils/LibBytes.sol b/src/utils/LibBytes.sol index 9da22dd279..06b3b07c8a 100644 --- a/src/utils/LibBytes.sol +++ b/src/utils/LibBytes.sol @@ -624,11 +624,12 @@ library LibBytes { for { let i := 0x20 } 1 {} { let x := mload(add(a, i)) let y := mload(add(b, i)) - if or(xor(x, y), eq(i, n)) { - result := sub(gt(x, y), lt(x, y)) - break + if iszero(or(xor(x, y), eq(i, n))) { + i := add(i, 0x20) + continue } - i := add(i, 0x20) + result := sub(gt(x, y), lt(x, y)) + break } } // forgefmt: disable-next-item diff --git a/src/utils/g/LibBytes.sol b/src/utils/g/LibBytes.sol index 4aa3802abe..24088c1c48 100644 --- a/src/utils/g/LibBytes.sol +++ b/src/utils/g/LibBytes.sol @@ -628,19 +628,19 @@ library LibBytes { for { let i := 0x20 } 1 {} { let x := mload(add(a, i)) let y := mload(add(b, i)) - if or(xor(x, y), eq(i, n)) { - result := sub(gt(x, y), lt(x, y)) - break + if iszero(or(xor(x, y), eq(i, n))) { + i := add(i, 0x20) + continue } - i := add(i, 0x20) + result := sub(gt(x, y), lt(x, y)) + break } } // forgefmt: disable-next-item if iszero(result) { - let x := and(mload(add(add(a, 0x20), n)), - not(shr(mul(7, sub(aLen, n)), shr(sub(aLen, n), not(result))))) - let y := and(mload(add(add(b, 0x20), n)), - not(shr(mul(7, sub(bLen, n)), shr(sub(bLen, n), not(result))))) + let l := 0x201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201 + let x := and(mload(add(add(a, 0x20), n)), shl(shl(3, byte(sub(aLen, n), l)), not(0))) + let y := and(mload(add(add(b, 0x20), n)), shl(shl(3, byte(sub(bLen, n), l)), not(0))) result := sub(gt(x, y), lt(x, y)) if iszero(result) { result := sub(gt(aLen, bLen), lt(aLen, bLen)) } }