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:
+1
-1
@@ -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` 冻下面六种):
|
||||
|
||||
Reference in New Issue
Block a user