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}