Changeset a2da43c in mainline for boot/arch/arm32/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/arm32/src/asm.S

    r46757a6 ra2da43c  
    3535.global boot_stack
    3636.global halt
    37 .global memcpy
    3837.global jump_to_kernel
    3938
     
    5554        b halt
    5655
    57 memcpy:
    58         add r3, r1, #3
    59         bic r3, r3, #3
    60         cmp r1, r3
    61         stmdb sp!, {r4, r5, lr}
    62         mov r5, r0
    63         beq 4f
    64        
    65         1:
    66                 cmp r2, #0
    67                 movne ip, #0
    68                 beq 3f
    69        
    70         2:
    71                 ldrb r3, [ip, r1]
    72                 strb r3, [ip, r0]
    73                 add ip, ip, #1
    74                 cmp ip, r2
    75                 bne 2b
    76        
    77         3:
    78                 mov r0, r5
    79                 ldmia sp!, {r4, r5, pc}
    80        
    81         4:
    82                 add r3, r0, #3
    83                 bic r3, r3, #3
    84                 cmp r0, r3
    85                 bne 1b
    86                 movs r4, r2, lsr #2
    87                 moveq lr, r4
    88                 beq 6f
    89                 mov lr, #0
    90                 mov ip, lr
    91        
    92         5:
    93                 ldr r3, [ip, r1]
    94                 add lr, lr, #1
    95                 cmp lr, r4
    96                 str r3, [ip, r0]
    97                 add ip, ip, #4
    98                 bne 5b
    99        
    100         6:
    101                 ands r4, r2, #3
    102                 beq 3b
    103                 mov r3, lr, lsl #2
    104                 add r0, r3, r0
    105                 add ip, r3, r1
    106                 mov r2, #0
    107        
    108         7:
    109                 ldrb r3, [r2, ip]
    110                 strb r3, [r2, r0]
    111                 add r2, r2, #1
    112                 cmp r2, r4
    113                 bne 7b
    114                 b 3b
    115 
    11656jump_to_kernel:
    11757        #
Note: See TracChangeset for help on using the changeset viewer.