5 .global memcpy16 @ unsigned short *dest, unsigned short *src, int count
43 @ 0x12345678 -> 0x34127856
44 @ r4=temp, lr=0x00ff00ff
47 and \reg, lr, \reg, lsr #8
48 orr \reg, \reg, r4, lsl #8
52 @ dest must be halfword aligned, src can be unaligned
53 .global memcpy16bswap @ unsigned short *dest, void *src, int count
57 bne mcp16bs_cant_align2
61 bne mcp16bs_cant_align
67 orr r3, r3, r3, lsl #16
74 orr lr, lr, lr, lsl #16
102 orr r3, r3, r3, lsl #16
105 bne mcp16bs_cant_align
116 bne mcp16bs_cant_align2
121 .global memcpy32 @ int *dest, int *src, int count
130 ldmia r1!, {r3,r4,r12,lr}
132 stmia r0!, {r3,r4,r12,lr}
144 ldmneia r1!, {r3,r12}
146 stmneia r0!, {r3,r12}
151 .global memset32 @ int *dest, int c, int count
165 stmia r0!, {r1,r3,r12,lr}