sysy-data/performance_c/asm/sl2.s

298 lines
4.2 KiB
ArmAsm
Raw Permalink Normal View History

2024-06-14 13:10:27 +08:00
.file "sl2.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,-96
sd ra,88(sp)
sd s0,80(sp)
sd s1,72(sp)
sd s2,64(sp)
sd s3,56(sp)
sd s4,48(sp)
sd s5,40(sp)
sd s6,32(sp)
sd s7,24(sp)
sd s8,16(sp)
sd s9,8(sp)
sd s10,0(sp)
call getint@plt
mv s1,a0
call getint@plt
mv s0,a0
li a0,15
call _sysy_starttime@plt
lla s2,x
ble s1,zero,.L2
andi t3,s1,-2
li a4,1
lla ra,x
lla a1,y
srliw t4,s1,1
slli a7,a4,32
sext.w t5,t3
li a2,4096
li s3,360448
li t1,1441792
mv t2,a1
sext.w t6,s1
slli t4,t4,3
mv t3,t5
mv s2,ra
mv t0,ra
li a6,0
addi a7,a7,1
addi a2,a2,-1696
addi s3,s3,-448
li a0,600
addi t1,t1,-1792
.L3:
mul s6,a6,s3
mv s4,t0
li a3,0
.L16:
beq s1,a4,.L35
.L11:
add s5,s4,t4
mv a5,s4
.L14:
sd a7,0(a5)
addi a5,a5,8
bne a5,s5,.L14
beq t3,t6,.L15
mv s5,t5
.L10:
mul a5,a3,a0
addiw a3,a3,1
add s4,s4,a2
add a5,s6,a5
add a5,a5,s5
slli a5,a5,2
add a5,s2,a5
sw a4,0(a5)
bne s1,a3,.L16
bne a3,a4,.L36
.L12:
mul a5,a6,t1
add a5,a1,a5
sw zero,0(a5)
.L6:
addiw a6,a6,1
add t2,t2,t1
add t0,t0,t1
bne a3,a6,.L3
addiw a3,a3,-1
li a5,1
ble a3,a5,.L2
addiw a5,t6,-3
li a4,-4096
slli a5,a5,32
li a7,-1441792
addi a2,a4,1696
srli a5,a5,32
addi a7,a7,1792
mul s4,a5,a7
li s3,4096
addi a4,a4,-704
addi a1,s3,-1692
li t1,2879488
li t2,1441792
addi t1,t1,512
li t3,0
add ra,ra,a1
li s6,-4096
mul a5,a5,a2
li a2,-2879488
addi a2,a2,-512
add s4,s4,a2
addi t5,s3,-1696
mv s5,a7
addi t2,t2,-1792
add t0,a5,a4
.L18:
sub t4,ra,a7
addi a6,s3,704
addi a1,s6,1696
li a0,0
.L22:
lw s7,-4(t4)
mv a4,t4
li a2,1
.L19:
add a5,a4,a7
add s10,a4,a0
add s8,a5,t3
add a5,a5,t1
lw s8,0(s8)
add s9,a4,a6
lw a5,0(a5)
add s10,s10,a1
lw s10,0(s10)
add s9,s9,a1
lw s9,0(s9)
addw a5,a5,s8
addw a5,a5,s10
lw s8,4(a4)
addw a5,a5,s9
addw a5,a5,s7
addw a5,a5,s8
divw s7,a5,s0
addiw a2,a2,1
addi a4,a4,4
sw s7,-4(a4)
bne a2,a3,.L19
sub a1,a1,t5
add t4,t4,t5
add a0,a0,t5
add a6,a6,t5
bne a1,t0,.L22
add a7,a7,s5
add t3,t3,t2
add t1,t1,t2
bne a7,s4,.L18
addiw s0,t6,-2
.L21:
li a0,55
call _sysy_stoptime@plt
mv a0,s1
lla a1,x
call putarray@plt
srliw a1,s1,31
addw a1,a1,s1
li s3,1441792
addi s3,s3,608
sraiw a1,a1,1
mul a1,a1,s3
mv a0,s1
add a1,s2,a1
call putarray@plt
mul a1,s0,s3
mv a0,s1
add a1,s2,a1
call putarray@plt
ld ra,88(sp)
ld s0,80(sp)
ld s1,72(sp)
ld s2,64(sp)
ld s3,56(sp)
ld s4,48(sp)
ld s5,40(sp)
ld s6,32(sp)
ld s7,24(sp)
ld s8,16(sp)
ld s9,8(sp)
ld s10,0(sp)
li a0,0
addi sp,sp,96
jr ra
.L15:
addiw a3,a3,1
add s4,s4,a2
bne s1,a3,.L11
beq a3,a4,.L12
.L36:
li s8,360448
addi s8,s8,-448
mul s8,a6,s8
li s7,4096
mv s5,t2
li s6,0
addi s7,s7,-1696
li s9,600
.L13:
add s4,s5,t4
mv a5,s5
.L7:
sd zero,0(a5)
addi a5,a5,8
bne a5,s4,.L7
beq t3,t6,.L4
mul a5,s6,s9
addiw s6,s6,1
add s5,s5,s7
add a5,s8,a5
add a5,a5,t5
slli a5,a5,2
add a5,a1,a5
sw zero,0(a5)
bne a3,s6,.L13
j .L6
.L35:
li s5,0
j .L10
.L4:
addiw s6,s6,1
add s5,s5,s7
bne a3,s6,.L13
j .L6
.L2:
li s0,0
j .L21
.size main, .-main
.globl y
.globl x
.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 y, @object
.size y, 864000000
y:
.zero 864000000
.type x, @object
.size x, 864000000
x:
.zero 864000000
.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