Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • boot/arch/mips32/src/asm.S

    ra2da43c r4872160  
    3636.global start
    3737.global halt
     38.global memcpy
    3839.global jump_to_kernel
    3940
     
    125126        j halt
    126127        nop
     128
     129memcpy:
     130        addiu $v0, $a1, 3
     131        li $v1, -4
     132        and $v0, $v0, $v1
     133        beq $a1, $v0, 3f
     134        move $t0, $a0
     135        move $t2, $a0
     136       
     137        0:
     138                beq $a2, $zero, 2f
     139                move $a3, $zero
     140       
     141        1:
     142                addu $v0, $a1, $a3
     143                lbu $a0, 0($v0)
     144                addu $v1, $t0, $a3
     145                addiu $a3, $a3, 1
     146                bne $a3, $a2, 1b
     147                sb $a0, 0($v1)
     148       
     149        2:
     150                jr $ra
     151                move $v0, $t2
     152       
     153        3:
     154                addiu $v0, $a0, 3
     155                and $v0, $v0, $v1
     156                bne $a0, $v0, 0b
     157                srl $t1, $a2, 2
     158               
     159                beq $t1, $zero, 5f
     160                move $a3, $zero
     161               
     162                move $a3, $zero
     163                move $a0, $zero
     164       
     165        4:
     166                addu $v0, $a1, $a0
     167                lw $v1, 0($v0)
     168                addiu $a3, $a3, 1
     169                addu $v0, $t0, $a0
     170                sw $v1, 0($v0)
     171                bne $a3, $t1, 4b
     172                addiu $a0, $a0, 4
     173       
     174        5:
     175                andi $a2, $a2, 0x3
     176                beq $a2, $zero, 2b
     177                nop
     178               
     179                sll $v0, $a3, 2
     180                addu $t1, $v0, $t0
     181                move $a3, $zero
     182                addu $t0, $v0, $a1
     183       
     184        6:
     185                addu $v0, $t0, $a3
     186                lbu $a0, 0($v0)
     187                addu $v1, $t1, $a3
     188                addiu $a3, $a3, 1
     189                bne $a3, $a2, 6b
     190                sb $a0, 0($v1)
     191               
     192                jr $ra
     193                move $v0, $t2
    127194
    128195jump_to_kernel:
Note: See TracChangeset for help on using the changeset viewer.