feat: 新增 DEFINE_ACCESSOR_DYNAMIC opcode 支持计算键对象访问器

This commit is contained in:
2026-08-10 23:28:18 +08:00
parent 078688070d
commit b44bc3d7f2
8 changed files with 110 additions and 22 deletions
+10
View File
@@ -236,6 +236,16 @@ fn rewrite_inst(
}
ext
}
// DEFINE_ACCESSOR_DYNAMIC:ext[0] 是 key 寄存器(高位标记 `0x8000_0000 | vreg`),
// 低 31 位重映射后保留高位标记。
OpCode::DEFINE_ACCESSOR_DYNAMIC => {
let mut ext = inst.ext.clone();
if let Some(word) = ext.first_mut() {
let nr = remap_ext_reg(*word & 0x7FFF_FFFF, slot_color, map);
*word = 0x8000_0000 | nr;
}
ext
}
_ => inst.ext.clone(),
};
// 调用点首参槽改指 arg_window_base(桥接后)