//! 类型安全操作数。IR 中不出现裸寄存器下标。 //! //! - `Reg(u32)`:寄存器。本阶段存物理号(≤253);254/255 为 VM 保留,语义由 `This`/`NewTarget` 表达 //! - `Const(u16)`:常量池下标 //! - `Label(u32)`:跳转目标(`LabelId`) //! - `Imm(u16)`:立即数 //! - `This` / `NewTarget`:语义化特殊寄存器,由 lowering 映射物理 254/255(IR 中禁止裸下标) //! - `None`:操作数槽未使用 /// 统一跳转目标标识(取代语义化 `Label` 枚举)。 pub type LabelId = u32; #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Operand { Reg(u32), Const(u16), Label(u32), Imm(u16), This, NewTarget, None, }