12.8 切片 3:NOT 与短路 AND/OR(编跳转)。

- 短路模式:<lhs→rd> JF(AND)/JT(OR) rd, L_end <rhs→t> MOVE rd, t L_end:
- patch_jump 回填偏移;约定相对下一条指令(目标 = 当前 + 1 + off),冻结进 isa 规格
- codegen_test:71 断言(用例 03 跳转序列 JF/JT +2、NOT 序列),ctest 9/9
This commit is contained in:
2026-08-21 11:40:53 +08:00
parent ac411e6a4a
commit e7dee50cde
3 changed files with 126 additions and 17 deletions
+1 -1
View File
@@ -82,7 +82,7 @@ C++20 定宽:
- 三寄存器:`a`/`b``ra`/`rb``MOVE`/`NOT` 只用 `rd`+`a`
- `LOADK``a|b``const_id`u16
- `JMP` / `JT` / `JF``a|b` 为有符号相对 offset(指令条数)
- `JMP` / `JT` / `JF``a|b` 为有符号相对 offset(指令条数),**相对下一条指令**:目标下标 = 当前下标 + 1 + off
- `CALL``a|b``fn_id`u16
操作码一次列全(`CMP_xx` 冻下面六种):