sysy-data/functional_c/asm/83_long_array.s

235 lines
3.5 KiB
ArmAsm
Raw Normal View History

2024-06-14 13:10:27 +08:00
.file "83_long_array.sy"
.option pic
.attribute arch, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.align 1
.globl long_array
.type long_array, @function
long_array:
li a3,-118784
li a5,118784
addi sp,sp,-1312
addi a3,a3,-1216
li t0,-118784
addi a5,a5,1216
sd s5,1256(sp)
sd ra,1304(sp)
sd s0,1296(sp)
sd s1,1288(sp)
sd s2,1280(sp)
sd s3,1272(sp)
sd s4,1264(sp)
sd s6,1248(sp)
sd s7,1240(sp)
sd s8,1232(sp)
sd s9,1224(sp)
sd s10,1216(sp)
add a5,a5,a3
add sp,sp,t0
add a3,a5,sp
li a1,8192
mv s5,a0
mv a2,a3
li a0,10
addi a1,a1,1808
.L2:
mulw a4,a5,a5
addi a2,a2,4
addiw a5,a5,1
remw a4,a4,a0
sw a4,-4(a2)
bne a5,a1,.L2
li s3,-81920
li a5,118784
addi s3,s3,1920
addi a5,a5,1216
add a5,a5,s3
li s4,40960
add s3,a5,sp
addi s4,s4,-960
add s4,a3,s4
mv a2,s3
mv a4,a3
li a1,10
.L3:
lw a5,0(a4)
addi a2,a2,4
addi a4,a4,4
mulw a5,a5,a5
remw a5,a5,a1
sw a5,-4(a2)
bne a4,s4,.L3
li s1,-40960
li a5,118784
addi s1,s1,960
addi a5,a5,1216
add a5,a5,s1
li a0,40960
add s1,a5,sp
addi a0,a0,-960
add a0,s3,a0
mv a2,s1
mv a4,s3
li a6,100
.L4:
lw a5,0(a4)
lw a1,0(a3)
addi a2,a2,4
mulw a5,a5,a5
addi a4,a4,4
addi a3,a3,4
remw a5,a5,a6
addw a5,a5,a1
sw a5,-4(a2)
bne a4,a0,.L4
li s7,98304
li s6,8192
li s2,0
li s0,0
li s8,9
li s9,19
li s10,29
addiw s7,s7,1684
addi s6,s6,1808
.L12:
ble s0,s8,.L23
ble s0,s9,.L24
ble s0,s10,.L25
lw a5,0(s1)
addiw s0,s0,1
addi s1,s1,4
mulw a5,a5,s5
addi s3,s3,4
addw a5,a5,s2
remw s2,a5,s7
bne s0,s6,.L12
li t0,118784
add sp,sp,t0
ld ra,1304(sp)
mv a0,s2
ld s0,1296(sp)
ld s1,1288(sp)
ld s2,1280(sp)
ld s3,1272(sp)
ld s4,1264(sp)
ld s5,1256(sp)
ld s6,1248(sp)
ld s7,1240(sp)
ld s8,1232(sp)
ld s9,1224(sp)
ld s10,1216(sp)
addi sp,sp,1312
jr ra
.L25:
li a5,-118784
li a4,118784
addi a5,a5,-1216
addi a4,a4,1216
add a4,a4,a5
add a5,a4,sp
lw a3,0(s3)
li a4,20480
addi a4,a4,-480
add a5,a5,a4
.L10:
lw a4,0(a5)
addw s2,a3,s2
addi a5,a5,4
subw s2,s2,a4
bne a5,s4,.L10
.L21:
mv a0,s2
call putint@plt
.L6:
addiw s0,s0,1
addi s1,s1,4
addi s3,s3,4
j .L12
.L24:
li a5,-118784
li a4,118784
addi a5,a5,-1216
addi a4,a4,1216
add a4,a4,a5
add a5,a4,sp
lw a3,0(s1)
li a4,20480
addi a4,a4,-480
add a5,a5,a4
.L8:
lw a4,0(a5)
addw s2,a3,s2
addi a5,a5,4
subw s2,s2,a4
bne a5,s4,.L8
j .L21
.L23:
lw a5,0(s1)
addw a5,a5,s2
li s2,1333
remw s2,a5,s2
mv a0,s2
call putint@plt
j .L6
.size long_array, .-long_array
.section .text.startup,"ax",@progbits
.align 1
.globl main
.type main, @function
main:
li a0,9
tail long_array
.size main, .-main
.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
.type _sysy_idx, @object
.size _sysy_idx, 4
_sysy_idx:
.zero 4
.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