|
|
4f40f0d5e4
|
feat(mir): 添加寄存器分配 pass 支持
- 实现了核心寄存器分配接口 scc_reg_alloc.h
- 添加 x86_64 架构特定的寄存器分配实现
- 实现基础的虚拟寄存器到物理寄存器分配逻辑
- 支持栈槽分配和重载/存储指令生成
fix(argparse): 修复帮助信息打印中的枚举类型显示
- 将固定大小缓冲区改为动态字符串处理
- 正确显示枚举类型的选项值和可选值列表
- 使用 | 分隔符展示多个可选值
refactor(main): 调整编译流程中的 pass 阶段支持
- 更新配置文件中各编译阶段的名称定义
- 添加对寄存器分配、帧布局等中间表示 pass 的支持
- 重构主流程以支持不同 MIR 阶段的代码输出
|
2026-05-11 13:18:58 +08:00 |
|
|
|
902ee6dea3
|
feat(argparse): 添加枚举类型选项支持
添加了对命令行参数枚举类型的支持,允许用户从预定义的选项中进行选择,
并在解析时进行验证。同时修复了空值检查问题。
refactor(mir): 重构pass管理系统
将原有的pass管理器系统简化为直接的pass执行函数,移除了复杂的
依赖管理和流水线构建机制,使系统更加简洁明了。
chore(ir): 添加Windows x64 ABI实现
实现了Windows x64平台的ABI约定,包括参数传递、寄存器使用和
栈帧布局的处理逻辑。
feat(config): 统一编译阶段控制配置
将多个独立的布尔类型编译阶段控制改为统一的枚举类型,便于
管理和扩展新的编译阶段。
|
2026-05-10 15:02:36 +08:00 |
|
|
|
e5cb70732e
|
feat(lir): 添加函数参数操作数类型支持
添加 SCC_LIR_INSTR_KIND_ARG 枚举值用于表示函数参数操作数,
修改 scc_lir_instr 结构体以支持参数类型的值存储,
新增 SCC_LIR_ARG 宏定义用于创建参数操作数,
更新 HIR 到 LIR 的转换逻辑以正确处理函数参数引用。
BREAKING CHANGE: 修改了 LIR 指令格式以支持参数操作数类型。
refactor(mir): 重命名并重构 x86_64 指令选择模块
将 mir_x86.c 重命名为 arch/x86_64_isel.c,
创建新的头文件 arch/x86_64_isel.h,
重构结构体名称为 scc_x86_64_isel_t,
统一函数命名前缀为 scc_x86_,
移除重复的包含头文件。
feat(abi): 添加 ABI 降低框架接口定义
定义 scc_abi_lowering_t 结构体用于 ABI 降低功能,
提供函数指针类型定义用于调用、返回、参数等处理,
为后续实现不同平台 ABI 支持奠定基础。
fix(x86): 支持参数操作数的 MIR 转换
更新 lir_val_to_mir_op 函数以处理 SCC_LIR_INSTR_KIND_ARG 类型,
通过 ABI 降低框架获取参数的实际物理位置,
修复移位运算和除法运算中的函数调用命名。
test: 更新测试用例期望值
调整多个测试用例的期望返回值,
修改字符串字面量和循环条件以匹配新的预期行为,
确保测试用例与编译器功能变化保持一致。
|
2026-05-07 20:07:27 +08:00 |
|