Skip to main content

byteflow/jit/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum CompileError {
5    #[error("cranelift backend: {0}")]
6    Backend(String),
7    #[error("trace empty at function {function} pc {pc}")]
8    EmptyTrace { function: u32, pc: u32 },
9    #[error("undefined register {reg} at pc {pc}")]
10    UndefinedRegister { reg: u8, pc: u32 },
11    #[error("unsupported opcode {opcode:?} at pc {pc}")]
12    UnsupportedOpcode {
13        opcode: crate::Opcode,
14        pc: u32,
15    },
16    #[error("trace longer than {limit} at pc {pc}")]
17    TraceTooLong { pc: u32, limit: usize },
18    #[error("module error: {0}")]
19    Module(String),
20}