899 lines
12 KiB
ArmAsm
899 lines
12 KiB
ArmAsm
.file "23_json.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 is_number
|
|
.type is_number, @function
|
|
is_number:
|
|
addiw a0,a0,-48
|
|
sltiu a0,a0,10
|
|
ret
|
|
.size is_number, .-is_number
|
|
.align 1
|
|
.globl skip_space
|
|
.type skip_space, @function
|
|
skip_space:
|
|
lla a3,.LANCHOR0
|
|
lw a4,0(a3)
|
|
ble a1,a4,.L3
|
|
slli a5,a4,2
|
|
add a0,a0,a5
|
|
addiw a4,a4,1
|
|
li a2,32
|
|
li a6,9
|
|
li a7,10
|
|
li t1,13
|
|
.L5:
|
|
lw a5,0(a0)
|
|
beq a5,a2,.L11
|
|
beq a5,a6,.L11
|
|
beq a5,a7,.L11
|
|
bne a5,t1,.L3
|
|
.L11:
|
|
sext.w a5,a4
|
|
sw a5,0(a3)
|
|
addi a0,a0,4
|
|
addiw a4,a4,1
|
|
bgt a1,a5,.L5
|
|
.L3:
|
|
ret
|
|
.size skip_space, .-skip_space
|
|
.align 1
|
|
.globl detect_item
|
|
.type detect_item, @function
|
|
detect_item:
|
|
addi sp,sp,-80
|
|
sd s1,56(sp)
|
|
lla s1,.LANCHOR0
|
|
lw t3,0(s1)
|
|
sd ra,72(sp)
|
|
sd s0,64(sp)
|
|
sd s2,48(sp)
|
|
sd s3,40(sp)
|
|
sd s4,32(sp)
|
|
sd s5,24(sp)
|
|
sd s6,16(sp)
|
|
sd s7,8(sp)
|
|
ble a2,t3,.L26
|
|
mv s0,a2
|
|
mv s2,a1
|
|
li a2,32
|
|
li a7,9
|
|
li t1,10
|
|
li t4,13
|
|
li a1,123
|
|
li t5,91
|
|
li t6,34
|
|
li t2,110
|
|
li s3,116
|
|
li t0,102
|
|
.L13:
|
|
slli a3,t3,2
|
|
add a3,s2,a3
|
|
addiw a6,t3,1
|
|
mv a5,t3
|
|
.L17:
|
|
lw a4,0(a3)
|
|
beq a4,a2,.L23
|
|
beq a4,a7,.L23
|
|
beq a4,t1,.L23
|
|
bne a4,t4,.L224
|
|
.L23:
|
|
sext.w a5,a6
|
|
sw a5,0(s1)
|
|
addi a3,a3,4
|
|
addiw a6,a6,1
|
|
bgt s0,a5,.L17
|
|
mv a4,a5
|
|
.L18:
|
|
bne a0,zero,.L16
|
|
slli a5,a5,2
|
|
add a5,s2,a5
|
|
lw a5,0(a5)
|
|
beq a5,a1,.L149
|
|
beq a5,t5,.L150
|
|
beq a5,t6,.L151
|
|
addiw a6,a5,-48
|
|
sext.w a3,a5
|
|
li a0,1
|
|
bgtu a6,a7,.L225
|
|
.L24:
|
|
ble s0,a4,.L26
|
|
ble s0,t3,.L147
|
|
mv t3,a4
|
|
j .L13
|
|
.L225:
|
|
beq a5,t2,.L153
|
|
bgt a5,t2,.L25
|
|
beq a5,t0,.L154
|
|
ble a5,t0,.L226
|
|
.L26:
|
|
li a0,0
|
|
.L187:
|
|
ld ra,72(sp)
|
|
ld s0,64(sp)
|
|
ld s1,56(sp)
|
|
ld s2,48(sp)
|
|
ld s3,40(sp)
|
|
ld s4,32(sp)
|
|
ld s5,24(sp)
|
|
ld s6,16(sp)
|
|
ld s7,8(sp)
|
|
addi sp,sp,80
|
|
jr ra
|
|
.L226:
|
|
addiw a5,a3,-43
|
|
andi a5,a5,-3
|
|
sext.w a5,a5
|
|
bne a5,zero,.L26
|
|
li a0,1
|
|
j .L24
|
|
.L149:
|
|
li a0,4
|
|
j .L24
|
|
.L224:
|
|
mv a4,a5
|
|
addiw a5,a6,-1
|
|
j .L18
|
|
.L150:
|
|
li a0,3
|
|
j .L24
|
|
.L25:
|
|
bne a5,s3,.L26
|
|
li a0,5
|
|
j .L24
|
|
.L151:
|
|
li a0,2
|
|
j .L24
|
|
.L154:
|
|
li a0,6
|
|
j .L24
|
|
.L147:
|
|
mv a5,a4
|
|
.L16:
|
|
li a3,7
|
|
bgtu a0,a3,.L26
|
|
lla a2,.L28
|
|
slli a3,a0,2
|
|
add a3,a3,a2
|
|
lw a3,0(a3)
|
|
add a3,a3,a2
|
|
jr a3
|
|
.section .rodata
|
|
.align 2
|
|
.align 2
|
|
.L28:
|
|
.word .L26-.L28
|
|
.word .L34-.L28
|
|
.word .L33-.L28
|
|
.word .L32-.L28
|
|
.word .L31-.L28
|
|
.word .L30-.L28
|
|
.word .L29-.L28
|
|
.word .L27-.L28
|
|
.text
|
|
.L153:
|
|
li a0,7
|
|
j .L24
|
|
.L34:
|
|
slli a3,a5,2
|
|
add a3,s2,a3
|
|
lw a3,0(a3)
|
|
li a2,43
|
|
beq a3,a2,.L194
|
|
li a2,45
|
|
beq a3,a2,.L194
|
|
.L36:
|
|
ble s0,a4,.L26
|
|
slli a5,a4,2
|
|
add a5,s2,a5
|
|
lw a3,0(a5)
|
|
li a2,9
|
|
addiw a3,a3,-48
|
|
bgtu a3,a2,.L26
|
|
.L38:
|
|
lw a3,0(a5)
|
|
addiw a3,a3,-48
|
|
bgtu a3,a2,.L37
|
|
addiw a4,a4,1
|
|
sw a4,0(s1)
|
|
addi a5,a5,4
|
|
bne a4,s0,.L38
|
|
.L59:
|
|
li a0,1
|
|
j .L187
|
|
.L33:
|
|
addiw a4,a5,1
|
|
sw a4,0(s1)
|
|
bge a4,s0,.L26
|
|
li a2,34
|
|
li a3,92
|
|
j .L51
|
|
.L49:
|
|
addiw a4,a4,1
|
|
.L50:
|
|
sw a4,0(s1)
|
|
ble s0,a4,.L26
|
|
.L51:
|
|
slli a5,a4,2
|
|
add a5,s2,a5
|
|
lw a5,0(a5)
|
|
beq a5,a2,.L48
|
|
bne a5,a3,.L49
|
|
addiw a4,a4,2
|
|
j .L50
|
|
.L32:
|
|
addiw a4,a5,1
|
|
sw a4,0(s1)
|
|
bge a4,s0,.L52
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
addiw a5,a5,2
|
|
li a2,32
|
|
li a1,9
|
|
li a6,10
|
|
li a0,13
|
|
.L53:
|
|
lw a3,0(a4)
|
|
beq a3,a2,.L196
|
|
beq a3,a1,.L196
|
|
beq a3,a6,.L196
|
|
bne a3,a0,.L58
|
|
.L196:
|
|
sext.w a3,a5
|
|
sw a3,0(s1)
|
|
addi a4,a4,4
|
|
addiw a5,a5,1
|
|
bgt s0,a3,.L53
|
|
.L52:
|
|
mv a2,s0
|
|
mv a1,s2
|
|
li a0,0
|
|
call detect_item
|
|
beq a0,zero,.L26
|
|
lw a5,0(s1)
|
|
ble s0,a5,.L60
|
|
slli a3,a5,2
|
|
add a3,s2,a3
|
|
addiw a4,a5,1
|
|
li a7,32
|
|
li a6,9
|
|
li a0,10
|
|
li a1,13
|
|
.L62:
|
|
lw a2,0(a3)
|
|
beq a2,a7,.L198
|
|
beq a2,a6,.L198
|
|
beq a2,a0,.L198
|
|
bne a2,a1,.L60
|
|
.L198:
|
|
sext.w a5,a4
|
|
sw a5,0(s1)
|
|
addi a3,a3,4
|
|
addiw a4,a4,1
|
|
bgt s0,a5,.L62
|
|
.L60:
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
lw a4,0(a4)
|
|
li a3,44
|
|
bne a4,a3,.L64
|
|
li s3,32
|
|
li s4,9
|
|
li s5,10
|
|
li s6,13
|
|
li s7,44
|
|
.L63:
|
|
addiw a4,a5,1
|
|
sw a4,0(s1)
|
|
bge a4,s0,.L69
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
addiw a5,a5,2
|
|
.L70:
|
|
lw a3,0(a4)
|
|
beq a3,s3,.L200
|
|
beq a3,s4,.L200
|
|
beq a3,s5,.L200
|
|
bne a3,s6,.L69
|
|
.L200:
|
|
sext.w a3,a5
|
|
sw a3,0(s1)
|
|
addi a4,a4,4
|
|
addiw a5,a5,1
|
|
bgt s0,a3,.L70
|
|
.L69:
|
|
mv a2,s0
|
|
mv a1,s2
|
|
li a0,0
|
|
call detect_item
|
|
beq a0,zero,.L26
|
|
lw a5,0(s1)
|
|
ble s0,a5,.L75
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
addiw a2,a5,1
|
|
.L76:
|
|
lw a3,0(a4)
|
|
beq a3,s3,.L202
|
|
beq a3,s4,.L202
|
|
beq a3,s5,.L202
|
|
bne a3,s6,.L75
|
|
.L202:
|
|
sext.w a5,a2
|
|
sw a5,0(s1)
|
|
addi a4,a4,4
|
|
addiw a2,a2,1
|
|
bgt s0,a5,.L76
|
|
.L75:
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
lw a4,0(a4)
|
|
beq a4,s7,.L63
|
|
.L64:
|
|
ble s0,a5,.L26
|
|
addiw a5,a5,1
|
|
li a0,32
|
|
li a1,9
|
|
li a2,10
|
|
li a3,13
|
|
.L82:
|
|
beq a4,a0,.L204
|
|
beq a4,a1,.L204
|
|
beq a4,a2,.L204
|
|
bne a4,a3,.L87
|
|
.L204:
|
|
sext.w a4,a5
|
|
sw a4,0(s1)
|
|
addiw a5,a5,1
|
|
ble s0,a4,.L26
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
lw a4,0(a4)
|
|
j .L82
|
|
.L31:
|
|
addiw a4,a5,1
|
|
sw a4,0(s1)
|
|
bge a4,s0,.L88
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
addiw a5,a5,2
|
|
li a2,32
|
|
li a1,9
|
|
li a6,10
|
|
li a0,13
|
|
.L89:
|
|
lw a3,0(a4)
|
|
beq a3,a2,.L206
|
|
beq a3,a1,.L206
|
|
beq a3,a6,.L206
|
|
bne a3,a0,.L94
|
|
.L206:
|
|
sext.w a3,a5
|
|
sw a3,0(s1)
|
|
addi a4,a4,4
|
|
addiw a5,a5,1
|
|
bgt s0,a3,.L89
|
|
.L88:
|
|
mv a2,s0
|
|
mv a1,s2
|
|
li a0,2
|
|
call detect_item
|
|
beq a0,zero,.L26
|
|
lw a5,0(s1)
|
|
ble s0,a5,.L26
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
addiw a5,a5,1
|
|
li a6,32
|
|
li a0,9
|
|
li a1,10
|
|
li a2,13
|
|
.L97:
|
|
lw a3,0(a4)
|
|
beq a3,a6,.L210
|
|
beq a3,a0,.L210
|
|
beq a3,a1,.L210
|
|
bne a3,a2,.L102
|
|
.L210:
|
|
sext.w a3,a5
|
|
sw a3,0(s1)
|
|
addi a4,a4,4
|
|
addiw a5,a5,1
|
|
bgt s0,a3,.L97
|
|
j .L26
|
|
.L30:
|
|
addiw a4,a5,3
|
|
bge a4,s0,.L26
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
lw a2,0(a4)
|
|
li a3,116
|
|
bne a2,a3,.L26
|
|
lw a2,4(a4)
|
|
li a3,114
|
|
bne a2,a3,.L26
|
|
lw a2,8(a4)
|
|
li a3,117
|
|
bne a2,a3,.L26
|
|
lw a3,12(a4)
|
|
li a4,101
|
|
bne a3,a4,.L26
|
|
.L208:
|
|
addiw a5,a5,4
|
|
sw a5,0(s1)
|
|
li a0,1
|
|
j .L187
|
|
.L29:
|
|
addiw a4,a5,4
|
|
bge a4,s0,.L26
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
lw a2,0(a4)
|
|
li a3,102
|
|
bne a2,a3,.L26
|
|
lw a2,4(a4)
|
|
li a3,97
|
|
bne a2,a3,.L26
|
|
lw a2,8(a4)
|
|
li a3,108
|
|
bne a2,a3,.L26
|
|
lw a2,12(a4)
|
|
li a3,115
|
|
bne a2,a3,.L26
|
|
lw a3,16(a4)
|
|
li a4,101
|
|
bne a3,a4,.L26
|
|
addiw a5,a5,5
|
|
sw a5,0(s1)
|
|
li a0,1
|
|
j .L187
|
|
.L27:
|
|
addiw a4,a5,3
|
|
bge a4,s0,.L26
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
lw a2,0(a4)
|
|
li a3,110
|
|
bne a2,a3,.L26
|
|
lw a2,4(a4)
|
|
li a3,117
|
|
bne a2,a3,.L26
|
|
lw a3,8(a4)
|
|
li a2,108
|
|
bne a3,a2,.L26
|
|
lw a4,12(a4)
|
|
bne a4,a3,.L26
|
|
j .L208
|
|
.L194:
|
|
addiw a4,a5,1
|
|
sw a4,0(s1)
|
|
j .L36
|
|
.L48:
|
|
ble s0,a4,.L26
|
|
addiw a4,a4,1
|
|
sw a4,0(s1)
|
|
li a0,1
|
|
j .L187
|
|
.L58:
|
|
addiw a4,a5,-1
|
|
ble s0,a4,.L52
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
lw a3,0(a4)
|
|
li a4,93
|
|
bne a3,a4,.L52
|
|
sw a5,0(s1)
|
|
.L227:
|
|
li a0,1
|
|
j .L187
|
|
.L94:
|
|
addiw a4,a5,-1
|
|
ble s0,a4,.L88
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
lw a3,0(a4)
|
|
li a4,125
|
|
bne a3,a4,.L88
|
|
sw a5,0(s1)
|
|
j .L227
|
|
.L37:
|
|
ble s0,a4,.L59
|
|
slli a3,a4,2
|
|
add a5,s2,a3
|
|
lw a2,0(a5)
|
|
li a5,46
|
|
beq a2,a5,.L228
|
|
.L40:
|
|
add a5,s2,a3
|
|
lw a2,0(a5)
|
|
li a5,101
|
|
bne a2,a5,.L59
|
|
addiw a5,a4,1
|
|
sw a5,0(s1)
|
|
bge a5,s0,.L59
|
|
addi a2,a3,4
|
|
add a2,s2,a2
|
|
lw a0,0(a2)
|
|
li a1,43
|
|
beq a0,a1,.L229
|
|
.L46:
|
|
lw a3,0(a2)
|
|
li a4,45
|
|
beq a3,a4,.L230
|
|
lw a5,0(s1)
|
|
.L143:
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
li a2,9
|
|
.L47:
|
|
lw a3,0(a4)
|
|
addiw a3,a3,-48
|
|
bgtu a3,a2,.L59
|
|
addiw a5,a5,1
|
|
sw a5,0(s1)
|
|
addi a4,a4,4
|
|
bne a5,s0,.L47
|
|
li a0,1
|
|
j .L187
|
|
.L102:
|
|
addiw a4,a5,-1
|
|
ble s0,a4,.L26
|
|
slli a4,a4,2
|
|
add a3,s2,a4
|
|
lw a2,0(a3)
|
|
li a3,58
|
|
bne a2,a3,.L26
|
|
sext.w a3,a5
|
|
sw a3,0(s1)
|
|
bge a3,s0,.L103
|
|
addi a4,a4,4
|
|
add a4,s2,a4
|
|
addiw a5,a5,1
|
|
li a6,32
|
|
li a0,9
|
|
li a1,10
|
|
li a2,13
|
|
.L104:
|
|
lw a3,0(a4)
|
|
beq a3,a6,.L212
|
|
beq a3,a0,.L212
|
|
beq a3,a1,.L212
|
|
bne a3,a2,.L103
|
|
.L212:
|
|
sext.w a3,a5
|
|
sw a3,0(s1)
|
|
addi a4,a4,4
|
|
addiw a5,a5,1
|
|
bgt s0,a3,.L104
|
|
.L103:
|
|
mv a2,s0
|
|
mv a1,s2
|
|
li a0,0
|
|
call detect_item
|
|
beq a0,zero,.L26
|
|
lw a5,0(s1)
|
|
ble s0,a5,.L109
|
|
slli a3,a5,2
|
|
add a3,s2,a3
|
|
addiw a4,a5,1
|
|
li a7,32
|
|
li a6,9
|
|
li a0,10
|
|
li a1,13
|
|
.L111:
|
|
lw a2,0(a3)
|
|
beq a2,a7,.L214
|
|
beq a2,a6,.L214
|
|
beq a2,a0,.L214
|
|
bne a2,a1,.L109
|
|
.L214:
|
|
sext.w a5,a4
|
|
sw a5,0(s1)
|
|
addi a3,a3,4
|
|
addiw a4,a4,1
|
|
bgt s0,a5,.L111
|
|
.L109:
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
lw a3,0(a4)
|
|
li a4,44
|
|
bne a3,a4,.L142
|
|
li s7,32
|
|
li s6,9
|
|
li s5,10
|
|
li s4,13
|
|
li s3,58
|
|
.L112:
|
|
addiw a4,a5,1
|
|
sw a4,0(s1)
|
|
bge a4,s0,.L118
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
addiw a5,a5,2
|
|
.L119:
|
|
lw a3,0(a4)
|
|
beq a3,s7,.L216
|
|
beq a3,s6,.L216
|
|
beq a3,s5,.L216
|
|
bne a3,s4,.L118
|
|
.L216:
|
|
sext.w a3,a5
|
|
sw a3,0(s1)
|
|
addi a4,a4,4
|
|
addiw a5,a5,1
|
|
bgt s0,a3,.L119
|
|
.L118:
|
|
mv a2,s0
|
|
mv a1,s2
|
|
li a0,2
|
|
call detect_item
|
|
beq a0,zero,.L26
|
|
lw a5,0(s1)
|
|
ble s0,a5,.L26
|
|
slli a3,a5,2
|
|
add a3,s2,a3
|
|
addiw a5,a5,1
|
|
.L124:
|
|
lw a4,0(a3)
|
|
beq a4,s7,.L218
|
|
beq a4,s6,.L218
|
|
beq a4,s5,.L218
|
|
bne a4,s4,.L129
|
|
.L218:
|
|
sext.w a4,a5
|
|
sw a4,0(s1)
|
|
addi a3,a3,4
|
|
addiw a5,a5,1
|
|
bgt s0,a4,.L124
|
|
j .L26
|
|
.L230:
|
|
addiw a5,a5,1
|
|
sw a5,0(s1)
|
|
blt a5,s0,.L143
|
|
li a0,1
|
|
j .L187
|
|
.L129:
|
|
bne a4,s3,.L26
|
|
sext.w a4,a5
|
|
sw a4,0(s1)
|
|
bge a4,s0,.L130
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
addiw a5,a5,1
|
|
.L131:
|
|
lw a3,0(a4)
|
|
beq a3,s7,.L220
|
|
beq a3,s6,.L220
|
|
beq a3,s5,.L220
|
|
bne a3,s4,.L130
|
|
.L220:
|
|
sext.w a3,a5
|
|
sw a3,0(s1)
|
|
addi a4,a4,4
|
|
addiw a5,a5,1
|
|
bgt s0,a3,.L131
|
|
.L130:
|
|
mv a2,s0
|
|
mv a1,s2
|
|
li a0,0
|
|
call detect_item
|
|
beq a0,zero,.L26
|
|
lw a5,0(s1)
|
|
ble s0,a5,.L136
|
|
slli a3,a5,2
|
|
add a3,s2,a3
|
|
addiw a4,a5,1
|
|
.L137:
|
|
lw a2,0(a3)
|
|
beq a2,s7,.L222
|
|
beq a2,s6,.L222
|
|
beq a2,s5,.L222
|
|
bne a2,s4,.L136
|
|
.L222:
|
|
sext.w a5,a4
|
|
sw a5,0(s1)
|
|
addi a3,a3,4
|
|
addiw a4,a4,1
|
|
bgt s0,a5,.L137
|
|
.L136:
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
lw a3,0(a4)
|
|
li a4,44
|
|
beq a3,a4,.L112
|
|
.L142:
|
|
mv a1,s0
|
|
mv a0,s2
|
|
call skip_space
|
|
lw a5,0(s1)
|
|
bge a5,s0,.L26
|
|
slli a4,a5,2
|
|
add a4,s2,a4
|
|
lw a3,0(a4)
|
|
li a4,125
|
|
bne a3,a4,.L26
|
|
addiw a5,a5,1
|
|
sw a5,0(s1)
|
|
li a0,1
|
|
j .L187
|
|
.L87:
|
|
addiw a4,a5,-1
|
|
ble s0,a4,.L26
|
|
slli a4,a4,2
|
|
add a4,s2,a4
|
|
lw a3,0(a4)
|
|
li a4,93
|
|
bne a3,a4,.L26
|
|
sw a5,0(s1)
|
|
j .L227
|
|
.L229:
|
|
addiw a5,a4,2
|
|
sw a5,0(s1)
|
|
bge a5,s0,.L59
|
|
addi a2,a3,8
|
|
add a2,s2,a2
|
|
j .L46
|
|
.L228:
|
|
addiw a2,a4,1
|
|
sw a2,0(s1)
|
|
bge a2,s0,.L59
|
|
addi a5,a3,4
|
|
add a5,s2,a5
|
|
addiw a3,a4,2
|
|
sext.w a1,s0
|
|
li a2,9
|
|
.L44:
|
|
lw a4,0(a5)
|
|
addiw a4,a4,-48
|
|
bgtu a4,a2,.L231
|
|
sext.w a4,a3
|
|
sw a4,0(s1)
|
|
addiw a0,a3,1
|
|
addi a5,a5,4
|
|
beq a1,a3,.L43
|
|
mv a3,a0
|
|
j .L44
|
|
.L231:
|
|
lw a4,0(s1)
|
|
.L43:
|
|
ble s0,a4,.L59
|
|
slli a3,a4,2
|
|
j .L40
|
|
.size detect_item, .-detect_item
|
|
.section .text.startup,"ax",@progbits
|
|
.align 1
|
|
.globl main
|
|
.type main, @function
|
|
main:
|
|
addi sp,sp,-32
|
|
sd ra,24(sp)
|
|
sd s0,16(sp)
|
|
sd s1,8(sp)
|
|
sd s2,0(sp)
|
|
call getch@plt
|
|
li a5,35
|
|
beq a0,a5,.L237
|
|
lla s0,buffer
|
|
li s1,0
|
|
li s2,35
|
|
.L234:
|
|
sw a0,0(s0)
|
|
call getch@plt
|
|
addiw s1,s1,1
|
|
addi s0,s0,4
|
|
bne a0,s2,.L234
|
|
.L233:
|
|
mv a1,s1
|
|
lla a0,buffer
|
|
call skip_space
|
|
lla a1,buffer
|
|
mv a2,s1
|
|
li a0,0
|
|
call detect_item
|
|
mv s0,a0
|
|
mv a1,s1
|
|
lla a0,buffer
|
|
call skip_space
|
|
beq s0,zero,.L235
|
|
li a0,111
|
|
call putch@plt
|
|
li a0,107
|
|
call putch@plt
|
|
li a0,10
|
|
call putch@plt
|
|
li a0,0
|
|
.L236:
|
|
ld ra,24(sp)
|
|
ld s0,16(sp)
|
|
ld s1,8(sp)
|
|
ld s2,0(sp)
|
|
addi sp,sp,32
|
|
jr ra
|
|
.L235:
|
|
li a0,110
|
|
call putch@plt
|
|
li a0,111
|
|
call putch@plt
|
|
li a0,116
|
|
call putch@plt
|
|
li a0,32
|
|
call putch@plt
|
|
li a0,111
|
|
call putch@plt
|
|
li a0,107
|
|
call putch@plt
|
|
li a0,10
|
|
call putch@plt
|
|
li a0,1
|
|
j .L236
|
|
.L237:
|
|
li s1,0
|
|
j .L233
|
|
.size main, .-main
|
|
.globl buffer
|
|
.globl pos
|
|
.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 pos, @object
|
|
.size pos, 4
|
|
pos:
|
|
.zero 4
|
|
.zero 4
|
|
.type buffer, @object
|
|
.size buffer, 200000000
|
|
buffer:
|
|
.zero 200000000
|
|
.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
|