.file "64_calculator.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 isdigit .type isdigit, @function isdigit: addiw a0,a0,-48 sltiu a0,a0,10 ret .size isdigit, .-isdigit .align 1 .globl power .type power, @function power: mv a5,a0 li a0,1 beq a1,zero,.L6 .L5: addiw a1,a1,-1 mulw a0,a5,a0 bne a1,zero,.L5 ret .L6: ret .size power, .-power .align 1 .globl getstr .type getstr, @function getstr: addi sp,sp,-48 sd s0,32(sp) sd ra,40(sp) sd s1,24(sp) sd s2,16(sp) sd s3,8(sp) mv s0,a0 call getch@plt li a5,13 beq a0,a5,.L11 li a5,10 li s1,0 beq a0,a5,.L9 li s2,13 li s3,10 j .L10 .L15: addi s0,s0,4 beq a0,s3,.L9 .L10: sw a0,0(s0) call getch@plt addiw s1,s1,1 bne a0,s2,.L15 .L9: ld ra,40(sp) ld s0,32(sp) ld s2,16(sp) ld s3,8(sp) mv a0,s1 ld s1,24(sp) addi sp,sp,48 jr ra .L11: li s1,0 j .L9 .size getstr, .-getstr .align 1 .globl intpush .type intpush, @function intpush: lla a2,.LANCHOR0 lw a5,0(a2) lla a4,ints addiw a3,a5,1 mv a5,a3 slli a3,a3,2 add a4,a4,a3 sw a5,0(a2) sw a0,0(a4) ret .size intpush, .-intpush .align 1 .globl chapush .type chapush, @function chapush: lla a2,.LANCHOR0 lw a5,4(a2) lla a4,chas addiw a3,a5,1 mv a5,a3 slli a3,a3,2 add a4,a4,a3 sw a5,4(a2) sw a0,0(a4) ret .size chapush, .-chapush .align 1 .globl intpop .type intpop, @function intpop: lla a3,.LANCHOR0 lw a5,0(a3) lla a4,ints slli a2,a5,2 add a4,a4,a2 addiw a5,a5,-1 lw a0,0(a4) sw a5,0(a3) ret .size intpop, .-intpop .align 1 .globl chapop .type chapop, @function chapop: lla a3,.LANCHOR0 lw a5,4(a3) lla a4,chas slli a2,a5,2 add a4,a4,a2 addiw a5,a5,-1 lw a0,0(a4) sw a5,4(a3) ret .size chapop, .-chapop .align 1 .globl intadd .type intadd, @function intadd: lw a5,.LANCHOR0 slli a5,a5,2 lla a4,ints add a4,a4,a5 lw a3,0(a4) slliw a5,a3,2 addw a5,a5,a3 slliw a5,a5,1 addw a5,a5,a0 sw a5,0(a4) ret .size intadd, .-intadd .align 1 .globl find .type find, @function find: lla a2,.LANCHOR0 lw a4,4(a2) lla a7,.LANCHOR1 lw a5,0(a7) slli a1,a4,2 lla a3,chas add a3,a3,a1 lw t1,0(a3) slli a6,a5,2 lla a3,get2 addiw a1,a5,1 add a6,a3,a6 slli a1,a1,2 li t3,32 addiw a0,a4,-1 sw t3,0(a6) add a3,a3,a1 addiw a5,a5,2 sw a0,4(a2) sw t1,8(a2) sw t1,0(a3) sw a5,0(a7) snez a0,a0 ret .size find, .-find .section .text.startup,"ax",@progbits .align 1 .globl main .type main, @function main: addi sp,sp,-128 lla a0,get sd ra,120(sp) sd s0,112(sp) sd s1,104(sp) sd s2,96(sp) sd s3,88(sp) sd s4,80(sp) sd s5,72(sp) sd s6,64(sp) sd s7,56(sp) sd s8,48(sp) sd s9,40(sp) sd s10,32(sp) sd s11,24(sp) lla s0,.LANCHOR0 sw zero,.LANCHOR0,a5 sw zero,.LANCHOR0+4,a5 call getstr lw a2,12(s0) li ra,0 li t4,0 lla t6,.LANCHOR1 lla a7,get2 ble a0,a2,.L24 subw t0,a0,a2 slli t0,t0,32 srli t0,t0,32 add t0,t0,a2 lla a1,get lla t6,.LANCHOR1 slli a2,a2,2 slli t0,t0,2 add a2,a2,a1 add t0,t0,a1 lw a4,0(t6) lw a3,4(s0) li a5,0 li a1,0 li t3,0 lla a7,get2 li s1,9 li s2,40 li s3,32 li s4,94 lla s11,chas j .L57 .L129: slli t1,a4,2 add t1,a7,t1 sw a6,0(t1) addi a2,a2,4 addiw a4,a4,1 beq a2,t0,.L128 .L57: lw a6,0(a2) addiw t1,a6,-48 bleu t1,s1,.L129 beq a6,s2,.L130 bne a6,s4,.L29 addiw a3,a3,1 slli a6,a3,2 add a6,s11,a6 sw s4,0(a6) li t3,1 .L28: slli a6,a4,2 add a6,a7,a6 sw s3,0(a6) addi a2,a2,4 addiw a4,a4,1 bne a2,t0,.L57 .L128: sw a4,0(t6) sw a0,12(s0) beq a1,zero,.L58 sw a5,8(s0) .L58: beq t3,zero,.L24 sw a3,4(s0) .L24: lw a4,4(s0) lw a1,0(t6) ble a4,zero,.L86 addiw a6,a4,-1 slli a5,a6,32 srli a2,a5,31 lla a3,chas add a2,a2,a1 slli a4,a4,2 slli a5,a1,2 slli a2,a2,2 add a4,a4,a3 lla a3,get2+8 add a5,a7,a5 add a2,a2,a3 li a0,32 .L61: lw a3,0(a4) sw a0,0(a5) addi a5,a5,8 sw a3,-4(a5) addi a4,a4,-4 bne a2,a5,.L61 slliw a5,a6,1 addw a6,a5,a1 addiw a2,a1,1 addw a2,a2,a5 slli a6,a6,2 addiw a1,a1,2 add a6,a7,a6 slli a2,a2,2 addw a5,a1,a5 sw a0,0(a6) add a2,a7,a2 sw zero,.LANCHOR0+4,a1 sw a3,0(a2) sw a5,0(t6) .L60: slli a5,a5,2 add a5,a7,a5 li a4,64 sw a4,0(a5) lw a2,4(a7) li a5,1 sw a5,12(s0) lla t3,ints beq a2,a4,.L63 lw a0,0(s0) li s7,0 li s6,0 li t1,1 ld t2,.LC0 lla t3,ints li t5,62 li a6,32 li t0,1 li s1,64 li s2,43 li s3,45 li s4,42 .L77: addiw a3,t1,1 slli a4,a3,2 add a4,a7,a4 addiw a5,a2,-32 lw a1,0(a4) mv s5,a3 bgtu a5,t5,.L64 sll a5,t0,a5 and a4,a5,t2 bne a4,zero,.L65 andi a5,a5,1 bne a5,zero,.L66 .L64: addiw a0,a0,1 slli ra,a0,2 addiw a2,a2,-48 add a5,t3,ra sw a2,0(a5) beq a1,a6,.L88 addi a3,t1,2 slli a3,a3,2 add a3,a7,a3 li s5,2 .L75: slliw a5,a2,2 addiw a4,a1,-48 addw a5,a5,a2 lw a1,0(a3) slliw a5,a5,1 addw a2,a4,a5 mv a5,a2 mv a4,s5 addi a3,a3,4 addi s5,s5,1 bne a1,a6,.L75 add a2,t3,ra addw a3,a4,t1 sext.w ra,a4 sw a5,0(a2) li s7,1 li s6,1 .L74: mv a2,a1 mv t1,a3 j .L77 .L130: addiw a3,a3,1 slli a6,a3,2 add a6,s11,a6 sw s2,0(a6) li t3,1 j .L28 .L29: li t1,41 beq a6,t1,.L131 li t1,43 beq a6,t1,.L132 li t1,45 beq a6,t1,.L133 li t1,42 bne a6,t1,.L43 li s5,1 slli t3,a3,2 lla s6,chas slli a6,a4,2 slli s5,s5,57 mv t5,a3 add t3,s6,t3 add a6,a7,a6 sext.w t2,a3 li s7,42 li s10,57 addi s5,s5,1025 li s8,32 sd a2,8(sp) .L44: mv s9,a5 lw a5,0(t3) mv a2,t2 addiw t1,a5,-37 srl a3,s5,t1 andi a3,a3,1 beq a5,s7,.L46 bgtu t1,s10,.L47 bne a3,zero,.L46 .L47: ld a2,8(sp) addiw a3,t2,1 mv a5,s9 .L45: slli a6,a3,2 add a6,s6,a6 li t1,42 sw t1,0(a6) li t3,1 j .L28 .L46: addi t5,t5,-1 sw s8,0(a6) sw a5,4(a6) sext.w t2,t5 addiw a4,a4,2 addi t3,t3,-4 addi a6,a6,8 li a1,1 bne t2,zero,.L44 mv a3,a2 ld a2,8(sp) j .L45 .L65: addiw t1,a0,-1 slli a4,t1,2 slli a0,a0,2 add a0,t3,a0 add s7,t3,a4 lw a5,0(a0) lw a0,0(s7) beq a2,s2,.L134 beq a2,s3,.L135 beq a2,s4,.L136 li s7,47 bne a2,s7,.L71 divw t4,a0,a5 .L68: add a4,t3,a4 sw t4,0(a4) mv a0,t1 li s7,1 .L66: bne a1,s1,.L74 sw s5,12(s0) beq s7,zero,.L78 sw a0,0(s0) .L78: beq s6,zero,.L63 sw ra,0(t6) .L63: lw a0,4(t3) call putint@plt ld ra,120(sp) ld s0,112(sp) ld s1,104(sp) ld s2,96(sp) ld s3,88(sp) ld s4,80(sp) ld s5,72(sp) ld s6,64(sp) ld s7,56(sp) ld s8,48(sp) ld s9,40(sp) ld s10,32(sp) ld s11,24(sp) li a0,0 addi sp,sp,128 jr ra .L134: addw t4,a0,a5 j .L68 .L131: slli t1,a3,2 lla t3,chas add a5,t3,t1 lw a5,0(a5) addiw a3,a3,-1 beq a5,s2,.L80 slli a1,a4,2 addi t1,t1,-4 addiw a4,a4,2 add a1,a7,a1 add t1,t1,t3 li t2,32 li t5,40 .L31: sw a5,4(a1) lw a5,0(t1) sw t2,0(a1) sext.w t3,a4 addiw a3,a3,-1 addiw a4,a4,2 addi a1,a1,8 addi t1,t1,-4 bne a5,t5,.L31 sext.w a4,t3 li a1,1 li t3,1 .L48: li t1,37 bne a6,t1,.L28 li s5,1 slli t3,a3,2 lla s6,chas slli a6,a4,2 slli s5,s5,57 mv t5,a3 add t3,s6,t3 add a6,a7,a6 sext.w t2,a3 li s7,42 li s10,57 addi s5,s5,1025 li s8,32 .L53: mv s9,a5 lw a5,0(t3) sd t2,8(sp) addiw t1,a5,-37 srl a3,s5,t1 andi a3,a3,1 beq a5,s7,.L55 bgtu t1,s10,.L56 bne a3,zero,.L55 .L56: addiw a3,t2,1 mv a5,s9 .L54: slli a6,a3,2 add s6,s6,a6 li a6,37 sw a6,0(s6) li t3,1 j .L28 .L55: addi t5,t5,-1 sw s8,0(a6) sw a5,4(a6) sext.w t2,t5 addiw a4,a4,2 addi t3,t3,-4 addi a6,a6,8 li a1,1 bne t2,zero,.L53 ld a3,8(sp) j .L54 .L135: subw t4,a0,a5 j .L68 .L132: li s5,1 slli t3,a3,2 lla s6,chas slli a6,a4,2 slli s5,s5,57 mv t5,a3 add t3,s6,t3 add a6,a7,a6 sext.w t2,a3 li s7,43 li s10,57 addi s5,s5,1313 li s9,32 sd a2,8(sp) .L34: mv s8,a5 lw a5,0(t3) mv a2,t2 addiw t1,a5,-37 srl a3,s5,t1 andi a3,a3,1 beq a5,s7,.L36 bgtu t1,s10,.L37 bne a3,zero,.L36 .L37: ld a2,8(sp) addiw a3,t2,1 mv a5,s8 .L35: slli a6,a3,2 add a6,s6,a6 li t1,43 sw t1,0(a6) li t3,1 j .L28 .L36: addi t5,t5,-1 sw s9,0(a6) sw a5,4(a6) sext.w t2,t5 addiw a4,a4,2 addi t3,t3,-4 addi a6,a6,8 li a1,1 bne t2,zero,.L34 mv a3,a2 ld a2,8(sp) j .L35 .L136: mulw t4,a0,a5 j .L68 .L133: li s5,1 slli t3,a3,2 lla s6,chas slli a6,a4,2 slli s5,s5,57 mv t5,a3 add t3,s6,t3 add a6,a7,a6 sext.w t2,a3 li s7,43 li s10,57 addi s5,s5,1313 li s9,32 sd a2,8(sp) .L39: mv s8,a5 lw a5,0(t3) mv a2,t2 addiw t1,a5,-37 srl a3,s5,t1 andi a3,a3,1 beq a5,s7,.L41 bgtu t1,s10,.L42 bne a3,zero,.L41 .L42: ld a2,8(sp) addiw a3,t2,1 mv a5,s8 .L40: slli a6,a3,2 add a6,s6,a6 li t1,45 sw t1,0(a6) li t3,1 j .L28 .L41: addi t5,t5,-1 sw s9,0(a6) sw a5,4(a6) sext.w t2,t5 addiw a4,a4,2 addi t3,t3,-4 addi a6,a6,8 li a1,1 bne t2,zero,.L39 mv a3,a2 ld a2,8(sp) j .L40 .L88: li s7,1 li s6,1 li ra,1 j .L74 .L86: mv a5,a1 j .L60 .L80: li a1,1 li t3,1 j .L28 .L71: li s7,37 bne a2,s7,.L72 remw t4,a0,a5 j .L68 .L72: li s7,94 bne a2,s7,.L68 li t4,1 beq a5,zero,.L68 .L73: addiw a5,a5,-1 mulw t4,a0,t4 bne a5,zero,.L73 j .L68 .L43: li t1,47 bne a6,t1,.L48 li s5,1 slli t3,a3,2 lla s6,chas slli a6,a4,2 slli s5,s5,57 mv t2,a3 add t3,s6,t3 add a6,a7,a6 sext.w t5,a3 li s8,42 li s10,57 addi s5,s5,1025 li s9,32 sd a2,8(sp) .L49: mv s7,a5 lw a5,0(t3) mv a2,t5 addiw t1,a5,-37 srl a3,s5,t1 andi a3,a3,1 beq a5,s8,.L51 bgtu t1,s10,.L52 bne a3,zero,.L51 .L52: ld a2,8(sp) addiw a3,t5,1 mv a5,s7 .L50: slli a6,a3,2 add a6,s6,a6 li t1,47 sw t1,0(a6) li t3,1 j .L28 .L51: addi t2,t2,-1 sw s9,0(a6) sw a5,4(a6) sext.w t5,t2 addiw a4,a4,2 addi t3,t3,-4 addi a6,a6,8 li a1,1 bne t5,zero,.L49 mv a3,a2 ld a2,8(sp) j .L50 .size main, .-main .globl get2 .globl get .globl c .globl ii .globl i .globl chat .globl chas .globl intt .globl ints .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 .section .rodata.cst8,"aM",@progbits,8 .align 3 .LC0: .dword 4611686018427431968 .data .align 2 .set .LANCHOR1,. + 0 .type ii, @object .size ii, 4 ii: .word 1 .bss .align 3 .set .LANCHOR0,. + 0 .type intt, @object .size intt, 4 intt: .zero 4 .type chat, @object .size chat, 4 chat: .zero 4 .type c, @object .size c, 4 c: .zero 4 .type i, @object .size i, 4 i: .zero 4 .type get2, @object .size get2, 40000 get2: .zero 40000 .type get, @object .size get, 40000 get: .zero 40000 .type chas, @object .size chas, 40000 chas: .zero 40000 .type ints, @object .size ints, 40000 ints: .zero 40000 .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