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

Subversion Repositories darkriscv

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

Show entire file | Details | Blame | View Log

Rev 2 Rev 4
Line 1... Line 1...
        .file   "stdio.c"
        .file   "stdio.c"
        .option nopic
        .option nopic
        .text
        .text
        .align  2
        .align  2
 
        .type   _idle.part.0, @function
 
_idle.part.0:
 
        .LA0: auipc     a5,%pcrel_hi(utimers)
 
        lw      a5,%pcrel_lo(.LA0)(a5)
 
        .LA1: auipc     a4,%pcrel_hi(utimers)
 
        addi    a3,a5,-1
 
        sw      a3,%pcrel_lo(.LA1)(a4)
 
        bnez    a5,.L2
 
        .LA2: auipc     a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA2)
 
        lhu     a5,8(a5)
 
        .LA3: auipc     a4,%pcrel_hi(io)
 
        addi    a4,a4,%pcrel_lo(.LA3)
 
        addi    a5,a5,1
 
        slli    a5,a5,16
 
        srli    a5,a5,16
 
        sh      a5,8(a4)
 
        li      a4,999424
 
        .LA4: auipc     a5,%pcrel_hi(utimers)
 
        addi    a4,a4,575
 
        sw      a4,%pcrel_lo(.LA4)(a5)
 
.L2:
 
        .LA5: auipc     a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA5)
 
        li      a4,-128
 
        sb      a4,3(a5)
 
        ret
 
        .size   _idle.part.0, .-_idle.part.0
 
        .align  2
 
        .type   __udiv_umod_si3.part.1, @function
 
__udiv_umod_si3.part.1:
 
        mv      a4,a0
 
        li      a5,1
 
        bleu    a0,a1,.L6
 
.L5:
 
        bltz    a1,.L6
 
        slli    a1,a1,1
 
        slli    a5,a5,1
 
        bltu    a1,a4,.L5
 
.L6:
 
        li      a0,0
 
        beqz    a4,.L21
 
.L8:
 
        beqz    a5,.L9
 
        bgtu    a1,a4,.L10
 
        sub     a4,a4,a1
 
        add     a0,a0,a5
 
        srli    a1,a1,1
 
        srli    a5,a5,1
 
        bnez    a4,.L8
 
.L9:
 
        bnez    a2,.L4
 
        mv      a0,a4
 
        ret
 
.L10:
 
        srli    a5,a5,1
 
        srli    a1,a1,1
 
        j       .L8
 
.L4:
 
        ret
 
.L21:
 
        mv      a0,a4
 
        j       .L9
 
        .size   __udiv_umod_si3.part.1, .-__udiv_umod_si3.part.1
 
        .align  2
 
        .type   __div_mod_si3.part.2, @function
 
__div_mod_si3.part.2:
 
        addi    sp,sp,-16
 
        sw      s0,8(sp)
 
        sw      s1,4(sp)
 
        sw      ra,12(sp)
 
        mv      s1,a2
 
        li      s0,0
 
        bgez    a0,.L23
 
        sub     a0,zero,a0
 
        li      s0,1
 
.L23:
 
        sw      zero,0(sp)
 
        bgez    a1,.L24
 
        li      a5,1
 
        sub     a1,zero,a1
 
        sw      a5,0(sp)
 
.L24:
 
        mv      a2,s1
 
        call    __udiv_umod_si3.part.1
 
        beqz    s1,.L25
 
        lw      a5,0(sp)
 
        beq     s0,a5,.L22
 
.L34:
 
        sub     a0,zero,a0
 
.L22:
 
        lw      ra,12(sp)
 
        lw      s0,8(sp)
 
        lw      s1,4(sp)
 
        addi    sp,sp,16
 
        jr      ra
 
.L25:
 
        bnez    s0,.L34
 
        lw      ra,12(sp)
 
        lw      s0,8(sp)
 
        lw      s1,4(sp)
 
        addi    sp,sp,16
 
        jr      ra
 
        .size   __div_mod_si3.part.2, .-__div_mod_si3.part.2
 
        .align  2
 
        .globl  _idle
 
        .type   _idle, @function
 
_idle:
 
        .LA6: auipc     a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA6)
 
        lbu     a5,3(a5)
 
        slli    a5,a5,24
 
        srai    a5,a5,24
 
        bltz    a5,.L38
 
        ret
 
.L38:
 
        tail    _idle.part.0
 
        .size   _idle, .-_idle
 
        .align  2
        .globl  getchar
        .globl  getchar
        .type   getchar, @function
        .type   getchar, @function
getchar:
getchar:
        lui     a5,%hi(io)
        addi    sp,sp,-12
        addi    a5,a5,%lo(io)
        sw      ra,8(sp)
.L2:
.L41:
        lbu     a4,4(a5)
        .LA8: auipc     a5,%pcrel_hi(io)
        andi    a4,a4,2
        addi    a5,a5,%pcrel_lo(.LA8)
        beqz    a4,.L2
        lbu     a5,4(a5)
 
        .LA7: auipc     a4,%pcrel_hi(io)
 
        addi    a4,a4,%pcrel_lo(.LA7)
 
        andi    a5,a5,2
 
        bnez    a5,.L45
 
        lbu     a5,3(a4)
 
        slli    a5,a5,24
 
        srai    a5,a5,24
 
        bgez    a5,.L41
 
        call    _idle.part.0
 
        j       .L41
 
.L45:
 
        lw      ra,8(sp)
 
        .LA9: auipc     a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA9)
        lbu     a0,5(a5)
        lbu     a0,5(a5)
        ret
        addi    sp,sp,12
 
        jr      ra
        .size   getchar, .-getchar
        .size   getchar, .-getchar
        .align  2
        .align  2
        .globl  putchar
        .globl  putchar
        .type   putchar, @function
        .type   putchar, @function
putchar:
putchar:
        lui     a5,%hi(io)
        addi    sp,sp,-12
        li      a4,10
        sw      s0,4(sp)
        addi    a5,a5,%lo(io)
        sw      ra,8(sp)
        bne     a0,a4,.L8
        li      a5,10
.L7:
        mv      s0,a0
        lbu     a4,4(a5)
        beq     a0,a5,.L49
        andi    a4,a4,1
.L52:
        bnez    a4,.L7
        .LA14: auipc    a5,%pcrel_hi(io)
        li      a4,13
        addi    a5,a5,%pcrel_lo(.LA14)
        sb      a4,5(a5)
        lbu     a5,4(a5)
.L8:
        .LA13: auipc    a4,%pcrel_hi(io)
        lbu     a4,4(a5)
        addi    a4,a4,%pcrel_lo(.LA13)
        andi    a4,a4,1
        andi    a5,a5,1
        bnez    a4,.L8
        beqz    a5,.L58
        andi    a4,a0,0xff
        lbu     a5,3(a4)
 
        slli    a5,a5,24
 
        srai    a5,a5,24
 
        bgez    a5,.L52
 
        call    _idle.part.0
 
        j       .L52
 
.L60:
 
        call    _idle.part.0
 
.L49:
 
        .LA11: auipc    a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA11)
 
        lbu     a5,4(a5)
 
        .LA10: auipc    a4,%pcrel_hi(io)
 
        addi    a4,a4,%pcrel_lo(.LA10)
 
        andi    a5,a5,1
 
        beqz    a5,.L59
 
        lbu     a5,3(a4)
 
        slli    a5,a5,24
 
        srai    a5,a5,24
 
        bgez    a5,.L49
 
        j       .L60
 
.L58:
 
        .LA15: auipc    a5,%pcrel_hi(io)
 
        andi    a4,s0,0xff
 
        addi    a5,a5,%pcrel_lo(.LA15)
        sb      a4,5(a5)
        sb      a4,5(a5)
 
        lw      ra,8(sp)
 
        lw      s0,4(sp)
        mv      a0,a4
        mv      a0,a4
        ret
        addi    sp,sp,12
 
        jr      ra
 
.L59:
 
        .LA12: auipc    a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA12)
 
        li      a4,13
 
        sb      a4,5(a5)
 
        j       .L52
        .size   putchar, .-putchar
        .size   putchar, .-putchar
        .align  2
        .align  2
        .globl  gets
        .globl  gets
        .type   gets, @function
        .type   gets, @function
gets:
gets:
        addi    sp,sp,-24
        addi    sp,sp,-24
        sw      s0,16(sp)
        sw      s0,16(sp)
        sw      s1,12(sp)
        sw      s1,12(sp)
        sw      ra,20(sp)
        sw      ra,20(sp)
        mv      s1,a0
 
        mv      s0,a0
 
.L12:
 
        addi    a4,a1,-1
 
        beqz    a4,.L16
 
        sw      a1,4(sp)
        sw      a1,4(sp)
        sw      a4,0(sp)
        sw      a0,8(sp)
        call    getchar
        addi    s1,a1,-1
 
        mv      s0,a0
 
        beqz    s1,.L81
 
.L64:
 
        .LA17: auipc    a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA17)
 
        lbu     a5,4(a5)
 
        andi    a5,a5,2
 
        bnez    a5,.L82
 
        .LA16: auipc    a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA16)
 
        lbu     a5,3(a5)
 
        slli    a5,a5,24
 
        srai    a5,a5,24
 
        bgez    a5,.L64
 
        call    _idle.part.0
 
        j       .L64
 
.L82:
 
        .LA18: auipc    a5,%pcrel_hi(io)
 
        addi    a5,a5,%pcrel_lo(.LA18)
 
        lbu     a4,5(a5)
        li      a3,10
        li      a3,10
        lw      a4,0(sp)
        andi    a5,a4,0xff
        lw      a1,4(sp)
        beq     a3,a4,.L66
        bne     a0,a3,.L13
        li      a4,13
.L16:
        beq     a5,a4,.L66
 
        mv      a0,a5
 
        sw      a5,0(sp)
 
        call    putchar
 
        lw      a5,0(sp)
 
        li      a4,8
 
        beq     a5,a4,.L83
 
        sb      a5,0(s0)
 
        sw      s1,4(sp)
 
        addi    s0,s0,1
 
.L68:
 
        lw      a5,4(sp)
 
        addi    s1,a5,-1
 
        bnez    s1,.L64
 
.L66:
        li      a0,10
        li      a0,10
        call    putchar
        call    putchar
 
        lw      a4,8(sp)
        sb      zero,0(s0)
        sb      zero,0(s0)
        bne     s0,s1,.L14
        sub     a5,a4,s0
        li      s1,0
        snez    a5,a5
.L14:
        sub     a5,zero,a5
 
        and     a5,a4,a5
 
        sw      a5,8(sp)
 
.L74:
        lw      ra,20(sp)
        lw      ra,20(sp)
        lw      s0,16(sp)
        lw      s0,16(sp)
        mv      a0,s1
        lw      a0,8(sp)
        lw      s1,12(sp)
        lw      s1,12(sp)
        addi    sp,sp,24
        addi    sp,sp,24
        jr      ra
        jr      ra
.L13:
.L83:
        sw      a1,8(sp)
        lw      a5,8(sp)
        sw      a4,4(sp)
        beq     a5,s0,.L72
        li      a3,13
 
        sw      a0,0(sp)
 
        beq     a0,a3,.L16
 
        call    putchar
 
        lw      a5,0(sp)
 
        li      a3,8
 
        lw      a4,4(sp)
 
        lw      a1,8(sp)
 
        bne     a5,a3,.L17
 
        beq     s0,s1,.L18
 
        sb      zero,-1(s0)
        sb      zero,-1(s0)
        mv      a4,a1
 
        addi    s0,s0,-1
        addi    s0,s0,-1
.L18:
        j       .L68
        mv      a1,a4
.L72:
        j       .L12
        sw      s1,4(sp)
.L17:
        j       .L68
        sb      a5,0(s0)
.L81:
        addi    s0,s0,1
        li      a0,10
        j       .L18
        call    putchar
 
        lw      a5,8(sp)
 
        sw      zero,8(sp)
 
        sb      zero,0(a5)
 
        j       .L74
        .size   gets, .-gets
        .size   gets, .-gets
        .align  2
        .align  2
        .globl  putstr
        .globl  putstr
        .type   putstr, @function
        .type   putstr, @function
putstr:
putstr:
        addi    sp,sp,-12
        addi    sp,sp,-12
        sw      s0,4(sp)
 
        sw      ra,8(sp)
        sw      ra,8(sp)
        mv      s0,a0
        sw      s0,4(sp)
        bnez    a0,.L24
        bnez    a0,.L94
        lui     s0,%hi(.LC2)
        .LA20: auipc    a5,%pcrel_hi(.LC2)
        addi    s0,s0,%lo(.LC2)
        addi    a5,a5,%pcrel_lo(.LA20)
.L24:
        mv      s0,a5
 
        j       .L96
 
.L87:
 
        addi    s0,s0,1
 
        call    putchar
 
.L96:
        lbu     a0,0(s0)
        lbu     a0,0(s0)
        bnez    a0,.L26
        bnez    a0,.L87
        lw      ra,8(sp)
        lw      ra,8(sp)
        lw      s0,4(sp)
        lw      s0,4(sp)
        addi    sp,sp,12
        addi    sp,sp,12
        jr      ra
        jr      ra
.L26:
.L94:
        addi    s0,s0,1
        mv      s0,a0
        call    putchar
        j       .L96
        j       .L24
 
        .size   putstr, .-putstr
        .size   putstr, .-putstr
        .align  2
        .align  2
        .globl  puts
        .globl  puts
        .type   puts, @function
        .type   puts, @function
puts:
puts:
        addi    sp,sp,-12
        addi    sp,sp,-12
        sw      ra,8(sp)
        sw      ra,8(sp)
        call    putstr
        sw      s0,4(sp)
 
        bnez    a0,.L107
 
        .LA22: auipc    a5,%pcrel_hi(.LC2)
 
        addi    a5,a5,%pcrel_lo(.LA22)
 
        mv      s0,a5
 
        j       .L109
 
.L100:
 
        addi    s0,s0,1
 
        call    putchar
 
.L109:
 
        lbu     a0,0(s0)
 
        bnez    a0,.L100
 
        lw      s0,4(sp)
        lw      ra,8(sp)
        lw      ra,8(sp)
        li      a0,10
        li      a0,10
        addi    sp,sp,12
        addi    sp,sp,12
        tail    putchar
        tail    putchar
 
.L107:
 
        mv      s0,a0
 
        j       .L109
        .size   puts, .-puts
        .size   puts, .-puts
        .globl  __udivsi3
        .globl  __udivsi3
        .globl  __umodsi3
        .globl  __umodsi3
        .align  2
        .align  2
        .globl  putdx
        .globl  putdx
        .type   putdx, @function
        .type   putdx, @function
putdx:
putdx:
        addi    sp,sp,-84
        .LA23: auipc    a5,%pcrel_hi(.LANCHOR0)
        sw      a1,0(sp)
        addi    sp,sp,-88
        lui     a1,%hi(.LANCHOR0)
        addi    a5,a5,%pcrel_lo(.LA23)
        sw      s0,76(sp)
        sw      s0,80(sp)
        sw      s1,72(sp)
        lw      s0,32(a5)
        li      a2,44
        lw      a4,0(a5)
        addi    s1,a1,%lo(.LANCHOR0)
        lw      t2,8(a5)
        mv      s0,a0
        sw      s0,64(sp)
        addi    a1,a1,%lo(.LANCHOR0)
        lw      s0,36(a5)
        addi    a0,sp,28
        sw      a4,32(sp)
        sw      ra,80(sp)
        lw      a4,4(a5)
        call    memcpy
        sw      s0,68(sp)
        li      a2,20
        lw      s0,40(a5)
        addi    a1,s1,44
        lw      t0,12(a5)
        addi    a0,sp,8
        lw      t1,16(a5)
        call    memcpy
        sw      s0,72(sp)
        lw      a4,0(sp)
        lw      s0,44(a5)
        addi    a5,sp,8
        lw      a2,20(a5)
        beqz    a4,.L32
        sw      a4,36(sp)
        addi    a5,sp,28
        sw      s0,12(sp)
.L32:
        lw      s0,48(a5)
        li      s1,24
        lw      a4,28(a5)
.L33:
        lw      a3,24(a5)
        lw      a1,0(a5)
        sw      s0,16(sp)
        bnez    a1,.L37
        lw      s0,52(a5)
        lw      ra,80(sp)
        sw      ra,84(sp)
        lw      s0,76(sp)
        sw      s1,76(sp)
        lw      s1,72(sp)
        sw      s0,20(sp)
        addi    sp,sp,84
        lw      s0,56(a5)
        jr      ra
        lw      a5,60(a5)
.L37:
        sw      t2,40(sp)
        li      a4,1
        sw      s0,24(sp)
        beq     a1,a4,.L34
        sw      t0,44(sp)
        bgtu    a1,s0,.L35
        sw      t1,48(sp)
.L34:
        sw      a2,52(sp)
        lw      a3,0(sp)
        sw      a3,56(sp)
        lui     a4,%hi(.LC3)
        sw      a4,60(sp)
        sw      a5,4(sp)
        sw      a5,28(sp)
        addi    a4,a4,%lo(.LC3)
        mv      s0,a1
        beqz    a3,.L36
        addi    a4,sp,12
        mv      a0,s0
        beqz    a1,.L111
 
        addi    a4,sp,32
 
.L111:
 
        lw      a1,0(a4)
 
        beqz    a1,.L110
 
        addi    s1,a4,4
 
        mv      a5,s1
 
        sw      s0,0(sp)
 
        li      s0,24
 
        mv      s1,s0
 
        mv      a3,a0
 
        mv      s0,a5
 
        j       .L116
 
.L124:
        call    __udivsi3
        call    __udivsi3
        li      a1,10
        li      a1,10
        call    __umodsi3
        call    __umodsi3
        lui     a5,%hi(.LC3)
        .LA25: auipc    a5,%pcrel_hi(.LC3)
        addi    a4,a5,%lo(.LC3)
        addi    a5,a5,%pcrel_lo(.LA25)
        add     a0,a4,a0
        add     a0,a0,a5
        lbu     a0,0(a0)
        lbu     a0,0(a0)
.L41:
 
        call    putchar
        call    putchar
        lw      a5,4(sp)
        lw      a3,4(sp)
.L35:
.L114:
 
        addi    s0,s0,4
 
        lw      a1,-4(s0)
        addi    s1,s1,-8
        addi    s1,s1,-8
        addi    a5,a5,4
        beqz    a1,.L110
        j       .L33
.L116:
.L36:
        li      a5,1
        addi    a3,s1,4
        beq     a1,a5,.L113
        srl     a3,s0,a3
        bgtu    a1,a3,.L114
        andi    a3,a3,15
.L113:
        add     a3,a4,a3
        addi    a5,s1,4
        lbu     a0,0(a3)
        lw      a4,0(sp)
        call    putchar
        srl     a5,a3,a5
        srl     a0,s0,s1
        .LA26: auipc    a2,%pcrel_hi(.LC3)
        lui     a5,%hi(.LC3)
        andi    a5,a5,15
        andi    a0,a0,15
        addi    a2,a2,%pcrel_lo(.LA26)
        addi    a4,a5,%lo(.LC3)
        sw      a3,4(sp)
        add     a4,a4,a0
        add     a5,a5,a2
        lbu     a0,0(a4)
        mv      a0,a3
        j       .L41
        bnez    a4,.L124
 
        lbu     a0,0(a5)
 
        sw      a2,8(sp)
 
        addi    s0,s0,4
 
        call    putchar
 
        lw      a3,4(sp)
 
        lw      a2,8(sp)
 
        srl     a5,a3,s1
 
        andi    a5,a5,15
 
        add     a2,a5,a2
 
        lbu     a0,0(a2)
 
        addi    s1,s1,-8
 
        call    putchar
 
        lw      a1,-4(s0)
 
        lw      a3,4(sp)
 
        bnez    a1,.L116
 
.L110:
 
        lw      ra,84(sp)
 
        lw      s0,80(sp)
 
        lw      s1,76(sp)
 
        addi    sp,sp,88
 
        jr      ra
        .size   putdx, .-putdx
        .size   putdx, .-putdx
        .align  2
        .align  2
        .globl  putx
        .globl  putx
        .type   putx, @function
        .type   putx, @function
putx:
putx:
Line 221... Line 467...
        .size   putd, .-putd
        .size   putd, .-putd
        .align  2
        .align  2
        .globl  printf
        .globl  printf
        .type   printf, @function
        .type   printf, @function
printf:
printf:
        addi    sp,sp,-36
        addi    sp,sp,-44
        sw      a5,32(sp)
        sw      s1,12(sp)
        addi    a5,sp,16
        sw      a5,40(sp)
        sw      s0,8(sp)
        sw      ra,20(sp)
        sw      ra,12(sp)
        sw      s0,16(sp)
        sw      s1,4(sp)
        sw      a1,24(sp)
        mv      s0,a0
        sw      a2,28(sp)
        sw      a1,16(sp)
        sw      a3,32(sp)
        sw      a2,20(sp)
        sw      a4,36(sp)
        sw      a3,24(sp)
        mv      s1,a0
        sw      a4,28(sp)
        lbu     a0,0(a0)
        sw      a5,0(sp)
        addi    a5,sp,24
.L45:
        sw      a5,8(sp)
        lbu     a0,0(s0)
        bnez    a0,.L128
        bnez    a0,.L51
        j       .L144
        lw      ra,12(sp)
.L150:
        lw      s0,8(sp)
        lbu     a0,1(s1)
        lw      s1,4(sp)
 
        addi    sp,sp,36
 
        jr      ra
 
.L51:
 
        li      a5,37
 
        addi    s1,s0,1
 
        bne     a0,a5,.L46
 
        lbu     a0,1(s0)
 
        li      a5,115
        li      a5,115
        bne     a0,a5,.L47
        addi    s1,s1,2
        lw      a5,0(sp)
        beq     a0,a5,.L147
        lw      a0,0(a5)
 
        addi    a4,a5,4
 
        sw      a4,0(sp)
 
        call    putstr
 
.L48:
 
        addi    s0,s1,1
 
        j       .L45
 
.L47:
 
        li      a5,120
        li      a5,120
        bne     a0,a5,.L49
        beq     a0,a5,.L148
        lw      a5,0(sp)
 
        lw      a0,0(a5)
 
        addi    a4,a5,4
 
        sw      a4,0(sp)
 
        call    putx
 
        j       .L48
 
.L49:
 
        li      a5,100
        li      a5,100
        bne     a0,a5,.L50
        beq     a0,a5,.L149
        lw      a5,0(sp)
 
        lw      a0,0(a5)
 
        addi    a4,a5,4
 
        sw      a4,0(sp)
 
        call    putd
 
        j       .L48
 
.L50:
 
        call    putchar
        call    putchar
        j       .L48
.L132:
.L46:
        lbu     a0,1(s0)
 
        beqz    a0,.L144
 
.L128:
 
        li      a5,37
 
        addi    s0,s1,1
 
        beq     a0,a5,.L150
        call    putchar
        call    putchar
        mv      s1,s0
        mv      a5,s0
        j       .L48
        mv      s0,s1
 
        lbu     a0,1(s0)
 
        mv      s1,a5
 
        bnez    a0,.L128
 
.L144:
 
        lw      ra,20(sp)
 
        lw      s0,16(sp)
 
        lw      s1,12(sp)
 
        li      a0,0
 
        addi    sp,sp,44
 
        jr      ra
 
.L149:
 
        lw      a5,8(sp)
 
        li      a1,1
 
        lw      a0,0(a5)
 
        addi    a5,a5,4
 
        sw      a5,8(sp)
 
        call    putdx
 
        j       .L132
 
.L148:
 
        lw      a5,8(sp)
 
        li      a1,0
 
        lw      a0,0(a5)
 
        addi    a5,a5,4
 
        sw      a5,8(sp)
 
        call    putdx
 
        j       .L132
 
.L147:
 
        lw      a3,8(sp)
 
        .LA29: auipc    a4,%pcrel_hi(.LC2)
 
        addi    a4,a4,%pcrel_lo(.LA29)
 
        lw      a5,0(a3)
 
        addi    a3,a3,4
 
        sw      a3,8(sp)
 
        bnez    a5,.L145
 
        mv      a5,a4
 
.L145:
 
        lbu     a0,0(a5)
 
        beqz    a0,.L132
 
.L133:
 
        addi    a5,a5,1
 
        sw      a5,0(sp)
 
        sw      a5,4(sp)
 
        call    putchar
 
        lw      a5,0(sp)
 
        lbu     a0,0(a5)
 
        bnez    a0,.L133
 
        j       .L132
        .size   printf, .-printf
        .size   printf, .-printf
        .align  2
        .align  2
        .globl  strncmp
        .globl  strncmp
        .type   strncmp, @function
        .type   strncmp, @function
strncmp:
strncmp:
        addi    a2,a2,-1
        li      a5,1
        li      a5,0
        lbu     a3,0(a0)
.L55:
        lbu     t1,0(a1)
        add     a4,a0,a5
        mv      a4,a0
 
        bne     a2,a5,.L152
 
        j       .L153
 
.L166:
 
        beqz    t1,.L153
 
        bne     a3,t1,.L153
        lbu     a3,0(a4)
        lbu     a3,0(a4)
        add     a4,a1,a5
        lbu     t1,0(a1)
        lbu     a4,0(a4)
        beqz    a5,.L153
        beq     a5,a2,.L54
.L152:
        beqz    a3,.L54
        addi    a4,a4,1
        beqz    a4,.L54
        not     a5,a4
        addi    a5,a5,1
        add     a5,a5,a2
        beq     a3,a4,.L55
        addi    a1,a1,1
.L54:
        add     a5,a0,a5
        sub     a0,a3,a4
        bnez    a3,.L166
 
.L153:
 
        sub     a0,a3,t1
        ret
        ret
        .size   strncmp, .-strncmp
        .size   strncmp, .-strncmp
        .align  2
        .align  2
        .globl  strcmp
        .globl  strcmp
        .type   strcmp, @function
        .type   strcmp, @function
strcmp:
strcmp:
        li      a2,-1
        lbu     a5,0(a0)
        tail    strncmp
        lbu     a4,0(a1)
 
        bnez    a5,.L168
 
        j       .L169
 
.L174:
 
        bne     a5,a4,.L169
 
        lbu     a5,0(a0)
 
        lbu     a4,0(a1)
 
        beqz    a5,.L172
 
.L168:
 
        addi    a0,a0,1
 
        addi    a1,a1,1
 
        bnez    a4,.L174
 
.L169:
 
        sub     a0,a5,a4
 
        ret
 
.L172:
 
        li      a5,0
 
        sub     a0,a5,a4
 
        ret
        .size   strcmp, .-strcmp
        .size   strcmp, .-strcmp
        .align  2
        .align  2
        .globl  strlen
        .globl  strlen
        .type   strlen, @function
        .type   strlen, @function
strlen:
strlen:
        li      a5,0
        mv      a5,a0
.L65:
        li      a0,0
        add     a4,a0,a5
        bnez    a5,.L176
        lbu     a4,0(a4)
        j       .L181
        beqz    a4,.L64
.L178:
 
        addi    a0,a0,1
 
.L176:
        addi    a5,a5,1
        addi    a5,a5,1
        add     a4,a0,a5
        lbu     a4,-1(a5)
        bnez    a4,.L65
        bnez    a4,.L178
.L64:
        ret
        mv      a0,a5
.L181:
        ret
        ret
        .size   strlen, .-strlen
        .size   strlen, .-strlen
        .align  2
        .align  2
        .globl  memcpy
        .globl  memcpy
        .type   memcpy, @function
        .type   memcpy, @function
memcpy:
memcpy:
        li      a5,0
        beqz    a2,.L183
.L72:
        add     a2,a0,a2
        bne     a5,a2,.L73
        mv      a5,a0
        ret
.L184:
.L73:
        addi    a1,a1,1
        add     a4,a1,a5
        lbu     a4,-1(a1)
        lbu     a3,0(a4)
 
        add     a4,a0,a5
 
        addi    a5,a5,1
        addi    a5,a5,1
        sb      a3,0(a4)
        sb      a4,-1(a5)
        j       .L72
        bne     a2,a5,.L184
 
.L183:
 
        ret
        .size   memcpy, .-memcpy
        .size   memcpy, .-memcpy
        .align  2
        .align  2
        .globl  memset
        .globl  memset
        .type   memset, @function
        .type   memset, @function
memset:
memset:
        add     a2,a0,a2
        andi    a1,a1,0xff
 
        add     a4,a0,a2
        mv      a5,a0
        mv      a5,a0
.L75:
        beqz    a2,.L195
        bne     a5,a2,.L76
.L191:
        ret
 
.L76:
 
        addi    a5,a5,1
        addi    a5,a5,1
        sb      a1,-1(a5)
        sb      a1,-1(a5)
        j       .L75
        bne     a4,a5,.L191
 
.L195:
 
        ret
        .size   memset, .-memset
        .size   memset, .-memset
        .align  2
        .align  2
        .globl  strtok
        .globl  strtok
        .type   strtok, @function
        .type   strtok, @function
strtok:
strtok:
        addi    sp,sp,-20
        addi    sp,sp,-12
        sw      s0,12(sp)
        sw      s0,8(sp)
        mv      s0,a0
        sw      s1,4(sp)
        mv      a0,a1
        sw      a0,0(sp)
        sw      s1,8(sp)
        mv      t2,a1
        sw      ra,16(sp)
        beqz    a1,.L198
        mv      s1,a1
        mv      a5,a1
        call    strlen
        li      t2,0
        mv      a3,a0
        j       .L197
        bnez    s0,.L78
.L199:
        lui     a5,%hi(nxt.1629)
        addi    t2,t2,1
        lw      s0,%lo(nxt.1629)(a5)
.L197:
        beqz    s0,.L79
        addi    a5,a5,1
.L78:
        lbu     a4,-1(a5)
        mv      a5,s0
        bnez    a4,.L199
.L80:
.L198:
        lbu     a4,0(a5)
 
        bnez    a4,.L81
 
        lui     a5,%hi(nxt.1629)
 
        sw      zero,%lo(nxt.1629)(a5)
 
        j       .L79
 
.L81:
 
        mv      a2,a3
 
        mv      a0,a5
 
        mv      a1,s1
 
        sw      a3,4(sp)
 
        sw      a5,0(sp)
 
        call    strncmp
 
        lw      a5,0(sp)
        lw      a5,0(sp)
        lw      a3,4(sp)
        beqz    a5,.L235
        addi    a4,a5,1
.L200:
        bnez    a0,.L82
        lw      t0,0(sp)
        sb      zero,0(a5)
        lbu     a3,0(t0)
        lui     a5,%hi(nxt.1629)
        beqz    a3,.L202
        sw      a4,%lo(nxt.1629)(a5)
        lbu     s0,0(a1)
.L79:
        add     t1,t0,t2
        mv      a0,s0
        li      s1,1
        lw      ra,16(sp)
.L203:
        lw      s0,12(sp)
        mv      a0,a1
        lw      s1,8(sp)
        mv      a5,t0
        addi    sp,sp,20
        mv      a2,s0
 
        beq     t2,s1,.L204
 
.L207:
 
        addi    a5,a5,1
 
        not     a4,a5
 
        addi    a0,a0,1
 
        add     a4,a4,t1
 
        beqz    a2,.L205
 
        bne     a2,a3,.L205
 
        lbu     a3,0(a5)
 
        lbu     a2,0(a0)
 
        beqz    a4,.L204
 
        bnez    a3,.L207
 
.L204:
 
        beq     a3,a2,.L236
 
.L205:
 
        addi    t0,t0,1
 
        lbu     a3,0(t0)
 
        addi    t1,t1,1
 
        bnez    a3,.L203
 
.L202:
 
        lw      a0,0(sp)
 
        .LA32: auipc    a5,%pcrel_hi(nxt.1110)
 
        sw      zero,%pcrel_lo(.LA32)(a5)
 
.L196:
 
        lw      s0,8(sp)
 
        lw      s1,4(sp)
 
        addi    sp,sp,12
        jr      ra
        jr      ra
.L82:
.L236:
        mv      a5,a4
        sb      zero,0(t0)
        j       .L80
        lw      s0,8(sp)
 
        addi    a4,t0,1
 
        .LA31: auipc    a5,%pcrel_hi(nxt.1110)
 
        sw      a4,%pcrel_lo(.LA31)(a5)
 
        lw      a0,0(sp)
 
        lw      s1,4(sp)
 
        addi    sp,sp,12
 
        jr      ra
 
.L235:
 
        .LA30: auipc    a5,%pcrel_hi(nxt.1110)
 
        lw      a5,%pcrel_lo(.LA30)(a5)
 
        sw      a5,0(sp)
 
        bnez    a5,.L200
 
        li      a0,0
 
        j       .L196
        .size   strtok, .-strtok
        .size   strtok, .-strtok
        .align  2
        .align  2
        .globl  atoi
        .globl  atoi
        .type   atoi, @function
        .type   atoi, @function
atoi:
atoi:
        li      a3,0
        mv      a5,a0
        li      a5,0
        li      t0,0
        li      a2,45
        li      a0,0
.L88:
        li      t1,45
        bnez    a0,.L90
        bnez    a5,.L238
.L94:
        j       .L252
        bnez    a3,.L91
.L253:
.L87:
        addi    a5,a5,1
        mv      a0,a5
        add     a0,a4,a1
 
        beqz    a5,.L241
 
.L238:
 
        lbu     a3,0(a5)
 
        slli    a4,a0,3
 
        slli    a1,a0,1
 
        addi    a2,a3,-48
 
        add     a4,a2,a4
 
        beqz    a3,.L241
 
        bne     a3,t1,.L253
 
        addi    a5,a5,1
 
        li      t0,1
 
        bnez    a5,.L238
 
.L241:
 
        beqz    t0,.L237
 
        sub     a0,zero,a0
 
.L237:
 
        ret
 
.L252:
        ret
        ret
.L95:
 
        li      a3,1
 
        j       .L89
 
.L90:
 
        lbu     a4,0(a0)
 
        beqz    a4,.L94
 
        beq     a4,a2,.L95
 
        slli    a1,a5,3
 
        addi    a4,a4,-48
 
        add     a4,a4,a1
 
        slli    a5,a5,1
 
        add     a5,a4,a5
 
.L89:
 
        addi    a0,a0,1
 
        j       .L88
 
.L91:
 
        sub     a5,zero,a5
 
        j       .L87
 
        .size   atoi, .-atoi
        .size   atoi, .-atoi
        .align  2
        .align  2
        .globl  xtoi
        .globl  xtoi
        .type   xtoi, @function
        .type   xtoi, @function
xtoi:
xtoi:
        mv      a3,a0
        mv      a4,a0
        li      a2,57
        li      t1,57
        li      a0,0
        li      a0,0
.L97:
        bnez    a4,.L255
        beqz    a3,.L96
        j       .L265
        lbu     a5,0(a3)
.L259:
        bnez    a5,.L101
        add     a0,a1,a2
.L96:
        bleu    a5,t1,.L258
 
        add     a0,a3,a2
 
.L258:
 
        addi    a4,a4,1
 
        beqz    a4,.L254
 
.L255:
 
        lbu     a5,0(a4)
 
        slli    a2,a0,4
 
        andi    a3,a5,95
 
        addi    a1,a5,-48
 
        addi    a3,a3,-55
 
        bnez    a5,.L259
 
.L254:
 
        ret
 
.L265:
        ret
        ret
.L101:
 
        slli    a4,a0,4
 
        bgtu    a5,a2,.L98
 
        addi    a5,a5,-48
 
.L105:
 
        add     a0,a5,a4
 
        addi    a3,a3,1
 
        j       .L97
 
.L98:
 
        andi    a5,a5,95
 
        addi    a5,a5,-55
 
        j       .L105
 
        .size   xtoi, .-xtoi
        .size   xtoi, .-xtoi
        .align  2
        .align  2
        .globl  mac
        .globl  mac
        .type   mac, @function
        .type   mac, @function
mac:
mac:
 #APP
 #APP
# 271 "stdio.c" 1
# 285 "stdio.c" 1
        .word 0x00c5857F
        .word 0x00c5857F
# 0 "" 2
# 0 "" 2
 #NO_APP
 #NO_APP
        ret
        ret
        .size   mac, .-mac
        .size   mac, .-mac
        .align  2
        .align  2
        .globl  __umulsi3
        .globl  __umulsi3
        .type   __umulsi3, @function
        .type   __umulsi3, @function
__umulsi3:
__umulsi3:
        mv      a5,a0
        mv      a5,a0
        bgeu    a0,a1,.L108
        bgeu    a0,a1,.L268
        mv      a5,a1
        mv      a5,a1
        mv      a1,a0
        mv      a1,a0
.L108:
.L268:
        li      a0,0
        li      a0,0
.L109:
        beqz    a1,.L272
        bnez    a1,.L111
.L271:
        ret
 
.L111:
 
        andi    a4,a1,1
        andi    a4,a1,1
        beqz    a4,.L110
        srli    a1,a1,1
 
        beqz    a4,.L270
        add     a0,a0,a5
        add     a0,a0,a5
.L110:
.L270:
        slli    a5,a5,1
        slli    a5,a5,1
        srli    a1,a1,1
        bnez    a1,.L271
        j       .L109
        ret
 
.L272:
 
        ret
        .size   __umulsi3, .-__umulsi3
        .size   __umulsi3, .-__umulsi3
        .align  2
        .align  2
        .globl  __mulsi3
        .globl  __mulsi3
        .type   __mulsi3, @function
        .type   __mulsi3, @function
__mulsi3:
__mulsi3:
        addi    sp,sp,-12
        li      a2,0
        sw      s1,0(sp)
        bgez    a0,.L278
        sw      ra,8(sp)
 
        sw      s0,4(sp)
 
        li      s1,0
 
        bgez    a0,.L116
 
        sub     a0,zero,a0
        sub     a0,zero,a0
        li      s1,1
        li      a2,1
.L116:
.L278:
        li      s0,0
 
        bgez    a1,.L117
 
        sub     a1,zero,a1
 
        li      s0,1
 
.L117:
 
        call    __umulsi3
 
        mv      a5,a0
        mv      a5,a0
        beq     s1,s0,.L115
        bltz    a1,.L295
        sub     a5,zero,a0
        mv      a4,a1
.L115:
        li      t1,0
        lw      ra,8(sp)
        bgtu    a1,a0,.L280
        lw      s0,4(sp)
        mv      a4,a0
        lw      s1,0(sp)
        li      t1,0
        mv      a0,a5
        mv      a5,a1
        addi    sp,sp,12
.L280:
        jr      ra
        beqz    a5,.L290
 
.L281:
 
        li      a0,0
 
.L284:
 
        andi    a3,a5,1
 
        srli    a5,a5,1
 
        beqz    a3,.L283
 
        add     a0,a0,a4
 
.L283:
 
        slli    a4,a4,1
 
        bnez    a5,.L284
 
.L282:
 
        beq     a2,t1,.L277
 
        sub     a0,zero,a0
 
.L277:
 
        ret
 
.L295:
 
        sub     a4,zero,a1
 
        bgtu    a4,a0,.L288
 
        mv      a5,a4
 
        li      t1,1
 
        mv      a4,a0
 
        j       .L281
 
.L288:
 
        li      t1,1
 
        bnez    a5,.L281
 
.L290:
 
        li      a0,0
 
        j       .L282
        .size   __mulsi3, .-__mulsi3
        .size   __mulsi3, .-__mulsi3
        .align  2
        .align  2
        .globl  __udiv_umod_si3
        .globl  __udiv_umod_si3
        .type   __udiv_umod_si3, @function
        .type   __udiv_umod_si3, @function
__udiv_umod_si3:
__udiv_umod_si3:
        li      a5,1
        beqz    a1,.L297
        bnez    a1,.L126
        tail    __udiv_umod_si3.part.1
.L125:
.L297:
        mv      a0,a1
        li      a0,0
        ret
        ret
.L127:
 
        slli    a5,a5,1
 
        slli    a1,a1,1
 
.L126:
 
        bgtu    a0,a1,.L127
 
        mv      a4,a1
 
        li      a1,0
 
.L128:
 
        beqz    a0,.L130
 
        bnez    a5,.L131
 
.L130:
 
        bnez    a2,.L125
 
        mv      a1,a0
 
        j       .L125
 
.L131:
 
        bltu    a0,a4,.L129
 
        sub     a0,a0,a4
 
        add     a1,a1,a5
 
.L129:
 
        srli    a5,a5,1
 
        srli    a4,a4,1
 
        j       .L128
 
        .size   __udiv_umod_si3, .-__udiv_umod_si3
        .size   __udiv_umod_si3, .-__udiv_umod_si3
        .align  2
        .align  2
        .globl  __udivsi3
        .globl  __udivsi3
        .type   __udivsi3, @function
        .type   __udivsi3, @function
__udivsi3:
__udivsi3:
 
        beqz    a1,.L299
        li      a2,1
        li      a2,1
        tail    __udiv_umod_si3
        tail    __udiv_umod_si3.part.1
 
.L299:
 
        li      a0,0
 
        ret
        .size   __udivsi3, .-__udivsi3
        .size   __udivsi3, .-__udivsi3
        .align  2
        .align  2
        .globl  __umodsi3
        .globl  __umodsi3
        .type   __umodsi3, @function
        .type   __umodsi3, @function
__umodsi3:
__umodsi3:
 
        beqz    a1,.L301
        li      a2,0
        li      a2,0
        tail    __udiv_umod_si3
        tail    __udiv_umod_si3.part.1
 
.L301:
 
        li      a0,0
 
        ret
        .size   __umodsi3, .-__umodsi3
        .size   __umodsi3, .-__umodsi3
        .align  2
        .align  2
        .globl  __div_mod_si3
        .globl  __div_mod_si3
        .type   __div_mod_si3, @function
        .type   __div_mod_si3, @function
__div_mod_si3:
__div_mod_si3:
        beqz    a1,.L154
        beqz    a1,.L303
        addi    sp,sp,-16
        tail    __div_mod_si3.part.2
        sw      s0,8(sp)
.L303:
        sw      ra,12(sp)
        li      a0,0
        sw      s1,4(sp)
 
        mv      a5,a2
 
        li      s0,0
 
        bgez    a0,.L142
 
        sub     a0,zero,a0
 
        li      s0,1
 
.L142:
 
        li      s1,0
 
        bgez    a1,.L143
 
        sub     a1,zero,a1
 
        li      s1,1
 
.L143:
 
        mv      a2,a5
 
        sw      a5,0(sp)
 
        call    __udiv_umod_si3
 
        lw      a5,0(sp)
 
        mv      a1,a0
 
        beqz    a5,.L144
 
        beq     s0,s1,.L141
 
        sub     a1,zero,a0
 
.L141:
 
        lw      ra,12(sp)
 
        lw      s0,8(sp)
 
        lw      s1,4(sp)
 
        mv      a0,a1
 
        addi    sp,sp,16
 
        jr      ra
 
.L144:
 
        beqz    s0,.L141
 
        sub     a1,zero,a0
 
        j       .L141
 
.L154:
 
        mv      a0,a1
 
        ret
        ret
        .size   __div_mod_si3, .-__div_mod_si3
        .size   __div_mod_si3, .-__div_mod_si3
        .align  2
        .align  2
        .globl  __divsi3
        .globl  __divsi3
        .type   __divsi3, @function
        .type   __divsi3, @function
__divsi3:
__divsi3:
 
        beqz    a1,.L305
        li      a2,1
        li      a2,1
        tail    __div_mod_si3
        tail    __div_mod_si3.part.2
 
.L305:
 
        li      a0,0
 
        ret
        .size   __divsi3, .-__divsi3
        .size   __divsi3, .-__divsi3
        .align  2
        .align  2
        .globl  __modsi3
        .globl  __modsi3
        .type   __modsi3, @function
        .type   __modsi3, @function
__modsi3:
__modsi3:
 
        beqz    a1,.L307
        li      a2,0
        li      a2,0
        tail    __div_mod_si3
        tail    __div_mod_si3.part.2
 
.L307:
 
        li      a0,0
 
        ret
        .size   __modsi3, .-__modsi3
        .size   __modsi3, .-__modsi3
        .align  2
        .align  2
        .globl  usleep
        .globl  usleep
        .type   usleep, @function
        .type   usleep, @function
usleep:
usleep:
        lui     a5,%hi(threads)
        addi    a4,a0,-1
        lw      a4,%lo(threads)(a5)
        beqz    a0,.L308
        li      a5,1
 
        ble     a4,a5,.L171
 
        li      a4,-1
 
        lui     a5,%hi(utimers)
 
.L160:
 
        addi    a0,a0,-1
 
        bne     a0,a4,.L163
 
        ret
 
.L171:
 
        lui     a5,%hi(io)
 
        li      a3,-1
 
        addi    a5,a5,%lo(io)
 
        li      a2,-128
        li      a2,-128
.L161:
        li      a3,-1
        addi    a0,a0,-1
.L311:
        bne     a0,a3,.L165
        .LA33: auipc    a5,%pcrel_hi(io)
        ret
        addi    a5,a5,%pcrel_lo(.LA33)
.L163:
 
        lw      a3,%lo(utimers)(a5)
 
.L162:
 
        lw      a2,%lo(utimers)(a5)
 
        beq     a2,a3,.L162
 
        j       .L160
 
.L165:
 
        sb      a2,3(a5)
        sb      a2,3(a5)
.L164:
.L310:
        lbu     a4,3(a5)
        .LA34: auipc    a5,%pcrel_hi(io)
        andi    a4,a4,0xff
        addi    a5,a5,%pcrel_lo(.LA34)
        beqz    a4,.L164
        lbu     a5,3(a5)
        j       .L161
        andi    a5,a5,0xff
 
        beqz    a5,.L310
 
        addi    a4,a4,-1
 
        bne     a4,a3,.L311
 
.L308:
 
        ret
        .size   usleep, .-usleep
        .size   usleep, .-usleep
        .section        .rodata
        .section        .rodata
        .align  2
        .align  2
        .set    .LANCHOR0,. + 0
        .set    .LANCHOR0,. + 0
.LC0:
.LC0:
Line 697... Line 990...
        .zero   1
        .zero   1
.LC3:
.LC3:
        .string "0123456789abcdef"
        .string "0123456789abcdef"
        .section        .sbss,"aw",@nobits
        .section        .sbss,"aw",@nobits
        .align  2
        .align  2
        .type   nxt.1629, @object
        .type   nxt.1110, @object
        .size   nxt.1629, 4
        .size   nxt.1110, 4
nxt.1629:
nxt.1110:
        .zero   4
        .zero   4
        .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-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.