阶段3-2:codegen_test V2 重写(去 isa 依赖,L5 范围断言)

- build_case 完整编译管线(parse→load→link(cfg)→check(cfg)→codegen(cfg))
- disasm_lines 按 instr_len 迭代生成指令文本
- 7 用例断言:头字段(version=2/STATOR2/max_stack/n_slots/values_size)、
  常量表 8B 无 tag、CAL.TON/STORE_OFF 字段访问、CALL+max_stack、
  line1 全链路(n_slots=5:4 全局+1 实例)、跳转回填、全局初值
- CMake 恢复 codegen_test(链 compiler 去 isa);ctest 12/14
This commit is contained in:
2026-08-26 09:31:53 +08:00
parent 6be2873c88
commit 8ded7090c8
2 changed files with 217 additions and 663 deletions
+10 -11
View File
@@ -78,17 +78,16 @@ target_compile_definitions(typecheck_test PRIVATE
add_test(NAME typecheck_types
COMMAND typecheck_test)
# TODO(V2): 阶段 3 重写 codegen_test(用 compiler::Codec 断言 V2 产物,去 isa 依赖)
# 寄存器码测试(12.8 切片 1):用例 01/02 出映像(REPO_ROOT 注入源目录绝对路径)
# add_executable(codegen_test
# ./src/codegen_test.cpp)
#
# target_link_libraries(codegen_test PRIVATE compiler isa)
# target_compile_definitions(codegen_test PRIVATE
# REPO_ROOT="${CMAKE_SOURCE_DIR}")
#
# add_test(NAME codegen_slice1
# COMMAND codegen_test)
# 寄存器码测试(V2):用例产物结构断言(用 compiler::Codec,去 isa 依赖)
add_executable(codegen_test
./src/codegen_test.cpp)
target_link_libraries(codegen_test PRIVATE compiler)
target_compile_definitions(codegen_test PRIVATE
REPO_ROOT="${CMAKE_SOURCE_DIR}")
add_test(NAME codegen_slice1
COMMAND codegen_test)
# VM 测试:手工映像 + 编译器产物 + 定时器 + 确定性(REPO_ROOT 注入源目录绝对路径)
add_executable(vm_test