refactor: 拆分 oxide_ir 为独立 crate

This commit is contained in:
2026-08-05 19:34:44 +08:00
parent 3ae2eeee42
commit 4f670eb7fd
46 changed files with 105 additions and 85 deletions
+22
View File
@@ -0,0 +1,22 @@
//! 类型安全操作数。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,
}