#ifndef __SMCC_CC_BACKEND_H__ #define __SMCC_CC_BACKEND_H__ // TODO Use Maroc to choice architecture #ifndef __SMCC_CC_NO_RISCV32__ #include "riscv32/riscv32.h" #endif // #ifndef __SMCC_CC_NO_X86_32__ // #include "x86_32/x86_32.h" // #endif // TODO 统一 汇编器 接口 #include #include "../middleend/ir/ir.h" typedef enum cc_arch { CC_ARCH_RISCV32, CC_ARCH_X86_32 } cc_arch_t; typedef union asm_prog asm_prog_t; int gen_asm_from_ir(ir_prog_t* ir, cc_arch_t arch, asm_prog_t* asm_prog); typedef struct cc_backend_conf { cc_arch_t arch; } cc_backend_conf_t; asm_prog_t* cc_backend(ir_prog_t* ir, cc_backend_conf_t* conf); #endif