sysy-data/functional_c/asm/85_long_code.s

686 lines
9.2 KiB
ArmAsm

.file "85_long_code.sy"
.option pic
.attribute arch, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.align 1
.type QuickSort.part.0, @function
QuickSort.part.0:
addi sp,sp,-32
sd s1,8(sp)
sd s2,0(sp)
sd ra,24(sp)
sd s0,16(sp)
mv s1,a0
mv s2,a2
.L12:
slli a5,a1,2
add a5,s1,a5
lw a7,0(a5)
mv a4,s2
mv a3,a1
mv s0,a1
bge a1,s2,.L3
.L2:
slli a5,a4,2
add a5,s1,a5
j .L10
.L5:
addiw a4,a4,-1
beq a4,a3,.L22
.L10:
lw a6,0(a5)
addi a5,a5,-4
bge a6,a7,.L5
slli a5,a3,2
add a0,s1,a5
addiw s0,a3,1
ble a4,a3,.L4
slli t1,a4,2
add t1,s1,t1
lw a3,0(t1)
sw a3,0(a0)
ble a4,s0,.L24
addi a5,a5,4
add a5,s1,a5
j .L7
.L9:
addi a5,a5,4
beq a4,s0,.L25
.L7:
lw a6,0(a5)
mv a3,s0
addiw s0,s0,1
blt a6,a7,.L9
ble a4,a3,.L15
sw a6,0(t1)
addiw a4,a4,-1
bgt a4,a3,.L2
.L15:
mv s0,a3
j .L3
.L25:
slli a5,s0,2
add a5,s1,a5
.L3:
sw a7,0(a5)
addiw a2,s0,-1
bge a1,a2,.L11
mv a0,s1
call QuickSort.part.0
.L11:
addiw a1,s0,1
blt a1,s2,.L12
ld ra,24(sp)
ld s0,16(sp)
ld s1,8(sp)
ld s2,0(sp)
addi sp,sp,32
jr ra
.L24:
mv a3,s0
.L22:
slli a5,a3,2
.L4:
add a5,s1,a5
mv s0,a3
j .L3
.size QuickSort.part.0, .-QuickSort.part.0
.align 1
.globl bubblesort
.type bubblesort, @function
bubblesort:
lla t3,.LANCHOR0
lw a7,0(t3)
li a5,1
li t1,0
li t4,1
ble a7,a5,.L28
.L27:
subw a3,a7,t1
mv a1,a3
mv a5,a0
li a4,0
ble a3,t4,.L31
.L32:
lw a2,0(a5)
lw a3,4(a5)
addiw a6,a1,-1
ble a2,a3,.L29
sw a3,0(a5)
sw a2,4(a5)
lw a7,0(t3)
addiw a4,a4,1
addi a5,a5,4
subw a1,a7,t1
addiw a3,a1,-1
bgt a3,a4,.L32
.L31:
addiw t1,t1,1
addiw a5,a7,-1
bgt a5,t1,.L27
.L28:
li a0,0
ret
.L29:
addiw a4,a4,1
addi a5,a5,4
bgt a6,a4,.L32
addiw t1,t1,1
addiw a5,a7,-1
bgt a5,t1,.L27
j .L28
.size bubblesort, .-bubblesort
.align 1
.globl insertsort
.type insertsort, @function
insertsort:
lla t1,.LANCHOR0
lw a5,0(t1)
li a6,1
mv a7,a0
li a1,-1
ble a5,a6,.L47
.L42:
lw a2,4(a7)
addiw a4,a6,-1
mv a5,a7
j .L39
.L41:
sw a3,4(a5)
addiw a4,a4,-1
addi a5,a5,-4
beq a4,a1,.L44
.L39:
lw a3,0(a5)
bgt a3,a2,.L41
addiw a5,a4,1
slli a5,a5,2
add a5,a0,a5
.L40:
sw a2,0(a5)
lw a5,0(t1)
addiw a6,a6,1
addi a7,a7,4
bgt a5,a6,.L42
.L47:
li a0,0
ret
.L44:
mv a5,a0
j .L40
.size insertsort, .-insertsort
.align 1
.globl QuickSort
.type QuickSort, @function
QuickSort:
bge a1,a2,.L51
addi sp,sp,-16
sd ra,8(sp)
call QuickSort.part.0
ld ra,8(sp)
li a0,0
addi sp,sp,16
jr ra
.L51:
li a0,0
ret
.size QuickSort, .-QuickSort
.align 1
.globl getMid
.type getMid, @function
getMid:
lw a4,.LANCHOR0
srliw a5,a4,31
addw a5,a5,a4
sraiw a5,a5,1
slli a5,a5,2
add a5,a0,a5
andi a4,a4,1
lw a0,0(a5)
bne a4,zero,.L55
lw a5,-4(a5)
addw a5,a5,a0
srliw a0,a5,31
addw a0,a0,a5
sraiw a0,a0,1
.L55:
ret
.size getMid, .-getMid
.align 1
.globl getMost
.type getMost, @function
getMost:
addi sp,sp,-2032
sd s0,2016(sp)
sd s1,2008(sp)
mv s0,a0
li s1,4096
li a0,-4096
addi a2,s1,-96
addi a0,a0,96
add a5,a2,a0
sd ra,2024(sp)
sd s2,2000(sp)
addi sp,sp,-2000
add a0,a5,sp
li a1,0
call memset@plt
lw a5,.LANCHOR0
ble a5,zero,.L60
slli a5,a5,2
li s2,4096
add a6,s0,a5
addi a5,s2,-96
add a5,a5,sp
mv a3,s0
li a0,0
li a7,0
sub t1,a5,s1
.L59:
lw a1,0(a3)
addi a3,a3,4
slli a5,a1,2
add a5,t1,a5
lw a4,96(a5)
addiw a2,a4,1
sw a2,96(a5)
ble a2,a7,.L58
mv a0,a1
mv a7,a2
.L58:
bne a6,a3,.L59
addi sp,sp,2000
ld ra,2024(sp)
ld s0,2016(sp)
ld s1,2008(sp)
ld s2,2000(sp)
addi sp,sp,2032
jr ra
.L60:
addi sp,sp,2000
ld ra,2024(sp)
ld s0,2016(sp)
ld s1,2008(sp)
ld s2,2000(sp)
li a0,0
addi sp,sp,2032
jr ra
.size getMost, .-getMost
.align 1
.globl revert
.type revert, @function
revert:
li a0,0
ret
.size revert, .-revert
.align 1
.globl arrCopy
.type arrCopy, @function
arrCopy:
lla a3,.LANCHOR0
lw a5,0(a3)
ble a5,zero,.L65
li a5,0
.L66:
lw a4,0(a0)
addiw a5,a5,1
addi a0,a0,4
sw a4,0(a1)
lw a4,0(a3)
addi a1,a1,4
bgt a4,a5,.L66
.L65:
li a0,0
ret
.size arrCopy, .-arrCopy
.align 1
.globl calSum
.type calSum, @function
calSum:
lla a6,.LANCHOR0
lw a5,0(a6)
ble a5,zero,.L75
addiw a7,a1,-1
li a4,0
.L76:
li a2,0
.L73:
remw a3,a4,a1
lw a5,0(a0)
addw a2,a5,a2
beq a3,a7,.L77
sw zero,0(a0)
lw a5,0(a6)
addiw a4,a4,1
addi a0,a0,4
bgt a5,a4,.L73
.L75:
li a0,0
ret
.L77:
sw a2,0(a0)
lw a5,0(a6)
addiw a4,a4,1
addi a0,a0,4
bgt a5,a4,.L76
li a0,0
ret
.size calSum, .-calSum
.align 1
.globl avgPooling
.type avgPooling, @function
avgPooling:
lla t1,.LANCHOR0
lw a4,0(t1)
li t4,0
ble a4,zero,.L79
addiw t3,a1,-1
mv a3,a0
negw a2,a1
li a5,0
li a7,0
.L83:
bge a5,t3,.L80
lw a6,0(a3)
addw a7,a6,a7
.L81:
addiw a5,a5,1
addi a3,a3,4
addiw a2,a2,1
blt a5,a4,.L83
.L79:
subw a1,a4,a1
addiw a5,a1,1
slli a3,a5,2
add a0,a0,a3
bge a5,a4,.L90
.L85:
sw zero,0(a0)
lw a4,0(t1)
addiw a5,a5,1
addi a0,a0,4
bgt a4,a5,.L85
.L90:
li a0,0
ret
.L80:
addi a4,a2,1
slli a4,a4,2
add a4,a0,a4
beq a5,t3,.L91
lw a6,0(a3)
addw a6,a6,a7
subw a7,a6,t4
divw t5,a7,a1
lw t4,0(a4)
sw t5,0(a4)
lw a4,0(t1)
j .L81
.L91:
divw a4,a7,a1
lw t4,0(a0)
sw a4,0(a0)
lw a4,0(t1)
j .L81
.size avgPooling, .-avgPooling
.section .text.startup,"ax",@progbits
.align 1
.globl main
.type main, @function
main:
addi sp,sp,-320
sd s0,304(sp)
sd s1,296(sp)
li s0,13
li s1,23
li t2,127
li t0,5
li t6,273
li t5,905
li t4,657
li t3,33
li t1,459
li a7,17
li a6,189
li a0,279
li a1,87
li a2,9
li a3,7
li a5,145
slli s1,s1,32
slli s0,s0,33
slli t2,t2,33
slli t0,t0,32
slli t6,t6,32
slli t5,t5,32
slli t4,t4,32
slli t3,t3,35
slli t1,t1,32
slli a7,a7,34
slli a6,a6,34
slli a0,a0,32
slli a1,a1,32
slli a2,a2,34
slli a3,a3,34
slli a5,a5,33
sd s2,288(sp)
sd s3,280(sp)
sd s4,272(sp)
sd s5,264(sp)
addi a4,sp,128
addi a6,a6,929
addi a5,a5,1
sd ra,312(sp)
lla s4,.LANCHOR0
mv s5,sp
li s2,32
addi s1,s1,7
addi s0,s0,89
addi t2,t2,282
addi t0,t0,27
addi t6,t6,83
addi t5,t5,574
addi t4,t4,354
addi t3,t3,935
addi t1,t1,639
addi a7,a7,29
addi a0,a0,452
addi a1,a1,58
addi a2,a2,96
addi a3,a3,39
sd a6,80(sp)
sd a5,120(sp)
sw s2,0(s4)
sd s1,0(sp)
sd s0,8(sp)
sd t2,16(sp)
sd t0,24(sp)
sd t6,32(sp)
sd t5,40(sp)
sd t4,48(sp)
sd t3,56(sp)
sd t1,64(sp)
sd a7,72(sp)
sd a0,88(sp)
sd a1,96(sp)
sd a2,104(sp)
sd a3,112(sp)
mv a5,s5
mv s3,a4
mv a6,a4
.L93:
ld a0,0(a5)
ld a1,8(a5)
ld a2,16(a5)
ld a3,24(a5)
sd a0,0(a4)
sd a1,8(a4)
sd a2,16(a4)
sd a3,24(a4)
addi a5,a5,32
addi a4,a4,32
bne a5,a6,.L93
mv s1,s3
addi s0,sp,256
mv s2,s3
.L94:
lw a0,0(s2)
addi s2,s2,4
call putint@plt
bne s2,s0,.L94
mv a0,s3
call bubblesort
mv s2,s3
.L95:
lw a0,0(s2)
addi s2,s2,4
call putint@plt
bne s2,s0,.L95
lw a4,0(s4)
srliw a5,a4,31
addw a5,a5,a4
sraiw a5,a5,1
slli a5,a5,2
addi a5,a5,256
add a5,a5,sp
andi a4,a4,1
lw a0,-128(a5)
bne a4,zero,.L96
lw a5,-132(a5)
addw a0,a5,a0
li a5,2
divw a0,a0,a5
.L96:
call putint@plt
mv a0,s3
call getMost
call putint@plt
lw a2,0(s4)
ble a2,zero,.L97
slli a5,a2,32
srli a2,a5,30
mv a1,s5
mv a0,s3
call memcpy@plt
.L97:
mv a0,s3
call bubblesort
mv s2,s3
.L98:
lw a0,0(s2)
addi s2,s2,4
call putint@plt
bne s2,s0,.L98
lw a2,0(s4)
ble a2,zero,.L99
slli a5,a2,32
srli a2,a5,30
mv a1,s5
mv a0,s3
call memcpy@plt
.L99:
mv a0,s3
call insertsort
mv s2,s3
.L100:
lw a0,0(s2)
addi s2,s2,4
call putint@plt
bne s2,s0,.L100
lw a2,0(s4)
ble a2,zero,.L101
slli a5,a2,32
srli a2,a5,30
mv a1,s5
mv a0,s3
call memcpy@plt
.L101:
li a2,31
li a1,0
mv a0,s3
call QuickSort.part.0
mv s2,s3
.L102:
lw a0,0(s2)
addi s2,s2,4
call putint@plt
bne s2,s0,.L102
lw s2,0(s4)
ble s2,zero,.L107
slli a5,s2,32
mv a1,s5
srli a2,a5,30
mv a0,s3
call memcpy@plt
mv a3,s3
li a1,0
li a4,0
li a0,3
.L108:
lw a5,0(a3)
andi a2,a4,3
addw a1,a5,a1
beq a2,a0,.L105
sw zero,0(a3)
addiw a4,a4,1
addi a3,a3,4
bne s2,a4,.L108
.L107:
mv s2,s3
.L104:
lw a0,0(s2)
addi s2,s2,4
call putint@plt
bne s2,s0,.L104
lw a2,0(s4)
ble a2,zero,.L109
slli a5,a2,32
srli a2,a5,30
mv a1,s5
mv a0,s3
call memcpy@plt
.L109:
li a1,3
mv a0,s3
call avgPooling
.L110:
lw a0,0(s1)
addi s1,s1,4
call putint@plt
bne s0,s1,.L110
ld ra,312(sp)
ld s0,304(sp)
ld s1,296(sp)
ld s2,288(sp)
ld s3,280(sp)
ld s4,272(sp)
ld s5,264(sp)
li a0,0
addi sp,sp,320
jr ra
.L105:
sw a1,0(a3)
addiw a4,a4,1
addi a3,a3,4
beq a4,s2,.L107
li a1,0
j .L108
.size main, .-main
.globl n
.globl _sysy_idx
.globl _sysy_us
.globl _sysy_s
.globl _sysy_m
.globl _sysy_h
.globl _sysy_l2
.globl _sysy_l1
.globl _sysy_end
.globl _sysy_start
.bss
.align 3
.set .LANCHOR0,. + 0
.type n, @object
.size n, 4
n:
.zero 4
.type _sysy_idx, @object
.size _sysy_idx, 4
_sysy_idx:
.zero 4
.type _sysy_us, @object
.size _sysy_us, 4096
_sysy_us:
.zero 4096
.type _sysy_s, @object
.size _sysy_s, 4096
_sysy_s:
.zero 4096
.type _sysy_m, @object
.size _sysy_m, 4096
_sysy_m:
.zero 4096
.type _sysy_h, @object
.size _sysy_h, 4096
_sysy_h:
.zero 4096
.type _sysy_l2, @object
.size _sysy_l2, 4096
_sysy_l2:
.zero 4096
.type _sysy_l1, @object
.size _sysy_l1, 4096
_sysy_l1:
.zero 4096
.type _sysy_end, @object
.size _sysy_end, 16
_sysy_end:
.zero 16
.type _sysy_start, @object
.size _sysy_start, 16
_sysy_start:
.zero 16
.ident "GCC: (Debian 12.2.0-13) 12.2.0"
.section .note.GNU-stack,"",@progbits