2 * Generic memory routines.
5 * This work is licensed under the terms of MAME license.
6 * See COPYING file in the top-level directory.
9 .global pmemcpy16 @ unsigned short *dest, unsigned short *src, int count
47 @ 0x12345678 -> 0x34127856
48 @ r4=temp, lr=0x00ff00ff
51 and \reg, lr, \reg, lsr #8
52 orr \reg, \reg, r4, lsl #8
56 @ dest must be halfword aligned, src can be unaligned
57 .global memcpy16bswap @ unsigned short *dest, void *src, int count
61 bne mcp16bs_cant_align2
65 bne mcp16bs_cant_align
71 orr r3, r3, r3, lsl #16
78 orr lr, lr, lr, lsl #16
106 orr r3, r3, r3, lsl #16
109 bne mcp16bs_cant_align
120 bne mcp16bs_cant_align2
125 .global memcpy32 @ int *dest, int *src, int count
134 ldmia r1!, {r3,r4,r12,lr}
136 stmia r0!, {r3,r4,r12,lr}
148 ldmneia r1!, {r3,r12}
150 stmneia r0!, {r3,r12}
155 .global memset32 @ int *dest, int c, int count
169 stmia r0!, {r1,r3,r12,lr}
182 @ vim:filetype=armasm