yml2213
942421d811
feat(vm): 提升器改用"执行流栈快照(DFS)"渲染, 消除跨跳转失步
做了什么:
- _lift_func 重写为两遍:
第一遍: 沿执行流 DFS 传播"求值栈快照"(每条 pc 记录进入时的栈)
第二遍: 按地址序渲染, 块首用快照还原栈
- 新增 _next_pc(): 用规范操作数长度计算后继(含 CREATE_CLOSURE 动态长度)
为什么:
- 原来按"地址序 + 块首清空栈"提升, 表达式跨分支传递时会整体丢失
- 栈机必须在"执行流"上跟踪栈, 而不是地址序
怎么验证:
- XTEA 轮仍可读: r2=(r2+2654435769); r?+=(((r6<<4)^(r6>>>5))+r6)^(r2+r7[((r2>>>11)&3)])
- 闭包图正确: // closure func_9109(p0->r3,p1->r4) caps=[r7<-r8] target=@9109
- 已知残留: 汇合点(多前驱)取首路径栈, 仍会产出少量 r<?> (下一步: phi 合并/对齐运行时轨迹)
2026-10-11 22:17:55 +08:00
..
2026-10-11 22:17:55 +08:00
2026-10-11 19:12:23 +08:00
2026-10-11 21:30:26 +08:00
2026-10-11 21:30:26 +08:00
2026-09-11 23:36:23 +08:00
2026-10-11 19:12:23 +08:00
2026-10-11 21:36:59 +08:00
2026-09-11 22:09:35 +08:00
2026-10-11 21:30:26 +08:00
2026-09-11 22:56:03 +08:00
2026-10-11 21:30:26 +08:00
2026-10-11 19:12:23 +08:00
2026-10-11 18:07:09 +08:00
2026-10-11 21:36:59 +08:00
2026-09-11 22:56:03 +08:00
2026-10-11 19:12:23 +08:00
2026-10-11 20:51:12 +08:00
2026-09-11 23:36:23 +08:00
2026-10-11 21:30:26 +08:00
2026-09-12 10:56:25 +08:00
2026-09-11 22:56:03 +08:00
2026-09-11 23:36:23 +08:00
2026-10-11 19:12:23 +08:00
2026-09-12 11:13:05 +08:00
2026-10-11 18:07:09 +08:00
2026-09-11 23:22:15 +08:00
2026-10-11 18:07:09 +08:00
2026-10-11 21:47:27 +08:00
2026-09-11 22:56:03 +08:00
2026-09-11 22:56:03 +08:00
2026-10-11 22:15:43 +08:00
2026-09-11 22:56:03 +08:00