openvm_instructions/phantom.rs
1use strum::FromRepr;
2
3#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
4pub struct PhantomDiscriminant(pub u16);
5
6/// Phantom instructions owned by the system. These are handled in the `ExecutionSegment`, as opposed to the `PhantomChip`.
7#[derive(Copy, Clone, Debug, PartialEq, Eq, FromRepr)]
8#[repr(u16)]
9pub enum SysPhantom {
10 /// Does nothing at constraint and runtime level besides advance pc by [DEFAULT_PC_STEP](super::program::DEFAULT_PC_STEP).
11 Nop = 0,
12 /// Causes the runtime to panic, on host machine and prints a backtrace.
13 DebugPanic,
14 /// Start tracing
15 CtStart,
16 /// End tracing
17 CtEnd,
18}