openvm_instructions/
phantom.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strum::FromRepr;

#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PhantomDiscriminant(pub u16);

/// Phantom instructions owned by the system. These are handled in the `ExecutionSegment`, as opposed to the `PhantomChip`.
#[derive(Copy, Clone, Debug, PartialEq, Eq, FromRepr)]
#[repr(u16)]
pub enum SysPhantom {
    /// Does nothing at constraint and runtime level besides advance pc by [DEFAULT_PC_STEP](super::program::DEFAULT_PC_STEP).
    Nop = 0,
    /// Causes the runtime to panic, on host machine and prints a backtrace.
    DebugPanic,
    /// Start tracing
    CtStart,
    /// End tracing
    CtEnd,
}