.file "60_sort_test6.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 counting_sort .type counting_sort, @function counting_sort: addi sp,sp,-48 sd zero,8(sp) sd zero,16(sp) sd zero,24(sp) sd zero,32(sp) sd zero,40(sp) ble a2,zero,.L2 slli a6,a2,2 mv a4,a0 add a6,a6,a0 .L3: lw a5,0(a4) addi a4,a4,4 slli a5,a5,2 addi a5,a5,48 add a5,a5,sp lw a3,-40(a5) addiw a3,a3,1 sw a3,-40(a5) bne a4,a6,.L3 .L2: lw t4,12(sp) lw a5,8(sp) lw t3,16(sp) lw t1,20(sp) addw t4,t4,a5 lw a7,24(sp) lw a6,28(sp) addw t3,t4,t3 lw a3,32(sp) addw t1,t3,t1 lw a4,36(sp) addw a7,t1,a7 lw a5,40(sp) addw a6,a7,a6 lw t5,44(sp) addw a3,a6,a3 addw a4,a3,a4 addw a5,a4,a5 addw t5,a5,t5 sw t4,12(sp) sw t3,16(sp) sw t1,20(sp) sw a7,24(sp) sw a6,28(sp) sw a3,32(sp) sw a4,36(sp) sw a5,40(sp) sw t5,44(sp) ble a2,zero,.L4 slli a5,a2,2 addiw a2,a2,-1 addi a6,a0,-4 slli a4,a2,32 add a6,a6,a5 srli a2,a4,30 add a0,a0,a5 sub a6,a6,a2 .L5: lw a2,-4(a0) addi a0,a0,-4 slli a4,a2,2 addi a5,a4,48 add a4,a5,sp lw a3,-40(a4) addiw a5,a3,-1 mv a3,a5 slli a5,a5,2 add a5,a1,a5 sw a3,-40(a4) sw a2,0(a5) bne a6,a0,.L5 .L4: li a0,0 addi sp,sp,48 jr ra .size counting_sort, .-counting_sort .section .text.startup,"ax",@progbits .align 1 .globl main .type main, @function main: addi sp,sp,-112 li a4,1 li a3,3 li a5,5 sd s1,88(sp) slli a7,a4,33 slli a6,a4,35 addi s1,sp,40 slli a3,a3,32 slli a5,a5,32 sd s2,80(sp) addi a5,a5,6 sd ra,104(sp) sd s0,96(sp) addi a7,a7,9 slli a4,a4,32 addi a6,a6,7 li t1,10 addi a3,a3,4 lla s2,.LANCHOR0 li a2,10 mv a1,s1 mv a0,sp sd a5,24(sp) sw t1,0(s2) sd a3,0(sp) sd a7,8(sp) sd a4,16(sp) sd a6,32(sp) call counting_sort li a5,9 bgt a0,a5,.L11 slli a5,a0,2 mv s0,a0 add s1,s1,a5 .L12: 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,.L12 .L11: ld ra,104(sp) ld s0,96(sp) ld s1,88(sp) ld s2,80(sp) li a0,0 addi sp,sp,112 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