阶段4-3:executor V2 适配(cur_instr_bytes/slot_addr,修 V1 定宽槽残留)

This commit is contained in:
2026-08-26 10:20:46 +08:00
parent 5eda33fed6
commit bc10307e0a
+3 -3
View File
@@ -129,7 +129,7 @@ namespace {
* @return 低字节非零 → 1,否则 0
*/
int slot_bool(vm::Machine& m, uint32_t slot) {
return m.data()[static_cast<size_t>(slot) * 8] ? 1 : 0;
return m.data()[m.slot_addr(slot)] ? 1 : 0;
}
/**
@@ -139,7 +139,7 @@ namespace {
* @param v 0/1(非零归一化为 1
*/
void put_bool(vm::Machine& m, uint32_t slot, int v) {
m.data()[static_cast<size_t>(slot) * 8] = v ? 1 : 0;
m.data()[m.slot_addr(slot)] = v ? 1 : 0;
}
/**
@@ -301,7 +301,7 @@ int main(int argc, char** argv) {
uint32_t guard = 0;
while (machine.fault() == vm::Fault::None && !machine.ended()) {
char buf[64];
isa::disasm(machine.cur_instr(), buf, sizeof buf);
isa::disasm(machine.cur_instr_bytes(), machine.cur_instr_len(), buf, sizeof buf);
const uint32_t pc = machine.pc();
const uint32_t fn = machine.fn_id();
if (!machine.step()) {