From b62bc35d646d0d64050e4cc66d4eeb1e2f8117c9 Mon Sep 17 00:00:00 2001 From: Nicholas Ward Date: Thu, 16 Mar 2023 11:39:19 -0700 Subject: [PATCH] fixes --- evm/src/cpu/kernel/asm/bignum/cmp.asm | 5 +++++ evm/src/cpu/kernel/tests/bignum/mod.rs | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/evm/src/cpu/kernel/asm/bignum/cmp.asm b/evm/src/cpu/kernel/asm/bignum/cmp.asm index ff8fb3e6..840fceff 100644 --- a/evm/src/cpu/kernel/asm/bignum/cmp.asm +++ b/evm/src/cpu/kernel/asm/bignum/cmp.asm @@ -4,6 +4,11 @@ // Compares two bignums of the same given length. Assumes that len > 0. // Returns 1 if a > b, 0 if a == b, and -1 (that is, 2^256 - 1) if a < b. global cmp_bignum: + // stack: len, a_start_loc, b_start_loc, retdest + DUP1 + // stack: len, len, a_start_loc, b_start_loc, retdest + ISZERO + %jumpi(equal) // stack: len, a_start_loc, b_start_loc, retdest SWAP1 // stack: a_start_loc, len, b_start_loc, retdest diff --git a/evm/src/cpu/kernel/tests/bignum/mod.rs b/evm/src/cpu/kernel/tests/bignum/mod.rs index 67240d70..12772db7 100644 --- a/evm/src/cpu/kernel/tests/bignum/mod.rs +++ b/evm/src/cpu/kernel/tests/bignum/mod.rs @@ -171,7 +171,9 @@ fn test_add_bignum(a: BigUint, b: BigUint, expected_output: BigUint) -> Result<( if carry_limb > 0.into() { new_memory[len] = carry_limb; } - let output = mem_vec_to_biguint(&new_memory[a_start_loc..a_start_loc + len]); + + let expected_output = biguint_to_mem_vec(expected_output); + let output = &new_memory[a_start_loc..a_start_loc + expected_output.len()]; assert_eq!(output, expected_output); Ok(())