Line 1... |
Line 1... |
.file "main.c"
|
.file "main.c"
|
.option nopic
|
.option nopic
|
.text
|
.text
|
.globl __mulsi3
|
|
.globl __udivsi3
|
.globl __udivsi3
|
|
.globl __mulsi3
|
.globl __modsi3
|
.globl __modsi3
|
.globl __divsi3
|
.globl __divsi3
|
.section .text.startup,"ax",@progbits
|
.section .text.startup,"ax",@progbits
|
.align 2
|
.align 2
|
.globl main
|
.globl main
|
.type main, @function
|
.type main, @function
|
main:
|
main:
|
addi sp,sp,-120
|
.LA6: auipc a5,%pcrel_hi(io)
|
sw s0,112(sp)
|
lbu a0,%pcrel_lo(.LA6)(a5)
|
lui s0,%hi(io)
|
addi sp,sp,-124
|
lbu a0,%lo(io)(s0)
|
sw ra,120(sp)
|
sw ra,116(sp)
|
sw s0,116(sp)
|
sw s1,108(sp)
|
sw s1,112(sp)
|
call board_name
|
call board_name
|
lbu a2,%lo(io)(s0)
|
.LA7: auipc a5,%pcrel_hi(io)
|
|
lbu a2,%pcrel_lo(.LA7)(a5)
|
mv a1,a0
|
mv a1,a0
|
lui a0,%hi(.LC3)
|
.LA8: auipc a0,%pcrel_hi(.LC5)
|
addi a0,a0,%lo(.LC3)
|
addi a0,a0,%pcrel_lo(.LA8)
|
call printf
|
call printf
|
lui a1,%hi(.LC4)
|
.LA9: auipc a2,%pcrel_hi(.LC6)
|
lui a0,%hi(.LC5)
|
.LA10: auipc a1,%pcrel_hi(.LC7)
|
addi a1,a1,%lo(.LC4)
|
.LA11: auipc a0,%pcrel_hi(.LC8)
|
addi a0,a0,%lo(.LC5)
|
addi a2,a2,%pcrel_lo(.LA9)
|
call printf
|
addi a1,a1,%pcrel_lo(.LA10)
|
addi a5,s0,%lo(io)
|
addi a0,a0,%pcrel_lo(.LA11)
|
lui s1,%hi(threads)
|
call printf
|
lbu t1,1(a5)
|
.LA12: auipc a5,%pcrel_hi(threads)
|
lbu t0,2(a5)
|
lw a5,%pcrel_lo(.LA12)(a5)
|
lw a4,%lo(threads)(s1)
|
li s0,0
|
li a5,1
|
beqz a5,.L7
|
andi t1,t1,0xff
|
|
andi t0,t0,0xff
|
|
addi s0,s0,%lo(io)
|
|
bgt a4,a5,.L29
|
|
lui a4,%hi(.LC1)
|
|
addi a4,a4,%lo(.LC1)
|
|
.L2:
|
.L2:
|
|
.LA23: auipc a4,%pcrel_hi(io)
|
|
.LA24: auipc a5,%pcrel_hi(io)
|
|
addi a4,a4,%pcrel_lo(.LA23)
|
|
addi a5,a5,%pcrel_lo(.LA24)
|
|
lbu s1,1(a4)
|
|
lbu a5,2(a5)
|
|
.LA0: auipc a4,%pcrel_hi(.LC0)
|
|
sw a4,8(sp)
|
|
andi a5,a5,0xff
|
|
sw a5,4(sp)
|
|
call check4rv32i
|
|
.LA25: auipc a5,%pcrel_hi(threads)
|
|
lw a4,8(sp)
|
|
lw a3,%pcrel_lo(.LA25)(a5)
|
|
andi s1,s1,0xff
|
li a2,16
|
li a2,16
|
li a1,16
|
li a1,16
|
|
.LA2: auipc a5,%pcrel_hi(.LC2)
|
|
addi a4,a4,%pcrel_lo(.LA0)
|
|
bnez a0,.L4
|
|
.LA1: auipc a4,%pcrel_hi(.LC1)
|
|
addi a4,a4,%pcrel_lo(.LA1)
|
|
.L4:
|
|
li t1,1
|
li a0,1000
|
li a0,1000
|
|
addi a5,a5,%pcrel_lo(.LA2)
|
|
bgt a3,t1,.L5
|
|
.LA3: auipc a5,%pcrel_hi(.LC3)
|
|
addi a5,a5,%pcrel_lo(.LA3)
|
|
.L5:
|
|
sw a5,12(sp)
|
sw a4,8(sp)
|
sw a4,8(sp)
|
sw t0,4(sp)
|
|
sw t1,0(sp)
|
|
call mac
|
call mac
|
li a5,1256
|
.LA4: auipc t1,%pcrel_hi(.LC4)
|
lw t1,0(sp)
|
li t0,1256
|
lw t0,4(sp)
|
mv a1,s0
|
lw a4,8(sp)
|
lw a5,12(sp)
|
beq a0,a5,.L30
|
|
lui a5,%hi(.LC1)
|
|
addi a5,a5,%lo(.LC1)
|
|
.L3:
|
|
lui a3,%hi(.LC6)
|
|
lui a0,%hi(.LC7)
|
|
mv a2,t0
|
|
mv a1,t1
|
|
addi a3,a3,%lo(.LC6)
|
|
addi a0,a0,%lo(.LC7)
|
|
call printf
|
|
sw zero,%lo(threads)(s1)
|
|
lhu a1,6(s0)
|
|
lui a0,%hi(.LC8)
|
|
addi a0,a0,%lo(.LC8)
|
|
call printf
|
|
lbu a0,1(s0)
|
|
lbu s1,2(s0)
|
|
lw a4,12(s0)
|
|
lw a2,12(s0)
|
|
li a1,999424
|
|
addi a1,a1,576
|
|
sw a2,4(sp)
|
|
sw a4,8(sp)
|
|
call __mulsi3
|
|
andi s1,s1,0xff
|
|
li a1,8192
|
|
sw a0,0(sp)
|
|
addi a1,a1,1808
|
|
mv a0,s1
|
|
call __mulsi3
|
|
lw a4,8(sp)
|
lw a4,8(sp)
|
lw a5,0(sp)
|
lw a3,4(sp)
|
addi a1,a4,1
|
mv a2,s1
|
add a0,a5,a0
|
addi s0,s0,1
|
|
addi t1,t1,%pcrel_lo(.LA4)
|
|
beq a0,t0,.L6
|
|
.LA5: auipc t1,%pcrel_hi(.LC3)
|
|
addi t1,t1,%pcrel_lo(.LA5)
|
|
.L6:
|
|
.LA26: auipc a0,%pcrel_hi(.LC13)
|
|
sw t1,0(sp)
|
|
addi a0,a0,%pcrel_lo(.LA26)
|
|
call printf
|
|
.LA27: auipc a5,%pcrel_hi(threads)
|
|
lw a5,%pcrel_lo(.LA27)(a5)
|
|
bne a5,s0,.L2
|
|
.L7:
|
|
.LA13: auipc a5,%pcrel_hi(threads)
|
|
sw zero,%pcrel_lo(.LA13)(a5)
|
|
.LA14: auipc a5,%pcrel_hi(io)
|
|
addi a5,a5,%pcrel_lo(.LA14)
|
|
lhu a1,6(a5)
|
|
.LA15: auipc a0,%pcrel_hi(.LC9)
|
|
addi a0,a0,%pcrel_lo(.LA15)
|
|
call printf
|
|
.LA16: auipc a4,%pcrel_hi(io)
|
|
.LA17: auipc a5,%pcrel_hi(io)
|
|
addi a4,a4,%pcrel_lo(.LA16)
|
|
addi a5,a5,%pcrel_lo(.LA17)
|
|
lbu t1,1(a4)
|
|
lbu a4,2(a5)
|
|
.LA18: auipc a2,%pcrel_hi(io)
|
|
slli a3,t1,5
|
|
slli a5,a4,2
|
|
sub a3,a3,t1
|
|
add a5,a5,a4
|
|
slli a0,a3,6
|
|
slli a5,a5,3
|
|
sub a5,a5,a4
|
|
addi a2,a2,%pcrel_lo(.LA18)
|
|
sub a0,a0,a3
|
|
lw a1,12(a2)
|
|
slli a0,a0,3
|
|
slli a5,a5,4
|
|
add a0,a0,t1
|
|
add a5,a5,a4
|
|
.LA19: auipc a3,%pcrel_hi(io)
|
|
addi a3,a3,%pcrel_lo(.LA19)
|
|
slli a5,a5,4
|
|
slli a0,a0,6
|
|
lw s0,12(a3)
|
|
add a0,a0,a5
|
|
addi a1,a1,1
|
call __udivsi3
|
call __udivsi3
|
lw a2,4(sp)
|
|
mv a1,a0
|
mv a1,a0
|
lui a0,%hi(.LC9)
|
.LA20: auipc a0,%pcrel_hi(.LC10)
|
addi a0,a0,%lo(.LC9)
|
mv a2,s0
|
|
addi a0,a0,%pcrel_lo(.LA20)
|
call printf
|
call printf
|
li a0,10
|
.LA21: auipc a0,%pcrel_hi(.LC11)
|
call putchar
|
addi a0,a0,%pcrel_lo(.LA21)
|
lui a0,%hi(.LC10)
|
call printf
|
addi a0,a0,%lo(.LC10)
|
.LA22: auipc a0,%pcrel_hi(.LC12)
|
call puts
|
addi a0,a0,%pcrel_lo(.LA22)
|
li a0,10
|
call printf
|
call usleep
|
.L3:
|
.L28:
|
.LA28: auipc a0,%pcrel_hi(.LC14)
|
lui a5,%hi(.LC11)
|
addi a0,a0,%pcrel_lo(.LA28)
|
addi a0,a5,%lo(.LC11)
|
|
call printf
|
call printf
|
li a2,64
|
li a2,64
|
li a1,0
|
li a1,0
|
addi a0,sp,44
|
addi a0,sp,48
|
call memset
|
call memset
|
li a1,64
|
li a1,64
|
addi a0,sp,44
|
addi a0,sp,48
|
call gets
|
call gets
|
li s1,0
|
addi s1,sp,16
|
addi a0,sp,44
|
li s0,1
|
lui a4,%hi(.LC12)
|
j .L8
|
.L4:
|
.L63:
|
addi a1,a4,%lo(.LC12)
|
|
call strtok
|
call strtok
|
addi a4,sp,108
|
sw a0,0(s1)
|
slli a5,s1,2
|
|
add a5,a4,a5
|
|
sw a0,-96(a5)
|
|
lui a4,%hi(.LC12)
|
|
beqz a0,.L5
|
|
addi s1,s1,1
|
|
li a5,8
|
li a5,8
|
|
beqz a0,.L14
|
|
beq s0,a5,.L14
|
|
.L9:
|
|
addi s0,s0,1
|
|
addi s1,s1,4
|
|
.L8:
|
|
.LA29: auipc a1,%pcrel_hi(.LC15)
|
|
li a5,1
|
|
addi a1,a1,%pcrel_lo(.LA29)
|
li a0,0
|
li a0,0
|
bne s1,a5,.L4
|
bne s0,a5,.L63
|
.L5:
|
.LA59: auipc a1,%pcrel_hi(.LC15)
|
lw s1,12(sp)
|
addi a1,a1,%pcrel_lo(.LA59)
|
beqz s1,.L28
|
addi a0,sp,48
|
lui a1,%hi(.LC13)
|
call strtok
|
addi a1,a1,%lo(.LC13)
|
sw a0,0(s1)
|
mv a0,s1
|
|
call strcmp
|
|
bnez a0,.L9
|
bnez a0,.L9
|
lui a0,%hi(.LC14)
|
.L14:
|
addi a0,a0,%lo(.LC14)
|
lw s0,16(sp)
|
call printf
|
beqz s0,.L3
|
j .L28
|
.LA30: auipc a1,%pcrel_hi(.LC16)
|
.L29:
|
addi a1,a1,%pcrel_lo(.LA30)
|
lui a4,%hi(.LC0)
|
mv a0,s0
|
addi a4,a4,%lo(.LC0)
|
|
j .L2
|
|
.L30:
|
|
lui a5,%hi(.LC2)
|
|
addi a5,a5,%lo(.LC2)
|
|
j .L3
|
|
.L9:
|
|
lui a1,%hi(.LC15)
|
|
addi a1,a1,%lo(.LC15)
|
|
mv a0,s1
|
|
call strcmp
|
call strcmp
|
beqz a0,.L50
|
beqz a0,.L64
|
lui a1,%hi(.LC18)
|
.LA32: auipc a1,%pcrel_hi(.LC18)
|
addi a1,a1,%lo(.LC18)
|
addi a1,a1,%pcrel_lo(.LA32)
|
mv a0,s1
|
mv a0,s0
|
call strcmp
|
call strcmp
|
bnez a0,.L11
|
beqz a0,.L59
|
lw s1,16(sp)
|
.LA35: auipc a1,%pcrel_hi(.LC21)
|
beqz s1,.L12
|
addi a1,a1,%pcrel_lo(.LA35)
|
mv a0,s1
|
mv a0,s0
|
|
call strcmp
|
|
beqz a0,.L65
|
|
.LA38: auipc a1,%pcrel_hi(.LC24)
|
|
addi a1,a1,%pcrel_lo(.LA38)
|
|
mv a0,s0
|
|
call strcmp
|
|
bnez a0,.L24
|
|
lw a0,20(sp)
|
|
beqz a0,.L25
|
call xtoi
|
call xtoi
|
mv s1,a0
|
slli a0,a0,16
|
.L12:
|
.LA39: auipc a5,%pcrel_hi(io)
|
addi a5,s1,256
|
srli a0,a0,16
|
sw a5,0(sp)
|
addi a5,a5,%pcrel_lo(.LA39)
|
.L16:
|
sh a0,8(a5)
|
lui a5,%hi(.LC19)
|
.L25:
|
mv a1,s1
|
.LA40: auipc a5,%pcrel_hi(io)
|
addi a0,a5,%lo(.LC19)
|
addi a5,a5,%pcrel_lo(.LA40)
|
|
lhu a1,8(a5)
|
|
.LA41: auipc a0,%pcrel_hi(.LC25)
|
|
addi a0,a0,%pcrel_lo(.LA41)
|
|
call printf
|
|
j .L3
|
|
.L64:
|
|
.LA31: auipc a0,%pcrel_hi(.LC17)
|
|
addi a0,a0,%pcrel_lo(.LA31)
|
call printf
|
call printf
|
li a4,0
|
j .L3
|
lui a2,%hi(.LC20)
|
.L65:
|
.L13:
|
lw a5,20(sp)
|
add a3,s1,a4
|
sw a5,8(sp)
|
lbu a1,0(a3)
|
beqz a5,.L19
|
addi a0,a2,%lo(.LC20)
|
mv a0,a5
|
sw a4,4(sp)
|
call xtoi
|
call printf
|
sw a0,8(sp)
|
lw a4,4(sp)
|
.L19:
|
li a3,16
|
lw a5,8(sp)
|
lui a2,%hi(.LC20)
|
addi s1,a5,16
|
addi a4,a4,1
|
addi a5,a5,256
|
bne a4,a3,.L13
|
sw a5,12(sp)
|
li a4,0
|
.L23:
|
.L15:
|
lw a5,8(sp)
|
add a3,s1,a4
|
.LA36: auipc a0,%pcrel_hi(.LC22)
|
lbu a0,0(a3)
|
addi a0,a0,%pcrel_lo(.LA36)
|
li a2,94
|
mv a1,a5
|
addi a3,a0,-32
|
mv s0,a5
|
andi a3,a3,0xff
|
call printf
|
bleu a3,a2,.L14
|
lw a5,8(sp)
|
|
.L20:
|
|
lbu a1,0(a5)
|
|
.LA37: auipc a0,%pcrel_hi(.LC23)
|
|
addi a5,a5,1
|
|
addi a0,a0,%pcrel_lo(.LA37)
|
|
sw a5,4(sp)
|
|
call printf
|
|
lw a5,4(sp)
|
|
bne s1,a5,.L20
|
|
.L22:
|
|
lbu a0,0(s0)
|
|
li a4,94
|
|
addi s0,s0,1
|
|
addi a5,a0,-32
|
|
andi a5,a5,0xff
|
|
bleu a5,a4,.L21
|
li a0,46
|
li a0,46
|
.L14:
|
.L21:
|
sw a4,4(sp)
|
|
call putchar
|
call putchar
|
lw a4,4(sp)
|
bne s1,s0,.L22
|
li a3,16
|
lw a5,8(sp)
|
addi a4,a4,1
|
|
bne a4,a3,.L15
|
|
li a0,10
|
li a0,10
|
call putchar
|
|
lw a5,0(sp)
|
|
addi s1,s1,16
|
addi s1,s1,16
|
bne s1,a5,.L16
|
addi a5,a5,16
|
j .L28
|
mv s0,a5
|
.L11:
|
sw a5,8(sp)
|
lui a1,%hi(.LC21)
|
call putchar
|
addi a1,a1,%lo(.LC21)
|
lw a4,12(sp)
|
mv a0,s1
|
bne s0,a4,.L23
|
call strcmp
|
j .L3
|
bnez a0,.L18
|
.L24:
|
lw a0,16(sp)
|
.LA42: auipc a1,%pcrel_hi(.LC26)
|
beqz a0,.L19
|
addi a1,a1,%pcrel_lo(.LA42)
|
call xtoi
|
mv a0,s0
|
slli a0,a0,16
|
|
srli a0,a0,16
|
|
sh a0,8(s0)
|
|
.L19:
|
|
lhu a1,8(s0)
|
|
lui a0,%hi(.LC22)
|
|
addi a0,a0,%lo(.LC22)
|
|
.L52:
|
|
call printf
|
|
j .L28
|
|
.L18:
|
|
lui a1,%hi(.LC23)
|
|
addi a1,a1,%lo(.LC23)
|
|
mv a0,s1
|
|
call strcmp
|
call strcmp
|
bnez a0,.L20
|
bnez a0,.L26
|
lw a0,16(sp)
|
lw a0,20(sp)
|
beqz a0,.L21
|
beqz a0,.L27
|
call atoi
|
call atoi
|
sw a0,12(s0)
|
.LA43: auipc a5,%pcrel_hi(io)
|
.L21:
|
addi a5,a5,%pcrel_lo(.LA43)
|
lui a0,%hi(.LC24)
|
sw a0,12(a5)
|
lw a1,12(s0)
|
.L27:
|
addi a0,a0,%lo(.LC24)
|
.LA44: auipc a5,%pcrel_hi(io)
|
j .L52
|
addi a5,a5,%pcrel_lo(.LA44)
|
.L20:
|
lw a1,12(a5)
|
lui a1,%hi(.LC25)
|
.LA45: auipc a0,%pcrel_hi(.LC27)
|
addi a1,a1,%lo(.LC25)
|
addi a0,a0,%pcrel_lo(.LA45)
|
mv a0,s1
|
call printf
|
|
j .L3
|
|
.L59:
|
|
.LA33: auipc a0,%pcrel_hi(.LC19)
|
|
addi a0,a0,%pcrel_lo(.LA33)
|
|
li s0,999424
|
|
call printf
|
|
addi a0,s0,576
|
|
call usleep
|
|
li a0,46
|
|
call putchar
|
|
addi a0,s0,576
|
|
call usleep
|
|
li a0,46
|
|
call putchar
|
|
addi a0,s0,576
|
|
call usleep
|
|
li a0,46
|
|
call putchar
|
|
.LA34: auipc a0,%pcrel_hi(.LC20)
|
|
addi a0,a0,%pcrel_lo(.LA34)
|
|
call printf
|
|
lw ra,120(sp)
|
|
lw s0,116(sp)
|
|
lw s1,112(sp)
|
|
li a0,0
|
|
addi sp,sp,124
|
|
jr ra
|
|
.L26:
|
|
.LA46: auipc a1,%pcrel_hi(.LC28)
|
|
addi a1,a1,%pcrel_lo(.LA46)
|
|
mv a0,s0
|
call strcmp
|
call strcmp
|
bnez a0,.L22
|
bnez a0,.L28
|
lw a0,16(sp)
|
lw a0,20(sp)
|
beqz a0,.L23
|
beqz a0,.L29
|
call xtoi
|
call xtoi
|
slli a0,a0,16
|
slli a0,a0,16
|
|
.LA47: auipc a5,%pcrel_hi(io)
|
srli a0,a0,16
|
srli a0,a0,16
|
sh a0,10(s0)
|
addi a5,a5,%pcrel_lo(.LA47)
|
.L23:
|
sh a0,10(a5)
|
lui a0,%hi(.LC26)
|
.L29:
|
lhu a1,10(s0)
|
.LA48: auipc a5,%pcrel_hi(io)
|
addi a0,a0,%lo(.LC26)
|
addi a5,a5,%pcrel_lo(.LA48)
|
j .L52
|
lhu a1,10(a5)
|
.L22:
|
.LA49: auipc a0,%pcrel_hi(.LC29)
|
lui a1,%hi(.LC27)
|
addi a0,a0,%pcrel_lo(.LA49)
|
addi a1,a1,%lo(.LC27)
|
call printf
|
mv a0,s1
|
j .L3
|
|
.L28:
|
|
.LA50: auipc a1,%pcrel_hi(.LC30)
|
|
addi a1,a1,%pcrel_lo(.LA50)
|
|
mv a0,s0
|
call strcmp
|
call strcmp
|
bnez a0,.L24
|
bnez a0,.L30
|
lw a0,16(sp)
|
|
call atoi
|
|
mv s1,a0
|
|
lw a0,20(sp)
|
lw a0,20(sp)
|
call atoi
|
call atoi
|
mv a1,a0
|
mv s0,a0
|
mv a0,s1
|
lw a0,24(sp)
|
call __mulsi3
|
|
mv a1,a0
|
|
lui a0,%hi(.LC28)
|
|
addi a0,a0,%lo(.LC28)
|
|
j .L52
|
|
.L24:
|
|
lui a1,%hi(.LC29)
|
|
addi a1,a1,%lo(.LC29)
|
|
mv a0,s1
|
|
call strcmp
|
|
bnez a0,.L25
|
|
lw a0,16(sp)
|
|
call atoi
|
|
mv s1,a0
|
|
lw a0,20(sp)
|
|
call atoi
|
call atoi
|
mv a1,a0
|
mv a1,a0
|
sw a0,4(sp)
|
mv a0,s0
|
mv a0,s1
|
call __mulsi3
|
call __modsi3
|
|
lw a5,4(sp)
|
|
sw a0,0(sp)
|
|
mv a0,s1
|
|
mv a1,a5
|
|
call __divsi3
|
|
lw a2,0(sp)
|
|
mv a1,a0
|
mv a1,a0
|
lui a0,%hi(.LC30)
|
.LA51: auipc a0,%pcrel_hi(.LC31)
|
addi a0,a0,%lo(.LC30)
|
addi a0,a0,%pcrel_lo(.LA51)
|
.L53:
|
|
call printf
|
call printf
|
j .L28
|
j .L3
|
.L25:
|
.L30:
|
lui a1,%hi(.LC31)
|
.LA52: auipc a1,%pcrel_hi(.LC32)
|
addi a1,a1,%lo(.LC31)
|
addi a1,a1,%pcrel_lo(.LA52)
|
mv a0,s1
|
mv a0,s0
|
call strcmp
|
call strcmp
|
bnez a0,.L26
|
beqz a0,.L66
|
lw a0,16(sp)
|
.LA54: auipc a1,%pcrel_hi(.LC34)
|
call atoi
|
addi a1,a1,%pcrel_lo(.LA54)
|
mv s1,a0
|
mv a0,s0
|
|
call strcmp
|
|
bnez a0,.L32
|
lw a0,20(sp)
|
lw a0,20(sp)
|
call atoi
|
call atoi
|
sw a0,0(sp)
|
mv s0,a0
|
lw a0,24(sp)
|
lw a0,24(sp)
|
call atoi
|
call atoi
|
lw a1,0(sp)
|
mv s1,a0
|
|
lw a0,28(sp)
|
|
call atoi
|
slli a2,a0,16
|
slli a2,a0,16
|
|
slli a1,s1,16
|
srai a2,a2,16
|
srai a2,a2,16
|
slli a1,a1,16
|
|
srai a1,a1,16
|
srai a1,a1,16
|
mv a0,s1
|
mv a0,s0
|
call mac
|
call mac
|
mv a1,a0
|
mv a1,a0
|
lui a0,%hi(.LC32)
|
.LA55: auipc a0,%pcrel_hi(.LC35)
|
addi a0,a0,%lo(.LC32)
|
addi a0,a0,%pcrel_lo(.LA55)
|
j .L52
|
call printf
|
.L26:
|
j .L3
|
lui a1,%hi(.LC33)
|
.L66:
|
addi a1,a1,%lo(.LC33)
|
lw a0,20(sp)
|
mv a0,s1
|
call atoi
|
|
mv s0,a0
|
|
lw a0,24(sp)
|
|
call atoi
|
|
mv s1,a0
|
|
mv a1,a0
|
|
mv a0,s0
|
|
call __modsi3
|
|
sw a0,4(sp)
|
|
mv a1,s1
|
|
mv a0,s0
|
|
call __divsi3
|
|
lw a2,4(sp)
|
|
mv a1,a0
|
|
.LA53: auipc a0,%pcrel_hi(.LC33)
|
|
addi a0,a0,%pcrel_lo(.LA53)
|
|
call printf
|
|
j .L3
|
|
.L32:
|
|
.LA56: auipc a1,%pcrel_hi(.LC36)
|
|
addi a1,a1,%pcrel_lo(.LA56)
|
|
mv a0,s0
|
call strcmp
|
call strcmp
|
bnez a0,.L27
|
beqz a0,.L67
|
lw a0,16(sp)
|
lbu a5,0(s0)
|
|
beqz a5,.L3
|
|
.LA58: auipc a0,%pcrel_hi(.LC38)
|
|
mv a1,s0
|
|
addi a0,a0,%pcrel_lo(.LA58)
|
|
call printf
|
|
j .L3
|
|
.L67:
|
|
lw a0,20(sp)
|
call xtoi
|
call xtoi
|
mv a1,a0
|
mv a1,a0
|
srai a2,a0,1
|
.LA57: auipc a0,%pcrel_hi(.LC37)
|
lui a0,%hi(.LC34)
|
srai a2,a1,1
|
addi a0,a0,%lo(.LC34)
|
addi a0,a0,%pcrel_lo(.LA57)
|
j .L53
|
|
.L27:
|
|
lbu a5,0(s1)
|
|
beqz a5,.L28
|
|
lui a0,%hi(.LC35)
|
|
mv a1,s1
|
|
addi a0,a0,%lo(.LC35)
|
|
j .L52
|
|
.L50:
|
|
lui a0,%hi(.LC16)
|
|
addi a0,a0,%lo(.LC16)
|
|
call printf
|
call printf
|
li s0,999424
|
j .L3
|
addi a0,s0,576
|
|
call usleep
|
|
li a0,46
|
|
call putchar
|
|
addi a0,s0,576
|
|
call usleep
|
|
li a0,46
|
|
call putchar
|
|
addi a0,s0,576
|
|
call usleep
|
|
li a0,46
|
|
call putchar
|
|
lui a0,%hi(.LC17)
|
|
addi a0,a0,%lo(.LC17)
|
|
call puts
|
|
lw ra,116(sp)
|
|
lw s0,112(sp)
|
|
lw s1,108(sp)
|
|
li a0,0
|
|
addi sp,sp,120
|
|
jr ra
|
|
.size main, .-main
|
.size main, .-main
|
.section .rodata.str1.4,"aMS",@progbits,1
|
.section .rodata.str1.4,"aMS",@progbits,1
|
.align 2
|
.align 2
|
.LC0:
|
.LC0:
|
.string "+MT"
|
.string "i"
|
|
.zero 2
|
.LC1:
|
.LC1:
|
|
.string "e"
|
|
.zero 2
|
|
.LC2:
|
|
.string "+MT"
|
|
.LC3:
|
.string ""
|
.string ""
|
.zero 3
|
.zero 3
|
.LC2:
|
.LC4:
|
.string "+MAC"
|
.string "+MAC"
|
.zero 3
|
.zero 3
|
.LC3:
|
.LC5:
|
.string "board: %s (id=%d)\n"
|
.string "board: %s (id=%d)\n"
|
.zero 1
|
.zero 1
|
.LC4:
|
|
.string "Sun, 10 Jan 2021 18:33:44 -0200"
|
|
.LC5:
|
|
.string "build: darkriscv fw build %s\n"
|
|
.zero 2
|
|
.LC6:
|
.LC6:
|
.string "rv32e"
|
.string "rv32e"
|
.zero 2
|
.zero 2
|
.LC7:
|
.LC7:
|
.string "core0: darkriscv@%d.%dMHz with %s%s%s\n"
|
.string "Mon, 01 Feb 2021 04:06:48 -0300"
|
.zero 1
|
|
.LC8:
|
.LC8:
|
.string "uart0: 115200 bps (div=%d)\n"
|
.string "build: %s for %s\n"
|
.LC9:
|
|
.string "timr0: periodic timer=%dHz (io.timer=%d)\n"
|
|
.zero 2
|
.zero 2
|
|
.LC9:
|
|
.string "uart0: 115200 bps (div=%d)\n"
|
.LC10:
|
.LC10:
|
.string "Welcome to DarkRISCV!"
|
.string "timr0: frequency=%dHz (io.timer=%d)\n"
|
.zero 2
|
.zero 3
|
.LC11:
|
.LC11:
|
|
.string "\n"
|
|
.zero 2
|
|
.LC12:
|
|
.string "Welcome to DarkRISCV!\n"
|
|
.zero 1
|
|
.LC13:
|
|
.string "core0/thread%d: darkriscv@%d.%dMHz rv32%s%s%s\n"
|
|
.zero 1
|
|
.LC14:
|
.string "> "
|
.string "> "
|
.zero 1
|
.zero 1
|
.LC12:
|
.LC15:
|
.string " "
|
.string " "
|
.zero 2
|
.zero 2
|
.LC13:
|
.LC16:
|
.string "clear"
|
.string "clear"
|
.zero 2
|
.zero 2
|
.LC14:
|
.LC17:
|
.string "\033[H\033[2J"
|
.string "\033[H\033[2J"
|
.LC15:
|
.LC18:
|
.string "reboot"
|
.string "reboot"
|
.zero 1
|
.zero 1
|
.LC16:
|
.LC19:
|
.string "core0: reboot in 3 seconds"
|
.string "core0: reboot in 3 seconds"
|
.zero 1
|
.zero 1
|
.LC17:
|
.LC20:
|
.string "done."
|
.string "done.\n"
|
.zero 2
|
.zero 1
|
.LC18:
|
.LC21:
|
.string "dump"
|
.string "dump"
|
.zero 3
|
.zero 3
|
.LC19:
|
.LC22:
|
.string "%x: "
|
.string "%x: "
|
.zero 3
|
.zero 3
|
.LC20:
|
.LC23:
|
.string "%x "
|
.string "%x "
|
.LC21:
|
.LC24:
|
.string "led"
|
.string "led"
|
.LC22:
|
.LC25:
|
.string "led = %x\n"
|
.string "led = %x\n"
|
.zero 2
|
.zero 2
|
.LC23:
|
.LC26:
|
.string "timer"
|
.string "timer"
|
.zero 2
|
.zero 2
|
.LC24:
|
.LC27:
|
.string "timer = %d\n"
|
.string "timer = %d\n"
|
.LC25:
|
.LC28:
|
.string "gpio"
|
.string "gpio"
|
.zero 3
|
.zero 3
|
.LC26:
|
.LC29:
|
.string "gpio = %x\n"
|
.string "gpio = %x\n"
|
.zero 1
|
.zero 1
|
.LC27:
|
.LC30:
|
.string "mul"
|
.string "mul"
|
.LC28:
|
.LC31:
|
.string "mul = %d\n"
|
.string "mul = %d\n"
|
.zero 2
|
.zero 2
|
.LC29:
|
.LC32:
|
.string "div"
|
.string "div"
|
.LC30:
|
.LC33:
|
.string "div = %d, mod = %d\n"
|
.string "div = %d, mod = %d\n"
|
.LC31:
|
.LC34:
|
.string "mac"
|
.string "mac"
|
.LC32:
|
.LC35:
|
.string "mac = %d\n"
|
.string "mac = %d\n"
|
.zero 2
|
.zero 2
|
.LC33:
|
.LC36:
|
.string "srai"
|
.string "srai"
|
.zero 3
|
.zero 3
|
.LC34:
|
.LC37:
|
.string "srai %x >> 1 = %x\n"
|
.string "srai %x >> 1 = %x\n"
|
.zero 1
|
.zero 1
|
.LC35:
|
.LC38:
|
.string "command: [%s] not found.\nvalid commands: clear, dump <hex>, led <hex>, timer <dec>, gpio <hex>\n mul <dec> <dec>, div <dec> <dec>, mac <dec> <dec> <dec>\n rd[m][bwl] <hex> [<hex> when m], wr[m][bwl] <hex> <hex> [<hex> when m]\n"
|
.string "command: [%s] not found.\nvalid commands: clear, dump <hex>, led <hex>, timer <dec>, gpio <hex>\n mul <dec> <dec>, div <dec> <dec>, mac <dec> <dec> <dec>\n rd[m][bwl] <hex> [<hex> when m], wr[m][bwl] <hex> <hex> [<hex> when m]\n"
|
.ident "GCC: (GNU) 9.0.0 20180818 (experimental)"
|
.ident "GCC: (GNU) 9.0.0 20180818 (experimental)"
|
|
|
No newline at end of file
|
No newline at end of file
|