diff --git a/.github/actions/patch-openvm-eth/action.yml b/.github/actions/patch-openvm-eth/action.yml index ac9cb60629..739bfd25c7 100644 --- a/.github/actions/patch-openvm-eth/action.yml +++ b/.github/actions/patch-openvm-eth/action.yml @@ -9,7 +9,7 @@ runs: with: repository: powdr-labs/openvm-eth # Set once here — no inputs required elsewhere. - ref: b4204ea4e28298744088492b24062bf247cec122 + ref: 8746acfbd251368cdbefc014079f7267c4524865 path: openvm-eth - name: Patch openvm-eth to use local powdr diff --git a/Cargo.toml b/Cargo.toml index cd7d28e440..dd36fb4910 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,41 +49,41 @@ powdr-openvm-riscv-hints-transpiler = { path = "./openvm-riscv/extensions/hints- powdr-openvm-riscv-hints-circuit = { path = "./openvm-riscv/extensions/hints-circuit", version = "0.1.4" } # openvm -openvm = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-build = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-rv32im-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-rv32im-transpiler = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-rv32im-guest = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1", default-features = false } -openvm-transpiler = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-circuit-derive = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-circuit-primitives = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-circuit-primitives-derive = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-instructions = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-instructions-derive = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-sdk = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1", default-features = false, features = [ +openvm = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-build = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-rv32im-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-rv32im-transpiler = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-rv32im-guest = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp", default-features = false } +openvm-transpiler = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-circuit-derive = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-circuit-primitives = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-circuit-primitives-derive = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-instructions = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-instructions-derive = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-sdk = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp", default-features = false, features = [ "parallel", "jemalloc", ] } -openvm-sdk-config = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-ecc-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-ecc-transpiler = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-keccak256-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-keccak256-transpiler = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-sha2-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-sha2-transpiler = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-algebra-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-algebra-transpiler = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-bigint-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-bigint-transpiler = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-pairing-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-pairing-transpiler = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-native-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1", default-features = false } -openvm-native-recursion = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1", default-features = false } -openvm-platform = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-custom-insn = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-poseidon2-air = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } -openvm-deferral-circuit = { git = "https://github.com/powdr-labs/openvm.git", tag = "v2.0.0-beta.2-powdr.1" } +openvm-sdk-config = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-ecc-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-ecc-transpiler = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-keccak256-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-keccak256-transpiler = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-sha2-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-sha2-transpiler = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-algebra-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-algebra-transpiler = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-bigint-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-bigint-transpiler = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-pairing-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-pairing-transpiler = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-native-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp", default-features = false } +openvm-native-recursion = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp", default-features = false } +openvm-platform = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-custom-insn = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-poseidon2-air = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } +openvm-deferral-circuit = { git = "https://github.com/powdr-labs/openvm.git", branch = "first-class-fp" } # stark-backend openvm-stark-sdk = { git = "https://github.com/powdr-labs/stark-backend.git", tag = "v2.0.0-beta.2-powdr", default-features = false, features = [ diff --git a/openvm-riscv/extensions/hints-circuit/src/executors.rs b/openvm-riscv/extensions/hints-circuit/src/executors.rs index 7dfcbc9384..466d2fc512 100644 --- a/openvm-riscv/extensions/hints-circuit/src/executors.rs +++ b/openvm-riscv/extensions/hints-circuit/src/executors.rs @@ -1,4 +1,4 @@ -use openvm_circuit::arch::{PhantomSubExecutor, Streams}; +use openvm_circuit::arch::{PhantomSubExecutor, Streams, EXTRA_EXEC_REGS}; use openvm_circuit::system::memory::online::GuestMemory; use openvm_instructions::riscv::RV32_MEMORY_AS; use openvm_instructions::PhantomDiscriminant; @@ -18,6 +18,7 @@ impl PhantomSubExecutor for ReverseBytesSubEx { memory: &GuestMemory, streams: &mut Streams, _: &mut StdRng, + _extra_regs: [u32; EXTRA_EXEC_REGS], _: PhantomDiscriminant, a: u32, _: u32, @@ -58,6 +59,7 @@ impl PhantomSubExecutor for K256InverseFieldSubEx { memory: &GuestMemory, streams: &mut Streams, _: &mut StdRng, + _extra_regs: [u32; EXTRA_EXEC_REGS], _: PhantomDiscriminant, a: u32, _: u32, @@ -103,6 +105,7 @@ impl PhantomSubExecutor for K256InverseField10x26SubEx { memory: &GuestMemory, streams: &mut Streams, _: &mut StdRng, + _extra_regs: [u32; EXTRA_EXEC_REGS], _: PhantomDiscriminant, a: u32, _: u32, @@ -150,6 +153,7 @@ impl PhantomSubExecutor for K256SqrtField10x26SubEx { memory: &GuestMemory, streams: &mut Streams, _: &mut StdRng, + _extra_regs: [u32; EXTRA_EXEC_REGS], _: PhantomDiscriminant, a: u32, _: u32, diff --git a/openvm/src/powdr_extension/executor/mod.rs b/openvm/src/powdr_extension/executor/mod.rs index 9c097d73af..9aade6082f 100644 --- a/openvm/src/powdr_extension/executor/mod.rs +++ b/openvm/src/powdr_extension/executor/mod.rs @@ -465,6 +465,7 @@ impl PreflightExecutor> // Extract the state components, since `execute` consumes the state but we need to pass it to each instruction execution let VmStateMut { pc, + extra_regs, memory, streams, rng, @@ -503,6 +504,7 @@ impl PreflightExecutor> let state = VmStateMut { pc, + extra_regs, memory, streams, rng, @@ -537,6 +539,7 @@ impl PreflightExecutor for PowdrExec // Extract the state components, since `execute` consumes the state but we need to pass it to each instruction execution let VmStateMut { pc, + extra_regs, memory, streams, rng, @@ -575,6 +578,7 @@ impl PreflightExecutor for PowdrExec let state = VmStateMut { pc, + extra_regs, memory, streams, rng,