.file "59_sort_test5.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 swap .type swap, @function swap: slli a2,a2,2 add a2,a0,a2 slli a1,a1,2 add a0,a0,a1 lw a4,0(a2) lw a5,0(a0) sw a4,0(a0) sw a5,0(a2) li a0,0 ret .size swap, .-swap .align 1 .globl heap_ajust .type heap_ajust, @function heap_ajust: slliw a5,a1,1 addiw a5,a5,1 bgt a5,a2,.L11 slli a1,a1,2 add a4,a0,a1 lw t1,0(a4) j .L7 .L12: sw a7,0(a6) sw t1,0(a4) slli a1,a3,2 blt a2,a5,.L11 .L7: slli a4,a5,2 addi a3,a4,4 add a4,a0,a4 add a6,a0,a3 lw a7,0(a4) mv a3,a5 ble a2,a5,.L5 lw a5,0(a6) ble a5,a7,.L5 addiw a3,a3,1 mv a7,a5 mv a4,a6 .L5: slliw a5,a3,1 addiw a5,a5,1 add a6,a0,a1 ble t1,a7,.L12 .L11: li a0,0 ret .size heap_ajust, .-heap_ajust .align 1 .globl heap_sort .type heap_sort, @function heap_sort: srliw a5,a1,31 addw a5,a5,a1 sraiw a5,a5,1 addiw t6,a5,-1 addiw t1,a1,-1 blt t6,zero,.L19 slliw a5,t6,1 slli t0,t6,2 addiw t5,a5,1 add t0,a0,t0 li t2,-1 .L18: sext.w a4,t5 bgt t5,t1,.L21 lw t4,0(t0) mv t3,t6 j .L22 .L39: sw a7,0(a2) sw t4,0(a5) mv t3,a3 bgt a4,t1,.L21 .L22: slli a5,a4,2 addi a3,a5,4 add a5,a0,a5 add a6,a0,a3 lw a7,0(a5) mv a3,a4 slli a2,t3,2 bge a4,t1,.L20 lw a4,0(a6) ble a4,a7,.L20 addiw a3,a3,1 mv a7,a4 mv a5,a6 .L20: slliw a4,a3,1 addiw a4,a4,1 add a2,a0,a2 ble t4,a7,.L39 .L21: addiw t6,t6,-1 addiw t5,t5,-2 addi t0,t0,-4 bne t6,t2,.L18 .L19: ble t1,zero,.L16 slli a5,t1,2 add a5,a0,a5 lw a3,0(a5) lw a4,0(a0) addiw a1,a1,-2 sw a3,0(a0) sw a4,0(a5) beq a1,zero,.L16 slli t4,a1,2 add t4,a0,t4 .L25: lw t3,0(a0) li t1,0 li a4,1 j .L26 .L24: sw a7,0(a2) sw t3,0(a5) mv t1,a3 bgt a4,a1,.L27 .L26: slli a5,a4,2 addi a3,a5,4 add a5,a0,a5 add a6,a0,a3 lw a7,0(a5) mv a3,a4 slli a2,t1,2 bge a4,a1,.L23 lw a4,0(a6) ble a4,a7,.L23 addiw a3,a3,1 mv a7,a4 mv a5,a6 .L23: slliw a4,a3,1 addiw a4,a4,1 add a2,a0,a2 ble t3,a7,.L24 .L27: lw a4,0(t4) lw a5,0(a0) addiw a1,a1,-1 sw a4,0(a0) sw a5,0(t4) addi t4,t4,-4 bne a1,zero,.L25 .L16: li a0,0 ret .size heap_sort, .-heap_sort .section .text.startup,"ax",@progbits .align 1 .globl main .type main, @function main: addi sp,sp,-80 li a4,1 li a3,3 li a5,5 sd s1,56(sp) slli a6,a4,33 slli a2,a4,35 addi s1,sp,8 slli a3,a3,32 slli a5,a5,32 sd s2,48(sp) addi a5,a5,6 sd ra,72(sp) sd s0,64(sp) lla s2,.LANCHOR0 addi a6,a6,9 slli a4,a4,32 addi a2,a2,7 li a7,10 addi a3,a3,4 li a1,10 mv a0,s1 sd a5,32(sp) sw a7,0(s2) sd a3,8(sp) sd a6,16(sp) sd a4,24(sp) sd a2,40(sp) call heap_sort lw a5,0(s2) ble a5,a0,.L41 slli a5,a0,2 mv s0,a0 add s1,s1,a5 .L42: lw a0,0(s1) addiw s0,s0,1 addi s1,s1,4 call putint@plt li a0,10 call putch@plt lw a5,0(s2) bgt a5,s0,.L42 .L41: ld ra,72(sp) ld s0,64(sp) ld s1,56(sp) ld s2,48(sp) li a0,0 addi sp,sp,80 jr ra .size main, .-main .globl n .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 n, @object .size n, 4 n: .zero 4 .type _sysy_idx, @object .size _sysy_idx, 4 _sysy_idx: .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