From c4b511baf457933adc315a7ebad3a0c2e0fa3e2a Mon Sep 17 00:00:00 2001 From: Nicholas Ward Date: Tue, 14 Mar 2023 14:28:21 -0700 Subject: [PATCH] addressed comments --- evm/src/cpu/kernel/asm/bignum/shr.asm | 10 ++++++++++ evm/src/cpu/kernel/interpreter.rs | 4 +++- evm/src/cpu/kernel/tests/bignum.rs | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/evm/src/cpu/kernel/asm/bignum/shr.asm b/evm/src/cpu/kernel/asm/bignum/shr.asm index 5e3a56ef..399b372e 100644 --- a/evm/src/cpu/kernel/asm/bignum/shr.asm +++ b/evm/src/cpu/kernel/asm/bignum/shr.asm @@ -4,6 +4,11 @@ // Shifts a given bignum right by one bit (in place). // Assumes that len > 0. global shr_bignum: + // stack: len, start_loc, retdest + DUP1 + // stack: len, len, start_loc, retdest + ISZERO + %jumpi(shr_end_len_zero) // stack: len, start_loc, retdest DUP2 // stack: start_loc, len, start_loc, retdest @@ -55,3 +60,8 @@ shr_end: %pop3 // stack: retdest JUMP +shr_end_len_zero: + // stack: len, start_loc, retdest + %pop2 + // stack: retdest + JUMP diff --git a/evm/src/cpu/kernel/interpreter.rs b/evm/src/cpu/kernel/interpreter.rs index b0d3a784..d856bc2b 100644 --- a/evm/src/cpu/kernel/interpreter.rs +++ b/evm/src/cpu/kernel/interpreter.rs @@ -770,7 +770,9 @@ impl<'a> Interpreter<'a> { fn run_mload_general(&mut self) { let context = self.pop().as_usize(); let segment = Segment::all()[self.pop().as_usize()]; - let offset = self.pop().as_usize(); + let x = self.pop(); + dbg!(x); + let offset = x.as_usize(); let value = self .generation_state .memory diff --git a/evm/src/cpu/kernel/tests/bignum.rs b/evm/src/cpu/kernel/tests/bignum.rs index eb1726db..ce030b54 100644 --- a/evm/src/cpu/kernel/tests/bignum.rs +++ b/evm/src/cpu/kernel/tests/bignum.rs @@ -29,7 +29,7 @@ fn gen_bignum(bit_size: usize) -> BigUint { } fn bignum_len(a: &BigUint) -> usize { - a.bits() as usize / BIGNUM_LIMB_BITS + 1 + ceil_div_usize(a.bits() as usize, BIGNUM_LIMB_BITS) } fn gen_two_bignums_ordered(bit_size: usize) -> (BigUint, BigUint) {