From ea135341e8e82d4550beebbbd253769550c92e73 Mon Sep 17 00:00:00 2001 From: Nicholas Ward Date: Thu, 29 Sep 2022 23:35:02 -0700 Subject: [PATCH 1/2] MSIZE --- evm/src/cpu/kernel/interpreter.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/evm/src/cpu/kernel/interpreter.rs b/evm/src/cpu/kernel/interpreter.rs index 7577b974..7075b4d0 100644 --- a/evm/src/cpu/kernel/interpreter.rs +++ b/evm/src/cpu/kernel/interpreter.rs @@ -263,7 +263,7 @@ impl<'a> Interpreter<'a> { 0x56 => self.run_jump(), // "JUMP", 0x57 => self.run_jumpi(), // "JUMPI", 0x58 => todo!(), // "GETPC", - 0x59 => todo!(), // "MSIZE", + 0x59 => self.run_msize(), // "MSIZE", 0x5a => todo!(), // "GAS", 0x5b => self.run_jumpdest(), // "JUMPDEST", 0x5c => todo!(), // "GET_STATE_ROOT", @@ -511,6 +511,14 @@ impl<'a> Interpreter<'a> { } } + fn run_msize(&mut self) { + let num_u256s = self.memory.context_memory[0].segments[Segment::MainMemory as usize] + .content + .len(); + let num_bytes = num_u256s * 32; + self.push(U256::from(num_bytes)); + } + fn run_jumpdest(&mut self) { assert!(!self.kernel_mode, "JUMPDEST is not needed in kernel code"); } From f6ff07840f1d2c90348ffdf0412150e07c0e7cce Mon Sep 17 00:00:00 2001 From: Nicholas Ward Date: Fri, 30 Sep 2022 09:05:18 -0700 Subject: [PATCH 2/2] fixes --- evm/src/cpu/kernel/interpreter.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evm/src/cpu/kernel/interpreter.rs b/evm/src/cpu/kernel/interpreter.rs index 7075b4d0..fef15a4a 100644 --- a/evm/src/cpu/kernel/interpreter.rs +++ b/evm/src/cpu/kernel/interpreter.rs @@ -512,10 +512,10 @@ impl<'a> Interpreter<'a> { } fn run_msize(&mut self) { - let num_u256s = self.memory.context_memory[0].segments[Segment::MainMemory as usize] + let num_bytes = self.memory.context_memory[self.context].segments + [Segment::MainMemory as usize] .content .len(); - let num_bytes = num_u256s * 32; self.push(U256::from(num_bytes)); }