Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset a2da43c in mainline for boot/arch/mips32/src/asm.S


Ignore:
Timestamp:
2010-07-24T20:03:35Z (12 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial
Children:
af96dd5, c621f4aa
Parents:
46757a6
Message:

memcpy assembly blobs in boot stage are not needed. Replace them all with a simple C function.

File:
1 edited

Legend:

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

    r46757a6 ra2da43c  
    3636.global start
    3737.global halt
    38 .global memcpy
    3938.global jump_to_kernel
    4039
     
    127126        nop
    128127
    129 memcpy:
    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
    194 
    195128jump_to_kernel:
    196129        #
Note: See TracChangeset for help on using the changeset viewer.