feat(ast2ir): 添加AST到IR转换功能并完善类型ABI支持
- 添加了ast2ir库用于将AST转换为IR中间表示 - 实现了Windows x64 ABI类型定义文件 - 完善了IR库中的类型定义,添加了无符号整数类型和操作符枚举 - 更新了IR转储功能以支持新的节点类型 - 在主程序中集成了AST到IR的转换流程 - 修改了PE目标文件生成功能以修正节区标志 - 更新了向量实现的日志和错误处理机制 fix(ir): 修复IR库中的操作符枚举和类型处理问题 - 修复了IR操作符枚举的命名空间问题,统一使用SCC_IR前缀 - 添加了无符号整数类型的哈希和比较支持 - 修正了常量整数节点的打印函数调用 - 更新了各种IR节点的转储输出格式 - 删除了测试文件中的冗余代码 refactor: 重构项目依赖配置和构建设置 - 启用了ast2ir和ir库的依赖配置 - 添加了def文件到.gitignore中 - 重命名了部分测试文件
This commit is contained in:
@@ -47,7 +47,7 @@ int main() {
|
||||
u32 idata_size = scc_pe_reserve_idata(&idata_builder);
|
||||
scc_pe_section_range idata_range = scc_pe_reserve_section_header(
|
||||
&builder, (BYTE *)".idata\0",
|
||||
IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_READ |
|
||||
IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ |
|
||||
IMAGE_SCN_MEM_WRITE,
|
||||
idata_size, idata_size);
|
||||
scc_vec_at(builder.image_data_directory_vec, IMAGE_DIRECTORY_ENTRY_IMPORT) =
|
||||
@@ -97,6 +97,5 @@ int main() {
|
||||
scc_pe_write_section(&builder, &idata_range,
|
||||
scc_vec_unsafe_get_data(idata_buffer),
|
||||
scc_vec_size(idata_buffer));
|
||||
|
||||
scc_pe_dump_to_file(&builder, "hello_world.exe");
|
||||
}
|
||||
|
||||
@@ -32,8 +32,8 @@ static void scc_winpe_hnt_builder_push(scc_winpe_hnt_builder_t *builder,
|
||||
scc_hashtable_set(&builder->str_map, name, (void *)(u64)builder->data.size);
|
||||
|
||||
/// FIXME WARNING需要转换为little endian
|
||||
scc_vec_push(builder->data, hint >> 8);
|
||||
scc_vec_push(builder->data, hint & 0xff);
|
||||
scc_vec_push(builder->data, hint >> 8);
|
||||
|
||||
while (*name) {
|
||||
scc_vec_push(builder->data, *name);
|
||||
|
||||
Reference in New Issue
Block a user