diff --git a/evm/src/cpu/kernel/aggregator.rs b/evm/src/cpu/kernel/aggregator.rs index 75e7e0ac..196341f9 100644 --- a/evm/src/cpu/kernel/aggregator.rs +++ b/evm/src/cpu/kernel/aggregator.rs @@ -48,18 +48,19 @@ pub(crate) fn combined_kernel() -> Kernel { let files = vec![ include_str!("asm/assertions.asm"), include_str!("asm/basic_macros.asm"), + include_str!("asm/curve/bn254/curve_add.asm"), + include_str!("asm/curve/bn254/curve_mul.asm"), + include_str!("asm/curve/bn254/moddiv.asm"), + include_str!("asm/curve/common.asm"), + include_str!("asm/curve/secp256k1/curve_mul.asm"), + include_str!("asm/curve/secp256k1/curve_add.asm"), + include_str!("asm/curve/secp256k1/ecrecover.asm"), + include_str!("asm/curve/secp256k1/inverse_scalar.asm"), + include_str!("asm/curve/secp256k1/lift_x.asm"), + include_str!("asm/curve/secp256k1/moddiv.asm"), include_str!("asm/exp.asm"), - include_str!("asm/curve_mul.asm"), - include_str!("asm/curve_add.asm"), include_str!("asm/halt.asm"), include_str!("asm/memory.asm"), - include_str!("asm/moddiv.asm"), - include_str!("asm/secp256k1/curve_mul.asm"), - include_str!("asm/secp256k1/curve_add.asm"), - include_str!("asm/secp256k1/moddiv.asm"), - include_str!("asm/secp256k1/lift_x.asm"), - include_str!("asm/secp256k1/inverse_scalar.asm"), - include_str!("asm/ecrecover.asm"), include_str!("asm/rlp/encode.asm"), include_str!("asm/rlp/decode.asm"), include_str!("asm/rlp/read_to_memory.asm"), @@ -78,19 +79,17 @@ pub(crate) fn combined_kernel() -> Kernel { #[cfg(test)] mod tests { + use env_logger::{try_init_from_env, Env, DEFAULT_FILTER_ENV}; use log::debug; use crate::cpu::kernel::aggregator::combined_kernel; #[test] fn make_kernel() { - let _ = env_logger::Builder::from_default_env() - .format_timestamp(None) - .try_init(); + let _ = try_init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "debug")); // Make sure we can parse and assemble the entire kernel. let kernel = combined_kernel(); debug!("Total kernel size: {} bytes", kernel.code.len()); - dbg!("Total kernel size: {} bytes", kernel.code.len()); } } diff --git a/evm/src/cpu/kernel/asm/curve_add.asm b/evm/src/cpu/kernel/asm/curve/bn254/curve_add.asm similarity index 100% rename from evm/src/cpu/kernel/asm/curve_add.asm rename to evm/src/cpu/kernel/asm/curve/bn254/curve_add.asm diff --git a/evm/src/cpu/kernel/asm/curve_mul.asm b/evm/src/cpu/kernel/asm/curve/bn254/curve_mul.asm similarity index 92% rename from evm/src/cpu/kernel/asm/curve_mul.asm rename to evm/src/cpu/kernel/asm/curve/bn254/curve_mul.asm index d976d9d5..62cf2235 100644 --- a/evm/src/cpu/kernel/asm/curve_mul.asm +++ b/evm/src/cpu/kernel/asm/curve/bn254/curve_mul.asm @@ -99,16 +99,3 @@ odd_scalar: JUMPDEST // stack: x', y', x, y, retdest %jump(ec_add_valid_points) - -global ret_zero_ec_mul: - JUMPDEST - // stack: x, y, s, retdest - %pop3 - // stack: retdest - PUSH 0 - // stack: 0, retdest - PUSH 0 - // stack: 0, 0, retdest - SWAP2 - // stack: retdest, 0, 0 - JUMP diff --git a/evm/src/cpu/kernel/asm/moddiv.asm b/evm/src/cpu/kernel/asm/curve/bn254/moddiv.asm similarity index 100% rename from evm/src/cpu/kernel/asm/moddiv.asm rename to evm/src/cpu/kernel/asm/curve/bn254/moddiv.asm diff --git a/evm/src/cpu/kernel/asm/curve/common.asm b/evm/src/cpu/kernel/asm/curve/common.asm new file mode 100644 index 00000000..107dc63c --- /dev/null +++ b/evm/src/cpu/kernel/asm/curve/common.asm @@ -0,0 +1,12 @@ +global ret_zero_ec_mul: + JUMPDEST + // stack: x, y, s, retdest + %pop3 + // stack: retdest + PUSH 0 + // stack: 0, retdest + PUSH 0 + // stack: 0, 0, retdest + SWAP2 + // stack: retdest, 0, 0 + JUMP diff --git a/evm/src/cpu/kernel/asm/secp256k1/curve_add.asm b/evm/src/cpu/kernel/asm/curve/secp256k1/curve_add.asm similarity index 100% rename from evm/src/cpu/kernel/asm/secp256k1/curve_add.asm rename to evm/src/cpu/kernel/asm/curve/secp256k1/curve_add.asm diff --git a/evm/src/cpu/kernel/asm/secp256k1/curve_mul.asm b/evm/src/cpu/kernel/asm/curve/secp256k1/curve_mul.asm similarity index 100% rename from evm/src/cpu/kernel/asm/secp256k1/curve_mul.asm rename to evm/src/cpu/kernel/asm/curve/secp256k1/curve_mul.asm diff --git a/evm/src/cpu/kernel/asm/ecrecover.asm b/evm/src/cpu/kernel/asm/curve/secp256k1/ecrecover.asm similarity index 100% rename from evm/src/cpu/kernel/asm/ecrecover.asm rename to evm/src/cpu/kernel/asm/curve/secp256k1/ecrecover.asm diff --git a/evm/src/cpu/kernel/asm/secp256k1/inverse_scalar.asm b/evm/src/cpu/kernel/asm/curve/secp256k1/inverse_scalar.asm similarity index 100% rename from evm/src/cpu/kernel/asm/secp256k1/inverse_scalar.asm rename to evm/src/cpu/kernel/asm/curve/secp256k1/inverse_scalar.asm diff --git a/evm/src/cpu/kernel/asm/secp256k1/lift_x.asm b/evm/src/cpu/kernel/asm/curve/secp256k1/lift_x.asm similarity index 100% rename from evm/src/cpu/kernel/asm/secp256k1/lift_x.asm rename to evm/src/cpu/kernel/asm/curve/secp256k1/lift_x.asm diff --git a/evm/src/cpu/kernel/asm/secp256k1/moddiv.asm b/evm/src/cpu/kernel/asm/curve/secp256k1/moddiv.asm similarity index 100% rename from evm/src/cpu/kernel/asm/secp256k1/moddiv.asm rename to evm/src/cpu/kernel/asm/curve/secp256k1/moddiv.asm