[backend]更改了commit顺序
This commit is contained in:
@ -188,13 +188,11 @@ std::string RISCv64CodeGen::module_gen() {
|
||||
ss << ".text\n";
|
||||
for (const auto& func_pair : module->getFunctions()) {
|
||||
if (func_pair.second.get() && !func_pair.second->getBasicBlocks().empty()) {
|
||||
if (func_pair.second.get()->getName() == "param16") {foo=1; return std::string(AC::riscv_assembly_text);};
|
||||
ss << function_gen(func_pair.second.get());
|
||||
if (DEBUG) std::cerr << "Function: " << func_pair.first << " generated.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
@ -204,7 +202,6 @@ std::string RISCv64CodeGen::function_gen(Function* func) {
|
||||
// 阶段 1: 指令选择 (sysy::IR -> LLIR with virtual registers)
|
||||
RISCv64ISel isel;
|
||||
std::unique_ptr<MachineFunction> mfunc = isel.runOnFunction(func);
|
||||
|
||||
// 第一次调试打印输出
|
||||
std::stringstream ss_after_isel;
|
||||
RISCv64AsmPrinter printer_isel(mfunc.get());
|
||||
@ -241,18 +238,18 @@ std::string RISCv64CodeGen::function_gen(Function* func) {
|
||||
|
||||
// 首先尝试图着色分配器
|
||||
if (DEBUG) std::cerr << "Attempting Register Allocation with Graph Coloring...\n";
|
||||
if (!foo1) {
|
||||
if (!gc_failed) {
|
||||
RISCv64RegAlloc gc_alloc(mfunc.get());
|
||||
|
||||
bool success_gc = gc_alloc.run();
|
||||
|
||||
if (!success_gc) {
|
||||
gc_failed = 1; // 后续不再尝试图着色分配器
|
||||
std::cerr << "Warning: Graph coloring register allocation failed function '"
|
||||
<< func->getName()
|
||||
<< "'. Switching to Linear Scan allocator."
|
||||
<< std::endl;
|
||||
|
||||
foo1 = 1;
|
||||
RISCv64ISel isel_gc_fallback;
|
||||
mfunc = isel_gc_fallback.runOnFunction(func);
|
||||
EliminateFrameIndicesPass efi_pass_gc_fallback;
|
||||
|
||||
@ -1,644 +0,0 @@
|
||||
#pragma once // 现代 C++ 中推荐的头文件保护符,防止重复包含
|
||||
|
||||
#include <string_view> // 使用 std::string_view 来高效地表示字符串,无需额外内存分配
|
||||
|
||||
namespace AC {
|
||||
|
||||
// 使用 C++17 的 inline constexpr 变量,可以安全地在头文件中定义
|
||||
// 这可以确保即使多个 .cpp 文件包含了这个头文件,也不会出现“多重定义”链接错误
|
||||
// R"ASM(...)ASM" 是原始字符串字面量的语法,括号内的所有内容(包括换行)都会被视为字符串的一部分
|
||||
inline constexpr std::string_view riscv_assembly_text = R"ASM(
|
||||
.text
|
||||
.align 1
|
||||
.globl sort
|
||||
.type sort, @function
|
||||
sort:
|
||||
.LFB0:
|
||||
li a5,0
|
||||
addiw a7,a1,-1
|
||||
.L2:
|
||||
bgt a7,a5,.L6
|
||||
ret
|
||||
.L6:
|
||||
addiw a5,a5,1
|
||||
mv a4,a0
|
||||
mv a3,a5
|
||||
.L3:
|
||||
bne a3,a1,.L5
|
||||
addi a0,a0,4
|
||||
j .L2
|
||||
.L5:
|
||||
lw a2,0(a0)
|
||||
lw a6,4(a4)
|
||||
bge a2,a6,.L4
|
||||
sw a6,0(a0)
|
||||
sw a2,4(a4)
|
||||
.L4:
|
||||
addiw a3,a3,1
|
||||
addi a4,a4,4
|
||||
j .L3
|
||||
.LFE0:
|
||||
.size sort, .-sort
|
||||
.align 1
|
||||
.globl param32_rec
|
||||
.type param32_rec, @function
|
||||
param32_rec:
|
||||
.LFB1:
|
||||
addi sp,sp,-160
|
||||
mv t1,a0
|
||||
lw a0,272(sp)
|
||||
sd s0,152(sp)
|
||||
sd s1,144(sp)
|
||||
sd a0,8(sp)
|
||||
lw a0,280(sp)
|
||||
sd s2,136(sp)
|
||||
sd s3,128(sp)
|
||||
sd a0,16(sp)
|
||||
addi a0,sp,288
|
||||
lw t3,0(a0)
|
||||
sd s4,120(sp)
|
||||
sd s5,112(sp)
|
||||
sd s6,104(sp)
|
||||
sd s7,96(sp)
|
||||
sd s8,88(sp)
|
||||
sd s9,80(sp)
|
||||
sd s10,72(sp)
|
||||
sd s11,64(sp)
|
||||
lw s10,168(sp)
|
||||
lw s11,160(sp)
|
||||
lw s9,176(sp)
|
||||
lw s8,184(sp)
|
||||
lw s7,192(sp)
|
||||
lw s6,200(sp)
|
||||
lw s5,208(sp)
|
||||
lw s4,216(sp)
|
||||
lw s3,224(sp)
|
||||
lw s2,232(sp)
|
||||
lw s1,240(sp)
|
||||
lw s0,248(sp)
|
||||
lw t2,256(sp)
|
||||
lw t0,264(sp)
|
||||
sd t3,24(sp)
|
||||
lw t3,8(a0)
|
||||
lw t6,24(a0)
|
||||
lw t5,32(a0)
|
||||
sd t3,32(sp)
|
||||
lw t3,16(a0)
|
||||
lw t4,40(a0)
|
||||
sd t3,40(sp)
|
||||
lw t3,48(a0)
|
||||
lw a0,56(a0)
|
||||
sd a0,48(sp)
|
||||
mv a0,a1
|
||||
li a1,998244352
|
||||
addiw a1,a1,1
|
||||
sw a1,60(sp)
|
||||
.L9:
|
||||
beq t1,zero,.L10
|
||||
ld a1,16(sp)
|
||||
addw a0,a0,a2
|
||||
lw a2,60(sp)
|
||||
addiw t1,t1,-1
|
||||
remw a0,a0,a2
|
||||
mv a2,a3
|
||||
mv a3,a4
|
||||
mv a4,a5
|
||||
mv a5,a6
|
||||
mv a6,a7
|
||||
mv a7,s11
|
||||
mv s11,s10
|
||||
mv s10,s9
|
||||
mv s9,s8
|
||||
mv s8,s7
|
||||
mv s7,s6
|
||||
mv s6,s5
|
||||
mv s5,s4
|
||||
mv s4,s3
|
||||
mv s3,s2
|
||||
mv s2,s1
|
||||
mv s1,s0
|
||||
mv s0,t2
|
||||
mv t2,t0
|
||||
ld t0,8(sp)
|
||||
sd a1,8(sp)
|
||||
ld a1,24(sp)
|
||||
sd a1,16(sp)
|
||||
ld a1,32(sp)
|
||||
sd a1,24(sp)
|
||||
ld a1,40(sp)
|
||||
sd t6,40(sp)
|
||||
mv t6,t5
|
||||
sd a1,32(sp)
|
||||
mv t5,t4
|
||||
mv t4,t3
|
||||
ld t3,48(sp)
|
||||
sd zero,48(sp)
|
||||
j .L9
|
||||
.L10:
|
||||
ld s0,152(sp)
|
||||
ld s1,144(sp)
|
||||
ld s2,136(sp)
|
||||
ld s3,128(sp)
|
||||
ld s4,120(sp)
|
||||
ld s5,112(sp)
|
||||
ld s6,104(sp)
|
||||
ld s7,96(sp)
|
||||
ld s8,88(sp)
|
||||
ld s9,80(sp)
|
||||
ld s10,72(sp)
|
||||
ld s11,64(sp)
|
||||
addi sp,sp,160
|
||||
jr ra
|
||||
.LFE1:
|
||||
.size param32_rec, .-param32_rec
|
||||
.align 1
|
||||
.globl param32_arr
|
||||
.type param32_arr, @function
|
||||
param32_arr:
|
||||
.LFB2:
|
||||
addi sp,sp,-16
|
||||
sd s0,8(sp)
|
||||
lw s0,0(a0)
|
||||
lw a0,4(a0)
|
||||
ld t2,104(sp)
|
||||
ld t0,112(sp)
|
||||
addw a0,a0,s0
|
||||
lw s0,0(a1)
|
||||
lw a1,4(a1)
|
||||
ld t6,120(sp)
|
||||
addw a0,s0,a0
|
||||
addw a0,a1,a0
|
||||
lw a1,0(a2)
|
||||
ld t5,176(sp)
|
||||
ld t4,184(sp)
|
||||
addw a1,a1,a0
|
||||
lw a0,4(a2)
|
||||
lw a2,0(a3)
|
||||
ld t3,192(sp)
|
||||
addw a0,a0,a1
|
||||
addw a2,a2,a0
|
||||
lw a0,4(a3)
|
||||
lw a3,0(a4)
|
||||
ld t1,200(sp)
|
||||
addw a0,a0,a2
|
||||
addw a3,a3,a0
|
||||
lw a0,4(a4)
|
||||
lw a4,0(a5)
|
||||
addw a0,a0,a3
|
||||
addw a4,a4,a0
|
||||
lw a0,4(a5)
|
||||
lw a5,0(a6)
|
||||
addw a0,a0,a4
|
||||
addw a5,a5,a0
|
||||
lw a0,4(a6)
|
||||
lw a4,4(a7)
|
||||
addw a0,a0,a5
|
||||
lw a5,0(a7)
|
||||
addw a5,a5,a0
|
||||
addw a4,a4,a5
|
||||
ld a5,16(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,16(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,24(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,24(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,32(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,32(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,40(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,40(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,48(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,48(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,56(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,56(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,64(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,64(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,72(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,72(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,80(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,80(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,88(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,88(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,96(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,96(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
lw a5,0(t2)
|
||||
addw a5,a5,a4
|
||||
lw a4,4(t2)
|
||||
addw a4,a4,a5
|
||||
lw a5,0(t0)
|
||||
addw a5,a5,a4
|
||||
lw a4,4(t0)
|
||||
addw a4,a4,a5
|
||||
lw a5,0(t6)
|
||||
addw a5,a5,a4
|
||||
lw a4,4(t6)
|
||||
addw a4,a4,a5
|
||||
ld a5,128(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,128(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,136(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,136(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,144(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,144(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,152(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,152(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,160(sp)
|
||||
lw a5,0(a5)
|
||||
addw a5,a5,a4
|
||||
ld a4,160(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
ld a5,168(sp)
|
||||
lw a5,0(a5)
|
||||
lw a0,4(t1)
|
||||
ld s0,8(sp)
|
||||
|
||||
addw a5,a5,a4
|
||||
ld a4,168(sp)
|
||||
lw a4,4(a4)
|
||||
addw a4,a4,a5
|
||||
lw a5,0(t5)
|
||||
addw a5,a5,a4
|
||||
lw a4,4(t5)
|
||||
addw a4,a4,a5
|
||||
lw a5,0(t4)
|
||||
addw a5,a5,a4
|
||||
lw a4,4(t4)
|
||||
addw a4,a4,a5
|
||||
lw a5,0(t3)
|
||||
addw a5,a5,a4
|
||||
lw a4,4(t3)
|
||||
addw a4,a4,a5
|
||||
lw a5,0(t1)
|
||||
addi sp,sp,16
|
||||
addw a5,a5,a4
|
||||
addw a0,a0,a5
|
||||
jr ra
|
||||
.LFE2:
|
||||
.size param32_arr, .-param32_arr
|
||||
.align 1
|
||||
.globl param16
|
||||
.type param16, @function
|
||||
param16:
|
||||
.LFB3:
|
||||
addi sp,sp,-240
|
||||
sd s3,200(sp)
|
||||
mv s3,a5
|
||||
lw a5,240(sp)
|
||||
sw a2,72(sp)
|
||||
sw a3,76(sp)
|
||||
sd a5,8(sp)
|
||||
lw a5,248(sp)
|
||||
sw a4,80(sp)
|
||||
sd ra,232(sp)
|
||||
sd a5,16(sp)
|
||||
lw a5,256(sp)
|
||||
sd s0,224(sp)
|
||||
sd s1,216(sp)
|
||||
sd a5,24(sp)
|
||||
lw a5,264(sp)
|
||||
sd s2,208(sp)
|
||||
sd s4,192(sp)
|
||||
sd a5,32(sp)
|
||||
lw a5,272(sp)
|
||||
sd s5,184(sp)
|
||||
sd s6,176(sp)
|
||||
sd s7,168(sp)
|
||||
sd s8,160(sp)
|
||||
sd s9,152(sp)
|
||||
sd s10,144(sp)
|
||||
sd s11,136(sp)
|
||||
sd a5,40(sp)
|
||||
sw a0,64(sp)
|
||||
sw a1,68(sp)
|
||||
lw s11,280(sp)
|
||||
lw s10,288(sp)
|
||||
lw s9,296(sp)
|
||||
sw s3,84(sp)
|
||||
ld a5,8(sp)
|
||||
mv s8,a0
|
||||
mv s7,a1
|
||||
sw a5,96(sp)
|
||||
ld a5,16(sp)
|
||||
li a1,16
|
||||
addi a0,sp,64
|
||||
sw a5,100(sp)
|
||||
ld a5,24(sp)
|
||||
mv s6,a2
|
||||
mv s5,a3
|
||||
sw a5,104(sp)
|
||||
ld a5,32(sp)
|
||||
mv s4,a4
|
||||
mv s2,a6
|
||||
sw a5,108(sp)
|
||||
ld a5,40(sp)
|
||||
mv s1,a7
|
||||
sw a6,88(sp)
|
||||
sw a7,92(sp)
|
||||
sw a5,112(sp)
|
||||
sw s11,116(sp)
|
||||
sw s10,120(sp)
|
||||
sw s9,124(sp)
|
||||
call sort
|
||||
lw a1,104(sp)
|
||||
li s0,998244352
|
||||
lw a5,64(sp)
|
||||
sd a1,48(sp)
|
||||
lw a0,68(sp)
|
||||
lw t2,72(sp)
|
||||
lw t0,76(sp)
|
||||
lw t6,80(sp)
|
||||
lw t5,84(sp)
|
||||
lw a6,88(sp)
|
||||
lw a2,92(sp)
|
||||
lw a3,96(sp)
|
||||
lw a4,100(sp)
|
||||
lw t4,108(sp)
|
||||
lw t3,112(sp)
|
||||
lw t1,116(sp)
|
||||
lw a7,120(sp)
|
||||
lw a1,124(sp)
|
||||
addiw s0,s0,1
|
||||
sw s0,60(sp)
|
||||
.L16:
|
||||
beq a5,zero,.L17
|
||||
lw s0,60(sp)
|
||||
addw a0,a0,t2
|
||||
mv t2,t0
|
||||
remw a0,a0,s0
|
||||
ld s0,16(sp)
|
||||
mv t0,t6
|
||||
mv t6,t5
|
||||
mv t5,a6
|
||||
mv a6,a2
|
||||
mv a2,a3
|
||||
mv a3,a4
|
||||
ld a4,48(sp)
|
||||
sd t4,48(sp)
|
||||
mv t4,t3
|
||||
mv t3,t1
|
||||
mv t1,a7
|
||||
mv a7,a1
|
||||
mv a1,s8
|
||||
mv s8,s7
|
||||
mv s7,s6
|
||||
mv s6,s5
|
||||
mv s5,s4
|
||||
mv s4,s3
|
||||
mv s3,s2
|
||||
mv s2,s1
|
||||
ld s1,8(sp)
|
||||
sd s0,8(sp)
|
||||
ld s0,24(sp)
|
||||
addiw a5,a5,-1
|
||||
sd s0,16(sp)
|
||||
ld s0,32(sp)
|
||||
sd s0,24(sp)
|
||||
ld s0,40(sp)
|
||||
sd s11,40(sp)
|
||||
mv s11,s10
|
||||
sd s0,32(sp)
|
||||
mv s10,s9
|
||||
li s9,0
|
||||
j .L16
|
||||
.L17:
|
||||
ld ra,232(sp)
|
||||
ld s0,224(sp)
|
||||
ld s1,216(sp)
|
||||
ld s2,208(sp)
|
||||
ld s3,200(sp)
|
||||
ld s4,192(sp)
|
||||
ld s5,184(sp)
|
||||
ld s6,176(sp)
|
||||
ld s7,168(sp)
|
||||
ld s8,160(sp)
|
||||
ld s9,152(sp)
|
||||
ld s10,144(sp)
|
||||
ld s11,136(sp)
|
||||
addi sp,sp,240
|
||||
jr ra
|
||||
.LFE3:
|
||||
.size param16, .-param16
|
||||
.section .text.startup,"ax",@progbits
|
||||
.align 1
|
||||
.globl main
|
||||
.type main, @function
|
||||
main:
|
||||
.LFB4:
|
||||
addi sp,sp,-608
|
||||
sd ra,600(sp)
|
||||
sd s0,592(sp)
|
||||
sd s1,584(sp)
|
||||
sd s2,576(sp)
|
||||
sd s3,568(sp)
|
||||
sd s4,560(sp)
|
||||
sd s5,552(sp)
|
||||
sd s6,544(sp)
|
||||
sd s7,536(sp)
|
||||
sd s8,528(sp)
|
||||
sd s9,520(sp)
|
||||
sd s10,512(sp)
|
||||
sd s11,504(sp)
|
||||
call getint@plt
|
||||
mv s1,a0
|
||||
call getint@plt
|
||||
mv s2,a0
|
||||
call getint@plt
|
||||
mv s3,a0
|
||||
call getint@plt
|
||||
sd a0,232(sp)
|
||||
call getint@plt
|
||||
sd a0,224(sp)
|
||||
call getint@plt
|
||||
sd a0,216(sp)
|
||||
call getint@plt
|
||||
sd a0,208(sp)
|
||||
call getint@plt
|
||||
sd a0,200(sp)
|
||||
call getint@plt
|
||||
mv s4,a0
|
||||
call getint@plt
|
||||
mv s5,a0
|
||||
call getint@plt
|
||||
mv s6,a0
|
||||
call getint@plt
|
||||
mv s7,a0
|
||||
call getint@plt
|
||||
mv s8,a0
|
||||
call getint@plt
|
||||
mv s9,a0
|
||||
call getint@plt
|
||||
mv s10,a0
|
||||
addi s0,sp,248
|
||||
call getint@plt
|
||||
mv s11,a0
|
||||
li a2,248
|
||||
li a1,0
|
||||
mv a0,s0
|
||||
call memset@plt
|
||||
ld a5,216(sp)
|
||||
ld a3,232(sp)
|
||||
ld a7,200(sp)
|
||||
ld a6,208(sp)
|
||||
ld a4,224(sp)
|
||||
sd s11,56(sp)
|
||||
sd s10,48(sp)
|
||||
sd s9,40(sp)
|
||||
sd s8,32(sp)
|
||||
sd s7,24(sp)
|
||||
sd s6,16(sp)
|
||||
sd s5,8(sp)
|
||||
sd s4,0(sp)
|
||||
mv a2,s3
|
||||
mv a1,s2
|
||||
mv a0,s1
|
||||
call param16
|
||||
li a5,8192
|
||||
addi a5,a5,656
|
||||
sw a5,244(sp)
|
||||
addi a5,sp,240
|
||||
sw a0,240(sp)
|
||||
addi a3,sp,488
|
||||
mv a0,a5
|
||||
.L20:
|
||||
lw a4,4(a5)
|
||||
addiw a4,a4,-1
|
||||
sw a4,8(a5)
|
||||
lw a4,0(a5)
|
||||
addi a5,a5,8
|
||||
addiw a4,a4,-2
|
||||
sw a4,4(a5)
|
||||
bne a5,a3,.L20
|
||||
sd a5,184(sp)
|
||||
addi a5,sp,480
|
||||
sd a5,176(sp)
|
||||
addi a5,sp,472
|
||||
sd a5,168(sp)
|
||||
addi a5,sp,464
|
||||
sd a5,160(sp)
|
||||
addi a5,sp,456
|
||||
sd a5,152(sp)
|
||||
addi a5,sp,448
|
||||
sd a5,144(sp)
|
||||
addi a5,sp,440
|
||||
sd a5,136(sp)
|
||||
addi a5,sp,432
|
||||
sd a5,128(sp)
|
||||
addi a5,sp,424
|
||||
sd a5,120(sp)
|
||||
addi a5,sp,416
|
||||
sd a5,112(sp)
|
||||
addi a5,sp,408
|
||||
sd a5,104(sp)
|
||||
addi a5,sp,400
|
||||
sd a5,96(sp)
|
||||
addi a5,sp,392
|
||||
sd a5,88(sp)
|
||||
addi a5,sp,384
|
||||
sd a5,80(sp)
|
||||
addi a5,sp,376
|
||||
sd a5,72(sp)
|
||||
addi a5,sp,368
|
||||
sd a5,64(sp)
|
||||
addi a5,sp,360
|
||||
sd a5,56(sp)
|
||||
addi a5,sp,352
|
||||
sd a5,48(sp)
|
||||
addi a5,sp,344
|
||||
sd a5,40(sp)
|
||||
addi a5,sp,336
|
||||
sd a5,32(sp)
|
||||
addi a5,sp,328
|
||||
sd a5,24(sp)
|
||||
addi a5,sp,320
|
||||
sd a5,16(sp)
|
||||
addi a5,sp,312
|
||||
sd a5,8(sp)
|
||||
addi a5,sp,304
|
||||
addi a7,sp,296
|
||||
addi a6,sp,288
|
||||
addi a4,sp,272
|
||||
addi a3,sp,264
|
||||
addi a2,sp,256
|
||||
mv a1,s0
|
||||
sd a5,0(sp)
|
||||
addi a5,sp,280
|
||||
call param32_arr
|
||||
call putint@plt
|
||||
li a0,10
|
||||
call putch@plt
|
||||
ld ra,600(sp)
|
||||
ld s0,592(sp)
|
||||
ld s1,584(sp)
|
||||
ld s2,576(sp)
|
||||
ld s3,568(sp)
|
||||
ld s4,560(sp)
|
||||
ld s5,552(sp)
|
||||
ld s6,544(sp)
|
||||
ld s7,536(sp)
|
||||
ld s8,528(sp)
|
||||
ld s9,520(sp)
|
||||
ld s10,512(sp)
|
||||
ld s11,504(sp)
|
||||
li a0,0
|
||||
addi sp,sp,608
|
||||
jr ra
|
||||
)ASM";
|
||||
|
||||
} // namespace AssemblyCode
|
||||
@ -26,7 +26,7 @@ private:
|
||||
unsigned getTypeSizeInBytes(Type* type);
|
||||
|
||||
Module* module;
|
||||
int foo = 0, foo1 = 0;
|
||||
bool gc_failed = false;
|
||||
};
|
||||
|
||||
} // namespace sysy
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
#include "PrologueEpilogueInsertion.h"
|
||||
#include "EliminateFrameIndices.h"
|
||||
#include "DivStrengthReduction.h"
|
||||
#include "OFE.h"
|
||||
|
||||
namespace sysy {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user