refactor(ast2ir): 重构ABI类型系统并修复union结构问题

- 将scc_ast_def.h中的attr_of从union改为struct以修复结构定义问题
- 添加type_abi依赖到ast2ir模块的cbuild.toml配置文件中
- 重命名scc_ast2ir.h中的abi字段为type_abi,并更新相关初始化函数签名
- 移除废弃的scc_abi_type.h和相关平台ABI头文件
- 添加辅助函数is_variadic_marker和fixed_param_count用于处理可变参数
- 添加数组和聚合类型初始化的辅助函数
This commit is contained in:
zzy
2026-06-01 12:14:13 +08:00
parent 8b817da3b6
commit 31d7e91ef1
45 changed files with 1918 additions and 1551 deletions

View File

@@ -9,7 +9,6 @@
#include <x86/scc_x86_reg.h>
scc_x86_reg_t mir_x86_trans_gpr(scc_x86_reg_t reg, u8 size) {
size *= 8;
if (size == 0) {
return reg;
}
@@ -77,7 +76,7 @@ void mir_x86_to_mcode(scc_mcode_t *mcode, scc_reloc_vec_t *relocs,
}
} else if (op_ptr->kind == SCC_X86_OPR_REG) {
ops[i].kind = SCC_X86_OPR_REG;
ops[i].reg = mir_x86_trans_gpr(op_ptr->reg, op_ptr->size);
ops[i].reg = mir_x86_trans_gpr(op_ptr->reg, op_ptr->size_bits);
} else {
ops[i] = *op_ptr;
}