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


Ignore:
Timestamp:
2010-07-24T20:03:35Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
af96dd57, 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/sparc64/src/asm.S

    r46757a6 ra2da43c  
    4242.global start
    4343.global halt
    44 .global memcpy
    4544.global jump_to_kernel
    4645
     
    9897        ba %xcc, halt
    9998        nop
    100 
    101 memcpy:
    102         ! Save dst
    103        
    104         mov %o0, %o3
    105         add %o1, 7, %g1
    106         and %g1, -8, %g1
    107         cmp %o1, %g1
    108         be,pn %xcc, 3f
    109         add %o0, 7, %g1
    110         mov 0, %g3
    111        
    112         0:
    113                 brz,pn %o2, 2f
    114                 mov 0, %g2
    115        
    116         1:
    117                 ldub [%g3 + %o1], %g1
    118                 add %g2, 1, %g2
    119                 cmp %o2, %g2
    120                 stb %g1, [%g3 + %o0]
    121                 bne,pt %xcc, 1b
    122                 mov %g2, %g3
    123        
    124         2:
    125                 ! Exit point
    126                
    127                 jmp %o7 + 8
    128                 mov %o3, %o0
    129        
    130         3:
    131                 and %g1, -8, %g1
    132                 cmp %o0, %g1
    133                 bne,pt %xcc, 0b
    134                 mov 0, %g3
    135                 srlx %o2, 3, %g4
    136                 brz,pn %g4, 5f
    137                 mov 0, %g5
    138        
    139         4:
    140                 sllx %g3, 3, %g2
    141                 add %g5, 1, %g3
    142                 ldx [%o1 + %g2], %g1
    143                 mov %g3, %g5
    144                 cmp %g4, %g3
    145                 bne,pt %xcc, 4b
    146                 stx %g1, [%o0 + %g2]
    147        
    148         5:
    149                 and %o2, 7, %o2
    150                 brz,pn %o2, 2b
    151                 sllx %g4, 3, %g1
    152                 mov 0, %g2
    153                 add %g1, %o0, %o0
    154                 add %g1, %o1, %g4
    155                 mov 0, %g3
    156        
    157         6:
    158                 ldub [%g2 + %g4], %g1
    159                 stb %g1, [%g2 + %o0]
    160                 add %g3, 1, %g2
    161                 cmp %o2, %g2
    162                 bne,pt %xcc, 6b
    163                 mov %g2, %g3
    164        
    165         ! Exit point
    166        
    167         jmp %o7 + 8
    168         mov %o3, %o0
    16999
    170100jump_to_kernel:
Note: See TracChangeset for help on using the changeset viewer.