sysy-data/functional_c/asm/28_while_test3.s

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