.file "conv2.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 checkrange .type checkrange, @function checkrange: li a5,1073741824 ble a0,a5,.L2 li a5,-1073741824 addw a0,a5,a0 ret .L2: bge a0,zero,.L3 not a5,a0 srliw a4,a5,30 li a5,1073741824 addw a0,a5,a0 slliw a5,a4,30 addw a0,a0,a5 .L3: ret .size checkrange, .-checkrange .align 1 .globl reduce .type reduce, @function reduce: li a5,4 mv a3,a0 bgtu a0,a5,.L21 lla a4,.L9 slli a5,a0,2 add a5,a5,a4 lw a5,0(a5) add a5,a5,a4 jr a5 .section .rodata .align 2 .align 2 .L9: .word .L13-.L9 .word .L22-.L9 .word .L11-.L9 .word .L23-.L9 .word .L24-.L9 .text .L23: li a3,30 li a4,1 li a0,0 li t1,1 j .L10 .L29: divw a5,a2,a4 srliw a6,a5,31 addw a5,a5,a6 andi a5,a5,1 subw a5,a5,a6 beq a5,t1,.L18 addiw a3,a3,-1 slliw a4,a4,1 beq a3,zero,.L28 .L10: divw a5,a1,a4 slliw a0,a0,1 mv a7,a0 srliw a6,a5,31 addw a5,a5,a6 andi a5,a5,1 subw a5,a5,a6 bne a5,t1,.L29 .L18: addiw a3,a3,-1 addiw a0,a7,1 slliw a4,a4,1 bne a3,zero,.L10 .L28: ret .L22: li a6,30 li a0,0 .L12: divw a4,a1,a3 slliw a0,a0,1 divw a5,a2,a3 srliw a7,a4,31 addw a4,a4,a7 andi a4,a4,1 subw a4,a4,a7 srliw a7,a5,31 addw a5,a5,a7 andi a5,a5,1 subw a5,a5,a7 beq a4,a5,.L16 addiw a0,a0,1 .L16: addiw a6,a6,-1 slliw a3,a3,1 bne a6,zero,.L12 ret .L24: li a3,30 li a4,1 li a0,0 li t1,1 j .L8 .L20: addiw a3,a3,-1 slliw a4,a4,1 beq a3,zero,.L30 .L8: divw a5,a1,a4 slliw a0,a0,1 srliw a6,a5,31 addw a5,a5,a6 andi a5,a5,1 subw a5,a5,a6 bne a5,t1,.L20 divw a5,a2,a4 srliw a6,a5,31 addw a5,a5,a6 andi a5,a5,1 subw a5,a5,a6 bne a5,t1,.L20 addiw a3,a3,-1 addiw a0,a0,1 slliw a4,a4,1 bne a3,zero,.L8 .L30: ret .L11: sext.w a0,a1 bge a1,a2,.L7 sext.w a0,a2 ret .L13: addw a1,a1,a2 sext.w a0,a1 li a5,1073741824 ble a0,a5,.L14 li a0,-1073741824 addw a0,a0,a1 ret .L21: li a0,0 .L7: ret .L14: bge a0,zero,.L31 not a0,a1 srliw a0,a0,30 li a5,1073741824 addw a5,a5,a1 slliw a0,a0,30 addw a0,a0,a5 ret .L31: ret .size reduce, .-reduce .align 1 .globl getvalue .type getvalue, @function getvalue: or a6,a3,a4 mv a5,a0 li a0,0 blt a6,zero,.L33 bge a3,a1,.L33 bge a4,a2,.L33 mulw a3,a3,a2 addw a4,a3,a4 slli a3,a4,2 add a0,a5,a3 lw a0,0(a0) ret .L33: ret .size getvalue, .-getvalue .align 1 .globl convn .type convn, @function convn: mv a6,a5 srliw a5,a5,31 addw a5,a5,a6 sraiw a5,a5,1 addi sp,sp,-208 negw a5,a5 sd s5,152(sp) mv s5,a4 mulw a4,a5,a4 sd s11,104(sp) mv s11,a3 sext.w a3,a5 sd a3,40(sp) slli a3,s5,2 sd s0,192(sp) sd s6,144(sp) sd s8,128(sp) sd ra,200(sp) sd a4,32(sp) negw a4,a5 slliw a5,a5,1 sd s1,184(sp) sd s2,176(sp) sd s3,168(sp) sd s4,160(sp) sd s7,136(sp) sd s9,120(sp) sd s10,112(sp) sd a4,72(sp) mv s0,a0 mv s6,a1 sext.w s8,s5 sd a3,80(sp) sd a2,64(sp) sd a5,88(sp) sd a4,56(sp) .L51: ld a5,56(sp) ld a4,88(sp) sext.w s9,a5 addw a4,a5,a4 sd a4,48(sp) ld a4,40(sp) sd a4,16(sp) ld a4,72(sp) sd a4,8(sp) ld a4,64(sp) sd a4,24(sp) .L50: ld a5,8(sp) lw s7,16(sp) ld s2,32(sp) slti s3,a5,1 negw s3,s3 ld s4,48(sp) and s3,a5,s3 sext.w s1,a5 li a1,0 sext.w s3,s3 .L49: mv s10,s7 blt s4,zero,.L38 bge s4,s11,.L39 blt s7,zero,.L42 .L47: addw a4,s10,s2 slli a4,a4,2 add a4,s6,a4 mv a0,s0 ble s5,s10,.L44 .L64: lw a2,0(a4) addiw s10,s10,1 call reduce mv a1,a0 blt s10,s1,.L47 .L48: addiw s4,s4,1 addw s2,s2,s8 blt s4,s9,.L49 .L65: ld a5,8(sp) ld a4,24(sp) addiw s10,a5,1 sw a1,0(a4) addi a4,a4,4 sd a4,24(sp) sext.w a4,s10 sd a4,8(sp) ld a4,16(sp) ld a5,40(sp) addiw a4,a4,1 addw a5,s10,a5 sd a4,16(sp) blt a5,s5,.L50 ld a5,56(sp) ld a4,40(sp) ld a3,80(sp) addiw a5,a5,1 addw a4,a5,a4 sd a5,56(sp) ld a5,32(sp) addw a5,s8,a5 sd a5,32(sp) ld a5,64(sp) add a5,a5,a3 sd a5,64(sp) blt a4,s11,.L51 ld ra,200(sp) ld s0,192(sp) ld s1,184(sp) ld s2,176(sp) ld s3,168(sp) ld s4,160(sp) ld s5,152(sp) ld s6,144(sp) ld s7,136(sp) ld s8,128(sp) ld s9,120(sp) ld s10,112(sp) ld s11,104(sp) li a0,0 addi sp,sp,208 jr ra .L38: li a2,0 mv a0,s0 call reduce addiw s10,s10,1 mv a1,a0 bge s10,s1,.L48 li a2,0 mv a0,s0 call reduce addiw s10,s10,1 mv a1,a0 blt s10,s1,.L38 j .L48 .L39: li a2,0 mv a0,s0 call reduce addiw s10,s10,1 mv a1,a0 bge s10,s1,.L48 li a2,0 mv a0,s0 call reduce addiw s10,s10,1 mv a1,a0 blt s10,s1,.L39 j .L48 .L42: li a2,0 mv a0,s0 call reduce addiw s10,s10,1 mv a1,a0 bgt s3,s10,.L42 bge s10,s1,.L48 addw a4,s10,s2 slli a4,a4,2 add a4,s6,a4 mv a0,s0 bgt s5,s10,.L64 .L44: li a2,0 call reduce addiw s10,s10,1 mv a1,a0 blt s10,s1,.L47 addiw s4,s4,1 addw s2,s2,s8 blt s4,s9,.L49 j .L65 .size convn, .-convn .align 1 .globl memmove .type memmove, @function memmove: ble a2,zero,.L66 addiw a5,a2,-1 li a4,8 sext.w a7,a2 bleu a5,a4,.L68 or a5,a1,a0 andi a5,a5,7 bne a5,zero,.L68 addi a5,a1,4 beq a0,a5,.L68 srliw a6,a7,1 slli a6,a6,3 mv a5,a1 mv a4,a0 add a6,a6,a1 .L69: ld a3,0(a5) addi a5,a5,8 addi a4,a4,8 sd a3,-8(a4) bne a5,a6,.L69 andi a5,a2,-2 beq a7,a5,.L66 slli a5,a5,32 srli a5,a5,30 add a1,a1,a5 lw a4,0(a1) add a0,a0,a5 sw a4,0(a0) ret .L68: slli a5,a2,2 add a5,a1,a5 .L71: lw a4,0(a1) addi a1,a1,4 addi a0,a0,4 sw a4,-4(a0) bne a1,a5,.L71 .L66: ret .size memmove, .-memmove .section .text.startup,"ax",@progbits .align 1 .globl main .type main, @function main: addi sp,sp,-112 sd ra,104(sp) sd s0,96(sp) sd s2,80(sp) sd s3,72(sp) sd s4,64(sp) sd s11,8(sp) sd s1,88(sp) sd s5,56(sp) sd s6,48(sp) sd s7,40(sp) sd s8,32(sp) sd s9,24(sp) sd s10,16(sp) call getint@plt mv s4,a0 call getint@plt mv s3,a0 call getint@plt mv s2,a0 lla a0,a call getarray@plt lla a0,kernelid call getarray@plt mv s0,a0 li a0,111 mulw s11,s3,s2 call _sysy_starttime@plt ble s0,zero,.L85 srliw s9,s11,1 slli s0,s0,2 lla s10,kernelid lla s8,b slli s9,s9,3 andi s7,s11,-2 add s1,s0,s10 li s5,1 lla s0,a add s9,s8,s9 mv s6,s7 .L84: lw a0,0(s10) mv a5,s4 mv a4,s2 mv a3,s3 mv a2,s8 mv a1,s0 call convn ble s11,zero,.L89 beq s11,s5,.L91 mv a5,s0 lla a4,a mv a1,s8 .L87: ld a3,0(a1) addi a1,a1,8 addi a4,a4,8 sd a3,-8(a4) bne s9,a1,.L87 mv a1,s7 beq s11,s6,.L89 .L86: slli a1,a1,2 add a4,s8,a1 lw a4,0(a4) add a1,a5,a1 sw a4,0(a1) .L89: addi s10,s10,4 bne s10,s1,.L84 .L85: li a0,118 call _sysy_stoptime@plt mv a0,s11 lla a1,a call putarray@plt ld ra,104(sp) ld s0,96(sp) ld s1,88(sp) ld s2,80(sp) ld s3,72(sp) ld s4,64(sp) ld s5,56(sp) ld s6,48(sp) ld s7,40(sp) ld s8,32(sp) ld s9,24(sp) ld s10,16(sp) ld s11,8(sp) li a0,0 addi sp,sp,112 jr ra .L91: li a1,0 lla a5,a j .L86 .size main, .-main .globl kernelid .globl b .globl a .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 kernelid, @object .size kernelid, 40000 kernelid: .zero 40000 .type b, @object .size b, 40000000 b: .zero 40000000 .type a, @object .size a, 40000000 a: .zero 40000000 .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