[backend] incorrect asm output

This commit is contained in:
ladev789
2025-06-22 20:00:03 +08:00
parent 4711fb603b
commit 88a561177d
4 changed files with 182 additions and 70 deletions

View File

@@ -19,6 +19,7 @@ private:
// 物理寄存器
enum class PhysicalReg {
S0, // x8, 帧指针
T0, T1, T2, T3, T4, T5, T6, // x5-x7, x28-x31
A0, A1, A2, A3, A4, A5, A6, A7 // x10-x17
};
@@ -53,7 +54,7 @@ private:
std::string module_gen();
std::string function_gen(Function* func);
std::string basicBlock_gen(BasicBlock* bb, const RegAllocResult& alloc);
std::vector<RISCv32Inst> instruction_gen(Instruction* inst);
std::vector<std::string> instruction_gen(Instruction* inst, const RegAllocResult& alloc);
RegAllocResult register_allocation(Function* func);
void eliminate_phi(Function* func);
std::map<Instruction*, std::set<Value*>> liveness_analysis(Function* func);