226 lines
3.4 KiB
ArmAsm
226 lines
3.4 KiB
ArmAsm
|
.file "31_many_indirections.sy"
|
||
|
.option pic
|
||
|
.attribute arch, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0"
|
||
|
.attribute unaligned_access, 0
|
||
|
.attribute stack_align, 16
|
||
|
.text
|
||
|
.section .text.startup,"ax",@progbits
|
||
|
.align 1
|
||
|
.globl main
|
||
|
.type main, @function
|
||
|
main:
|
||
|
addi sp,sp,-16
|
||
|
lla a2,array
|
||
|
sd ra,8(sp)
|
||
|
mv a1,a2
|
||
|
lla a0,array+8000
|
||
|
li a3,100
|
||
|
.L2:
|
||
|
mv a4,a1
|
||
|
li a5,0
|
||
|
.L3:
|
||
|
sw a5,0(a4)
|
||
|
addiw a5,a5,1
|
||
|
addi a4,a4,4
|
||
|
bne a5,a3,.L3
|
||
|
addi a1,a1,400
|
||
|
bne a1,a0,.L2
|
||
|
lla a4,array+8192
|
||
|
lw a3,-520(a4)
|
||
|
li a5,400
|
||
|
lw a4,-500(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,1800
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,1700
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a3,68(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,1600
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,1500
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a3,64(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,1400
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,1300
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a3,60(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,1200
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,1100
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a3,56(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,1000
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,900
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a3,52(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,800
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,700
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a3,48(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,600
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,500
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a3,44(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,400
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,300
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a3,40(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a3,a3,a5
|
||
|
addi a4,a4,200
|
||
|
slli a4,a4,2
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
addi a4,a4,100
|
||
|
slli a4,a4,2
|
||
|
add a3,a2,a3
|
||
|
lw a1,36(a3)
|
||
|
add a4,a2,a4
|
||
|
lw a3,0(a4)
|
||
|
mul a4,a1,a5
|
||
|
slli a3,a3,2
|
||
|
add a3,a2,a3
|
||
|
add a4,a2,a4
|
||
|
lw a4,32(a4)
|
||
|
mul a4,a4,a5
|
||
|
add a4,a2,a4
|
||
|
lw a4,28(a4)
|
||
|
mul a4,a4,a5
|
||
|
add a4,a2,a4
|
||
|
lw a4,24(a4)
|
||
|
mul a4,a4,a5
|
||
|
add a4,a2,a4
|
||
|
lw a4,20(a4)
|
||
|
lw a3,0(a3)
|
||
|
mul a4,a4,a5
|
||
|
add a4,a2,a4
|
||
|
lw a4,16(a4)
|
||
|
mul a4,a4,a5
|
||
|
add a4,a2,a4
|
||
|
lw a4,12(a4)
|
||
|
mul a4,a4,a5
|
||
|
add a4,a2,a4
|
||
|
lw a4,8(a4)
|
||
|
mul a4,a4,a5
|
||
|
add a4,a2,a4
|
||
|
lw a4,4(a4)
|
||
|
mul a4,a4,a5
|
||
|
add a4,a2,a4
|
||
|
lw a4,0(a4)
|
||
|
mul a5,a4,a5
|
||
|
add a2,a2,a5
|
||
|
lw a0,224(a2)
|
||
|
addw a0,a0,a3
|
||
|
call putint@plt
|
||
|
ld ra,8(sp)
|
||
|
li a0,0
|
||
|
addi sp,sp,16
|
||
|
jr ra
|
||
|
.size main, .-main
|
||
|
.globl array
|
||
|
.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 array, @object
|
||
|
.size array, 8000
|
||
|
array:
|
||
|
.zero 8000
|
||
|
.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
|