.file "62_percolation.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 init .type init, @function init: mulw a2,a0,a0 li a1,255 lla a0,.LANCHOR0+4 addi a2,a2,1 slli a2,a2,2 tail memset@plt .size init, .-init .align 1 .globl findfa .type findfa, @function findfa: addi sp,sp,-48 sd s0,32(sp) sd s1,24(sp) lla s0,.LANCHOR0 slli s1,a0,2 add a5,s0,s1 lw a5,0(a5) sd ra,40(sp) sd s2,16(sp) sd s3,8(sp) sd s4,0(sp) bne a5,a0,.L9 ld ra,40(sp) ld s0,32(sp) ld s1,24(sp) ld s2,16(sp) ld s3,8(sp) ld s4,0(sp) addi sp,sp,48 jr ra .L9: slli s2,a5,2 add a4,s0,s2 lw a0,0(a4) beq a5,a0,.L5 slli s3,a0,2 add a5,s0,s3 lw a5,0(a5) bne a0,a5,.L10 .L6: add s2,s0,s2 sw a5,0(s2) mv a0,a5 .L5: add s0,s0,s1 ld ra,40(sp) sw a0,0(s0) ld s0,32(sp) ld s1,24(sp) ld s2,16(sp) ld s3,8(sp) ld s4,0(sp) addi sp,sp,48 jr ra .L10: slli s4,a5,2 add s4,s0,s4 lw a0,0(s4) beq a5,a0,.L7 call findfa sw a0,0(s4) .L7: add s3,s0,s3 sw a0,0(s3) mv a5,a0 j .L6 .size findfa, .-findfa .align 1 .globl mmerge .type mmerge, @function mmerge: addi sp,sp,-112 sd s0,96(sp) sd s2,80(sp) lla s0,.LANCHOR0 slli s2,a0,2 add a5,s0,s2 sd s1,88(sp) lw s1,0(a5) sd ra,104(sp) sd s3,72(sp) sd s4,64(sp) sd s5,56(sp) sd s6,48(sp) sd s7,40(sp) sd s8,32(sp) sd s9,24(sp) bne a0,s1,.L30 .L12: slli s2,a1,2 add a5,s0,s2 lw a5,0(a5) bne a1,a5,.L31 .L20: beq a5,s1,.L11 slli s1,s1,2 add s0,s0,s1 sw a5,0(s0) .L11: 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) addi sp,sp,112 jr ra .L31: slli s3,a5,2 add a4,s0,s3 lw a4,0(a4) beq a5,a4,.L21 slli s4,a4,2 add a5,s0,s4 lw a5,0(a5) bne a4,a5,.L32 .L22: add s3,s0,s3 sw a5,0(s3) mv a4,a5 .L21: add s2,s0,s2 sw a4,0(s2) mv a5,a4 j .L20 .L30: slli s3,s1,2 add a5,s0,s3 lw a5,0(a5) beq s1,a5,.L13 slli s1,a5,2 add a4,s0,s1 lw a4,0(a4) bne a5,a4,.L33 .L14: add s3,s0,s3 sw a4,0(s3) mv a5,a4 .L13: add s2,s0,s2 sw a5,0(s2) mv s1,a5 j .L12 .L33: slli s4,a4,2 add a5,s0,s4 lw a5,0(a5) beq a4,a5,.L15 slli s5,a5,2 add a4,s0,s5 lw a4,0(a4) bne a5,a4,.L34 .L16: add s4,s0,s4 sw a4,0(s4) mv a5,a4 .L15: add s1,s0,s1 sw a5,0(s1) mv a4,a5 j .L14 .L32: slli s5,a5,2 add a4,s0,s5 lw a4,0(a4) beq a5,a4,.L23 slli s6,a4,2 add a5,s0,s6 lw a5,0(a5) bne a4,a5,.L35 .L24: add s5,s0,s5 sw a5,0(s5) mv a4,a5 .L23: add s4,s0,s4 sw a4,0(s4) mv a5,a4 j .L22 .L35: slli s7,a5,2 add a4,s0,s7 lw a4,0(a4) beq a5,a4,.L25 slli s8,a4,2 add a5,s0,s8 lw a5,0(a5) beq a4,a5,.L26 slli s9,a5,2 add s9,s0,s9 lw a0,0(s9) beq a5,a0,.L27 call findfa sw a0,0(s9) .L27: add s8,s0,s8 sw a0,0(s8) mv a5,a0 .L26: add s7,s0,s7 sw a5,0(s7) mv a4,a5 .L25: add s6,s0,s6 sw a4,0(s6) mv a5,a4 j .L24 .L34: slli s6,a4,2 add a5,s0,s6 lw a5,0(a5) beq a4,a5,.L17 slli s7,a5,2 add a4,s0,s7 lw a4,0(a4) beq a5,a4,.L18 slli s8,a4,2 add s8,s0,s8 lw a0,0(s8) beq a4,a0,.L19 sd a1,8(sp) call findfa ld a1,8(sp) sw a0,0(s8) .L19: add s7,s0,s7 sw a0,0(s7) mv a4,a0 .L18: add s6,s0,s6 sw a4,0(s6) mv a5,a4 .L17: add s5,s0,s5 sw a5,0(s5) mv a4,a5 j .L16 .size mmerge, .-mmerge .section .text.startup,"ax",@progbits .align 1 .globl main .type main, @function main: addi sp,sp,-176 sd s0,160(sp) sd s4,128(sp) sd s5,120(sp) sd s6,112(sp) sd s7,104(sp) sd s8,96(sp) sd ra,168(sp) sd s1,152(sp) sd s2,144(sp) sd s3,136(sp) sd s9,88(sp) sd s10,80(sp) sd s11,72(sp) li a5,4 lla s0,.LANCHOR0 li a2,68 li a1,255 lla a0,.LANCHOR0+4 sw a5,440(s0) li s7,0 call memset@plt li s4,0 li s6,1 li s5,-1 li s8,17 .L109: call getint@plt mv s1,a0 call getint@plt mv s3,a0 addiw s4,s4,1 beq s7,zero,.L37 .L108: li a5,10 beq s4,a5,.L39 call getint@plt mv s1,a0 li s7,1 call getint@plt mv s3,a0 addiw s4,s4,1 bne s7,zero,.L108 .L37: lw a5,440(s0) addiw s2,s1,-1 mulw s2,s2,a5 addw s9,s2,a0 slli s10,s9,2 add a4,s0,s10 sw s9,0(a4) mv s2,s9 beq s1,s6,.L121 .L40: beq s1,a5,.L122 .L60: bge s3,a5,.L80 addiw a1,s2,1 slli a5,a1,2 add a5,s0,a5 lw a5,0(a5) beq a5,s5,.L80 mv a0,s9 call mmerge .L80: ble s3,s6,.L81 addiw a1,s2,-1 slli a5,a1,2 add a5,s0,a5 lw a5,0(a5) beq a5,s5,.L81 mv a0,s9 call mmerge .L81: lw a1,440(s0) ble a1,s1,.L82 addw a1,s2,a1 slli a5,a1,2 add a5,s0,a5 lw a5,0(a5) beq a5,s5,.L82 mv a0,s9 call mmerge .L82: ble s1,s6,.L83 lw a5,440(s0) subw a1,s2,a5 slli a5,a1,2 add a5,s0,a5 lw a5,0(a5) beq a5,s5,.L83 mv a0,s9 call mmerge .L83: lw s1,0(s0) beq s1,s5,.L86 lw a5,68(s0) beq a5,s5,.L86 bne s1,zero,.L87 beq a5,s8,.L86 .L88: slli s2,a5,2 add a4,s0,s2 lw a3,0(a4) beq a5,a3,.L99 slli s3,a3,2 add a5,s0,s3 lw a5,0(a5) beq a3,a5,.L100 slli s9,a5,2 add a4,s0,s9 lw a4,0(a4) beq a5,a4,.L101 slli s10,a4,2 add a5,s0,s10 lw a5,0(a5) beq a4,a5,.L102 slli s11,a5,2 add a4,s0,s11 lw a4,0(a4) beq a5,a4,.L103 slli a3,a4,2 add a5,s0,a3 lw a5,0(a5) bne a4,a5,.L123 .L104: add s11,s0,s11 sw a5,0(s11) .L103: add s10,s0,s10 sw a5,0(s10) .L102: add s9,s0,s9 sw a5,0(s9) mv a4,a5 .L101: add s3,s0,s3 sw a4,0(s3) mv a5,a4 .L100: add s2,s0,s2 sw a5,0(s2) mv a3,a5 .L99: sw a3,68(s0) mv a4,s1 mv a5,a3 .L98: beq a5,a4,.L124 .L86: li a5,10 bne s4,a5,.L109 li a0,-1 call putint@plt li a0,10 call putch@plt .L39: ld ra,168(sp) ld s0,160(sp) ld s1,152(sp) ld s2,144(sp) ld s3,136(sp) ld s4,128(sp) ld s5,120(sp) ld s6,112(sp) ld s7,104(sp) ld s8,96(sp) ld s9,88(sp) ld s10,80(sp) ld s11,72(sp) li a0,0 addi sp,sp,176 jr ra .L122: sw s8,68(s0) add a4,s0,s10 lw a4,0(a4) li a3,17 beq s9,a4,.L61 slli a5,a4,2 add a3,s0,a5 lw s11,0(a3) beq a4,s11,.L62 slli a3,s11,2 add a4,s0,a3 lw a4,0(a4) beq s11,a4,.L63 slli s11,a4,2 add a2,s0,s11 lw a2,0(a2) beq a4,a2,.L64 slli a4,a2,2 add a1,s0,a4 lw a1,0(a1) bne a2,a1,.L125 .L65: add s11,s0,s11 sw a2,0(s11) .L64: add a3,s0,a3 sw a2,0(a3) mv a4,a2 .L63: add a5,s0,a5 sw a4,0(a5) mv s11,a4 .L62: add s10,s0,s10 sw s11,0(s10) lw a5,68(s0) beq a5,s8,.L126 slli s10,a5,2 add a4,s0,s10 lw a3,0(a4) beq a5,a3,.L71 slli a4,a3,2 add a5,s0,a4 lw a5,0(a5) beq a3,a5,.L72 slli a2,a5,2 add a3,s0,a2 lw a3,0(a3) beq a5,a3,.L73 slli a5,a3,2 add a1,s0,a5 lw a1,0(a1) bne a3,a1,.L127 .L74: add a2,s0,a2 sw a3,0(a2) .L73: add a4,s0,a4 sw a3,0(a4) mv a5,a3 .L72: add s10,s0,s10 sw a5,0(s10) mv a3,a5 .L71: lw a5,440(s0) sw a3,68(s0) mv a4,s11 .L61: beq a3,a4,.L60 slli a4,a4,2 add a4,s0,a4 sw a3,0(a4) j .L60 .L121: sw zero,.LANCHOR0,a3 lw a4,0(a4) li a3,0 beq s9,a4,.L41 slli a5,a4,2 add a3,s0,a5 lw s11,0(a3) beq a4,s11,.L42 slli a3,s11,2 add a4,s0,a3 lw a4,0(a4) beq s11,a4,.L43 slli s11,a4,2 add a2,s0,s11 lw a2,0(a2) beq a4,a2,.L44 slli a4,a2,2 add a1,s0,a4 lw a1,0(a1) bne a2,a1,.L128 .L45: add s11,s0,s11 sw a2,0(s11) .L44: add a3,s0,a3 sw a2,0(a3) mv a4,a2 .L43: add a5,s0,a5 sw a4,0(a5) mv s11,a4 .L42: add a5,s0,s10 sw s11,0(a5) lw a5,0(s0) beq a5,zero,.L129 slli a4,a5,2 add a3,s0,a4 lw a3,0(a3) beq a5,a3,.L51 slli a2,a3,2 add a5,s0,a2 lw a5,0(a5) beq a3,a5,.L52 slli a1,a5,2 add a3,s0,a1 lw a3,0(a3) beq a5,a3,.L53 slli a5,a3,2 add a0,s0,a5 lw a0,0(a0) bne a3,a0,.L130 .L54: add a1,s0,a1 sw a3,0(a1) .L53: add a2,s0,a2 sw a3,0(a2) mv a5,a3 .L52: add a4,s0,a4 sw a5,0(a4) mv a3,a5 .L51: lw a5,440(s0) sw a3,0(s0) mv a4,s11 .L41: beq a3,a4,.L40 slli a4,a4,2 add a4,s0,a4 sw a3,0(a4) bne s1,a5,.L60 j .L122 .L87: slli s2,s1,2 add a4,s0,s2 lw a4,0(a4) beq s1,a4,.L89 slli s1,a4,2 add a5,s0,s1 lw a3,0(a5) beq a4,a3,.L90 slli s3,a3,2 add a5,s0,s3 lw a5,0(a5) beq a3,a5,.L91 slli s9,a5,2 add a4,s0,s9 lw a4,0(a4) beq a5,a4,.L92 slli s10,a4,2 add a5,s0,s10 lw a5,0(a5) beq a4,a5,.L93 slli s11,a5,2 add a4,s0,s11 lw a4,0(a4) bne a5,a4,.L131 .L94: add s10,s0,s10 sw a4,0(s10) .L93: add s9,s0,s9 sw a4,0(s9) .L92: add s3,s0,s3 sw a4,0(s3) mv a5,a4 .L91: add s1,s0,s1 sw a5,0(s1) mv a3,a5 .L90: add s2,s0,s2 sw a3,0(s2) lw a5,68(s0) mv a4,a3 .L89: sw a4,0(s0) beq a5,s8,.L98 mv s1,a4 j .L88 .L124: mv a0,s4 call putint@plt li a0,10 call putch@plt j .L108 .L131: slli a3,a4,2 add a5,s0,a3 lw a5,0(a5) bne a4,a5,.L132 .L95: add s11,s0,s11 sw a5,0(s11) mv a4,a5 j .L94 .L123: slli a2,a5,2 add a4,s0,a2 lw a4,0(a4) bne a5,a4,.L133 .L105: add a3,s0,a3 sw a4,0(a3) mv a5,a4 j .L104 .L128: slli a6,a1,2 add a2,s0,a6 lw a2,0(a2) beq a1,a2,.L46 slli a7,a2,2 add a1,s0,a7 lw a1,0(a1) bne a2,a1,.L134 .L47: add a6,s0,a6 sw a1,0(a6) mv a2,a1 .L46: add a4,s0,a4 sw a2,0(a4) j .L45 .L130: slli a6,a0,2 add a3,s0,a6 lw a3,0(a3) beq a0,a3,.L55 slli a7,a3,2 add a0,s0,a7 lw a0,0(a0) bne a3,a0,.L135 .L56: add a6,s0,a6 sw a0,0(a6) mv a3,a0 .L55: add a5,s0,a5 sw a3,0(a5) j .L54 .L125: slli a6,a1,2 add a2,s0,a6 lw a2,0(a2) beq a1,a2,.L66 slli a7,a2,2 add a1,s0,a7 lw a1,0(a1) bne a2,a1,.L136 .L67: add a6,s0,a6 sw a1,0(a6) mv a2,a1 .L66: add a4,s0,a4 sw a2,0(a4) j .L65 .L127: slli a6,a1,2 add a3,s0,a6 lw a3,0(a3) beq a1,a3,.L75 slli a7,a3,2 add a1,s0,a7 lw a1,0(a1) bne a3,a1,.L137 .L76: add a6,s0,a6 sw a1,0(a6) mv a3,a1 .L75: add a5,s0,a5 sw a3,0(a5) j .L74 .L137: slli t1,a1,2 add a3,s0,t1 lw a3,0(a3) beq a1,a3,.L77 slli a1,a3,2 add a1,s0,a1 lw a0,0(a1) sd a1,48(sp) bne a3,a0,.L138 .L78: add t1,s0,t1 sw a0,0(t1) mv a3,a0 .L77: add a7,s0,a7 sw a3,0(a7) mv a1,a3 j .L76 .L136: slli t1,a1,2 add a2,s0,t1 lw a2,0(a2) beq a1,a2,.L68 slli a1,a2,2 add a0,s0,a1 lw a0,0(a0) sd a1,48(sp) bne a2,a0,.L139 .L69: add t1,s0,t1 sw a0,0(t1) mv a2,a0 .L68: add a7,s0,a7 sw a2,0(a7) mv a1,a2 j .L67 .L135: slli t1,a0,2 add a3,s0,t1 lw a3,0(a3) beq a0,a3,.L57 slli t3,a3,2 add t3,s0,t3 lw a0,0(t3) sd t3,56(sp) bne a3,a0,.L140 .L58: add t1,s0,t1 sw a0,0(t1) mv a3,a0 .L57: add a7,s0,a7 sw a3,0(a7) mv a0,a3 j .L56 .L134: slli t1,a1,2 add a2,s0,t1 lw a2,0(a2) beq a1,a2,.L48 slli a1,a2,2 add a1,s0,a1 lw a0,0(a1) sd a1,48(sp) bne a2,a0,.L141 .L49: add t1,s0,t1 sw a0,0(t1) mv a2,a0 .L48: add a7,s0,a7 sw a2,0(a7) mv a1,a2 j .L47 .L133: slli a1,a4,2 add a5,s0,a1 lw a5,0(a5) beq a4,a5,.L106 slli a4,a5,2 add a4,s0,a4 lw a0,0(a4) sd a4,24(sp) bne a5,a0,.L142 .L107: add a1,s0,a1 sw a0,0(a1) mv a5,a0 .L106: add a2,s0,a2 sw a5,0(a2) mv a4,a5 j .L105 .L132: slli a2,a5,2 add a4,s0,a2 lw a4,0(a4) beq a5,a4,.L96 slli a5,a4,2 add a5,s0,a5 lw a0,0(a5) sd a5,16(sp) bne a4,a0,.L143 .L97: add a2,s0,a2 sw a0,0(a2) mv a4,a0 .L96: add a3,s0,a3 sw a4,0(a3) mv a5,a4 j .L95 .L143: sd a2,8(sp) sd a3,0(sp) call findfa ld a5,16(sp) ld a2,8(sp) ld a3,0(sp) sw a0,0(a5) j .L97 .L142: sd a1,16(sp) sd a2,8(sp) sd a3,0(sp) call findfa ld a4,24(sp) ld a1,16(sp) ld a2,8(sp) ld a3,0(sp) sw a0,0(a4) j .L107 .L141: sd t1,40(sp) sd a7,32(sp) sd a6,24(sp) sd a4,16(sp) sd a3,8(sp) sd a5,0(sp) call findfa ld a1,48(sp) ld t1,40(sp) ld a7,32(sp) ld a6,24(sp) ld a4,16(sp) ld a3,8(sp) ld a5,0(sp) sw a0,0(a1) j .L49 .L140: sd t1,48(sp) sd a7,40(sp) sd a6,32(sp) sd a5,24(sp) sd a1,16(sp) sd a2,8(sp) sd a4,0(sp) call findfa ld t3,56(sp) ld t1,48(sp) ld a7,40(sp) ld a6,32(sp) ld a5,24(sp) ld a1,16(sp) ld a2,8(sp) ld a4,0(sp) sw a0,0(t3) j .L58 .L139: sd t1,40(sp) sd a7,32(sp) sd a6,24(sp) sd a4,16(sp) sd a3,8(sp) sd a5,0(sp) call findfa ld a1,48(sp) ld t1,40(sp) ld a7,32(sp) add a1,s0,a1 ld a6,24(sp) ld a4,16(sp) ld a3,8(sp) ld a5,0(sp) sw a0,0(a1) j .L69 .L138: sd t1,40(sp) sd a7,32(sp) sd a6,24(sp) sd a5,16(sp) sd a2,8(sp) sd a4,0(sp) call findfa ld a1,48(sp) ld t1,40(sp) ld a7,32(sp) ld a6,24(sp) ld a5,16(sp) ld a2,8(sp) ld a4,0(sp) sw a0,0(a1) j .L78 .L129: lw a5,440(s0) mv a4,s11 li a3,0 j .L41 .L126: lw a5,440(s0) mv a4,s11 li a3,17 j .L61 .size main, .-main .globl n .globl array .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 array, @object .size array, 440 array: .zero 440 .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