Files
Interpreter/Doc/isa/阶段4-执行侧V2.md
T

45 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阶段 4/5:执行侧 V2 与全链路(待办清单)
> 状态:**待办**。阶段 3(编译器语言层 V2)已完成;本文记录阶段 4(isa+vm 执行侧 V2
> 与阶段 5(全链路收尾)的待办项,供后续执行。
## 阶段 4:isa 重构 + vm 同步(执行侧 V2)
### 4.1 isa 重构(4 文件 + isa_test
| 文件 | 内容 |
|---|---|
| `isa/include/isa/Types.h` | func 宽度/符号表(`kFuncWidth[16]`/`kFuncSigned[16]`)+ 饱和模板(各宽度 + 除法 A:除零返回被除数、MIN/-1 夹界、截断)+ 浮点工具;**删 TypeTag** |
| `isa/include/isa/Op.h` | 前缀分区(11/10/011/010xxx/0010/0011/0001+ 指令表(prefix/op/fmt/func_mode,与 machine.toml 72 条对应)+ **uses_rd/ra/rb 前缀直推**(编译期表) |
| `isa/include/isa/Instr.h` | 变长 `instr_len`(前缀定长)+ 位号 get/set**注意 JC off@55..24**+ enc_* 发射器 |
| `isa/src/Encode.cpp` | encode/decode/disasm(类型后缀;CAL 显示 fb 名) |
| `tests/isa_test.cpp` | V2 重写:饱和边界/前缀定长/位号往返(含 JC off/disasm/uses_* |
### 4.2 vm 同步(Image + Machine + vm_test
| 文件 | 内容 |
|---|---|
| `vm/include/vm/Image.h` + `vm/src/Image.cpp` | 头 128B 解析(version=2/型号 STATOR2/n_slots/values_size/offset_meta/max_stack)、6 段校验(含 meta=0 空段)、槽表访问器(slot_addr)、常量表 8B 无 tag |
| `vm/include/vm/Machine.h` + `vm/src/Machine.cpp` | **变长取指**(instr_len 前缀定长搬字节);译码(前缀分区+func+uses_* 直推);**槽表两级访问**slot→addr→值区按 func 读宽/扩展、写宽);指令语义(MOVE 按 func 宽度搬运高位清 0、LOADK 按 func、算术**各宽度饱和模板+无符号+浮点 IEEE**、CMP 按 func 符号、跳转 off 字节相对下一条、CALL/RET 帧 r0..r7 全宽+ret_pc 字节);**CAL 15 条 fb_id 分派**(含 SR/RS/PWM/RTCRTC 虚拟时钟=周期×dt_ms);**栈方案 C**(预分配 max_stack、帧头 12B、字节+深度 64 双检查、MAIN 帧常驻);LOAD_OFF/STORE_OFF 字段访问;边沿检测 edge_prev_ |
| `tests/vm_test.cpp` | V2 重写:手拼 V2 映像 + **compiler V2 产物执行**13 正例 run_cycle 断言)+ TON/CTU + 确定性 |
### 4.3 executor 适配
- `executor/src/main.cpp`Image 新接口(max_stack 显示等)、I/Q 采样按槽、链 vm+isa(isa 变 V2 后适配)
### 4.4 验证
- `vm_cycles` 恢复绿;`bytecode_executor_version` 恢复
- 端到端:`STCompiler 20_line1 → BytecodeExecutor` 跑周期,Q 符合真值表
## 阶段 5:全链路 + 文档收尾
| # | 待办 |
|---|---|
| 1 | `cases_all` 恢复(20 用例 V2 产物 + V2 vm 执行)——阶段 4 完成后预期自动恢复 |
| 2 | **C5line1 推演重算**V2 产物逐指令推演,补 `stb文件格式.md` 真实拆解) |
| 3 | line1 端到端验证(编译 + 执行 + 回放,Q 对照 EXPECTED.md |
| 4 | **文档收尾**:指令执行.md(V2 指令表/帧栈/CAL 15 条)、扫描周期.md、初步计划.md、README、编译器优化.md 同步 V2 状态 |
| 5 | 新类型语法用例固化(19 类型/进制/浮点/日期字面量用例进 tests/cases |
| 6 | 分支合并(dev_optimize → dev)——用户决定时机 |