From f8987b7e80cd9b1e60806889d5adeef03bc4e48e Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Thu, 7 Jul 2022 18:20:24 +0200 Subject: [PATCH] Minor --- evm/src/cpu/kernel/interpreter.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/evm/src/cpu/kernel/interpreter.rs b/evm/src/cpu/kernel/interpreter.rs index c1f69108..a099a48b 100644 --- a/evm/src/cpu/kernel/interpreter.rs +++ b/evm/src/cpu/kernel/interpreter.rs @@ -12,7 +12,8 @@ pub fn run(code: &[u8], initial_offset: usize, initial_stack: Vec) -> Vec< offset: initial_offset, stack: initial_stack, }; - while interpreter.offset < interpreter.code.len() { + // Halt the execution if a jump to 0xdeadbeef was done. + while interpreter.offset != 0xdeadbeef { interpreter.run_opcode(); } interpreter.stack @@ -292,8 +293,9 @@ mod tests { #[test] fn test_run() { - // PUSH1 1 PUSH1 2 ADD - let code = vec![0x60, 0x1, 0x60, 0x2, 0x1]; + let code = vec![ + 0x60, 0x1, 0x60, 0x2, 0x1, 0x63, 0xde, 0xad, 0xbe, 0xef, 0x56, + ]; // PUSH1, 1, PUSH1, 2, ADD, PUSH4 deadbeef, JUMP assert_eq!(run(&code, 0, vec![]), vec![0x3.into()]); } }