6 * about 1us/call and 28mb/sec
9 MOVW n+8(FP), R3 /* R3 is count */
10 MOVW p+0(FP), R4 /* R4 is pointer */
11 MOVW c+4(FP), R5 /* R5 is char */
12 ADDU R3,R4, R6 /* R6 is end pointer */
15 * if not at least 4 chars,
16 * dont even mess around.
17 * 3 chars to guarantee any
18 * rounding up to a word
19 * boundary and 4 characters
20 * to get at least maybe one
27 * turn R5 into a word of characters
36 * store one byte at a time until pointer
37 * is alligned on a word boundary
47 * turn R3 into end pointer-15
48 * store 16 at a time while theres room
63 * turn R3 into end pointer-3
64 * store 4 at a time while theres room
76 * last loop, store byte at a time