plonky2/evm/src/cpu/kernel/aggregator.rs
2022-07-01 18:28:22 +02:00

32 lines
857 B
Rust

//! Loads each kernel assembly file and concatenates them.
use itertools::Itertools;
use super::assembler::{assemble, Kernel};
use crate::cpu::kernel::parser::parse;
#[allow(dead_code)] // TODO: Should be used once witness generation is done.
pub(crate) fn combined_kernel() -> Kernel {
let files = vec![
include_str!("asm/basic_macros.asm"),
include_str!("asm/exp.asm"),
include_str!("asm/curve_add.asm"),
include_str!("asm/storage_read.asm"),
include_str!("asm/storage_write.asm"),
];
let parsed_files = files.iter().map(|f| parse(f)).collect_vec();
assemble(parsed_files)
}
#[cfg(test)]
mod tests {
use crate::cpu::kernel::aggregator::combined_kernel;
#[test]
fn make_kernel() {
// Make sure we can parse and assemble the entire kernel.
combined_kernel();
}
}