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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user