more general kernel peek

This commit is contained in:
Dmitry Vagner 2023-02-19 16:05:39 -08:00
parent b89e668b55
commit 5e3e40a094
2 changed files with 11 additions and 8 deletions

View File

@ -11,7 +11,8 @@ use crate::generation::prover_input::EvmField::{
};
use crate::generation::prover_input::FieldOp::{Inverse, Sqrt};
use crate::generation::state::GenerationState;
use crate::witness::util::{kernel_general_peek, stack_peek};
use crate::memory::segments::Segment::BnPairing;
use crate::witness::util::{kernel_peek, stack_peek};
/// Prover input function represented as a scoped function name.
/// Example: `PROVER_INPUT(ff::bn254_base::inverse)` is represented as `ProverInputFn([ff, bn254_base, inverse])`.
@ -71,7 +72,7 @@ impl<F: Field> GenerationState<F> {
Bn254Base => {
let mut f: [U256; 12] = [U256::zero(); 12];
for i in 0..12 {
f[i] = kernel_general_peek(self, ptr + i);
f[i] = kernel_peek(self, BnPairing, ptr + i);
}
f
}

View File

@ -40,12 +40,14 @@ pub(crate) fn stack_peek<F: Field>(state: &GenerationState<F>, i: usize) -> Opti
}
/// Peek at the SEGMENT_KERNEL_BN_PAIRING item at address `i`
pub(crate) fn kernel_general_peek<F: Field>(state: &GenerationState<F>, i: usize) -> U256 {
state.memory.get(MemoryAddress::new(
state.registers.context,
Segment::BnPairing,
i,
))
pub(crate) fn kernel_peek<F: Field>(
state: &GenerationState<F>,
segment: Segment,
virt: usize,
) -> U256 {
state
.memory
.get(MemoryAddress::new(state.registers.context, segment, virt))
}
pub(crate) fn mem_read_with_log<F: Field>(