OpenCores
URL https://opencores.org/ocsvn/darkriscv/darkriscv/trunk

Subversion Repositories darkriscv

[/] [darkriscv/] [trunk/] [src/] [main.s] - Diff between revs 2 and 4

Show entire file | Details | Blame | View Log

Rev 2 Rev 4
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

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.