225 lines
3.1 KiB
ArmAsm
225 lines
3.1 KiB
ArmAsm
.file "28_while_test3.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 EightWhile
|
|
.type EightWhile, @function
|
|
EightWhile:
|
|
addi sp,sp,-64
|
|
lla t3,.LANCHOR0
|
|
lw t2,8(t3)
|
|
lw t0,12(t3)
|
|
sd s0,56(sp)
|
|
lw s0,0(t3)
|
|
lw a7,4(t3)
|
|
sd s1,48(sp)
|
|
sd s2,40(sp)
|
|
sd s3,32(sp)
|
|
sd s4,24(sp)
|
|
sd s5,16(sp)
|
|
sd s6,8(sp)
|
|
sd s7,0(sp)
|
|
mv t1,s0
|
|
mv a3,t2
|
|
mv a4,t0
|
|
li s1,5
|
|
li s7,0
|
|
li s6,0
|
|
li s5,0
|
|
li a5,0
|
|
li t4,10
|
|
li t6,6
|
|
li s3,19
|
|
li s2,1
|
|
li a2,2
|
|
li a0,9
|
|
li a1,9
|
|
li s4,10
|
|
.L13:
|
|
addiw t6,t6,1
|
|
bgt t4,s3,.L19
|
|
.L12:
|
|
addiw t4,t4,3
|
|
ble t1,s2,.L3
|
|
.L10:
|
|
addiw t1,t1,-1
|
|
ble a7,a2,.L4
|
|
sext.w t5,a7
|
|
mv a6,t5
|
|
.L9:
|
|
bgt a3,a2,.L5
|
|
.L8:
|
|
subw a5,a1,a4
|
|
andi a5,a5,-8
|
|
addw a5,a5,a4
|
|
addiw a3,a3,10
|
|
bgt a4,a0,.L6
|
|
addiw a4,a5,7
|
|
ble a3,a2,.L8
|
|
.L39:
|
|
li a5,1
|
|
.L5:
|
|
addiw a6,a6,-2
|
|
addiw a3,a3,-8
|
|
bgtu a6,a2,.L9
|
|
addiw a6,t5,-3
|
|
andi a6,a6,-2
|
|
addiw a7,a7,-2
|
|
subw a7,a7,a6
|
|
li s5,1
|
|
.L4:
|
|
addiw a7,a7,1
|
|
bne t1,s2,.L10
|
|
li t1,2
|
|
li s6,1
|
|
ble t4,s3,.L12
|
|
.L41:
|
|
mv t5,t4
|
|
addiw t4,t4,-1
|
|
li s7,1
|
|
mv a6,t4
|
|
bne t6,s4,.L13
|
|
addiw s1,s1,-1
|
|
li t6,8
|
|
bne s1,zero,.L13
|
|
.L42:
|
|
beq s7,zero,.L15
|
|
sw t1,0(t3)
|
|
mv s0,t1
|
|
.L15:
|
|
beq s6,zero,.L16
|
|
sw a7,4(t3)
|
|
.L16:
|
|
beq s5,zero,.L17
|
|
sw a3,8(t3)
|
|
mv t2,a3
|
|
.L17:
|
|
beq a5,zero,.L18
|
|
sw a4,12(t3)
|
|
mv t0,a4
|
|
.L18:
|
|
addw a5,a6,s0
|
|
ld s0,56(sp)
|
|
subw a5,a5,t2
|
|
addiw a0,t5,34
|
|
addw a5,a5,t0
|
|
ld s1,48(sp)
|
|
ld s2,40(sp)
|
|
ld s3,32(sp)
|
|
ld s4,24(sp)
|
|
ld s5,16(sp)
|
|
ld s6,8(sp)
|
|
ld s7,0(sp)
|
|
subw a0,a0,a5
|
|
addi sp,sp,64
|
|
jr ra
|
|
.L3:
|
|
addiw t1,t1,1
|
|
ble t4,s3,.L12
|
|
j .L41
|
|
.L19:
|
|
mv t5,t4
|
|
addiw t4,t4,-1
|
|
mv a6,t4
|
|
bne t6,s4,.L13
|
|
addiw s1,s1,-1
|
|
li t6,8
|
|
bne s1,zero,.L13
|
|
j .L42
|
|
.L6:
|
|
li a5,2
|
|
addiw a4,a4,-1
|
|
ble a3,a5,.L8
|
|
j .L39
|
|
.size EightWhile, .-EightWhile
|
|
.section .text.startup,"ax",@progbits
|
|
.align 1
|
|
.globl main
|
|
.type main, @function
|
|
main:
|
|
lla a5,.LANCHOR0
|
|
li a4,1
|
|
sw a4,8(a5)
|
|
li a4,2
|
|
sw a4,12(a5)
|
|
li a4,4
|
|
sw a4,0(a5)
|
|
li a4,6
|
|
sw a4,4(a5)
|
|
tail EightWhile
|
|
.size main, .-main
|
|
.globl e
|
|
.globl f
|
|
.globl h
|
|
.globl g
|
|
.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 e, @object
|
|
.size e, 4
|
|
e:
|
|
.zero 4
|
|
.type f, @object
|
|
.size f, 4
|
|
f:
|
|
.zero 4
|
|
.type g, @object
|
|
.size g, 4
|
|
g:
|
|
.zero 4
|
|
.type h, @object
|
|
.size h, 4
|
|
h:
|
|
.zero 4
|
|
.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
|