3 // FIXME: can optimize even further on '400 with auto-increment/auto-toggle.
11 /* Shut compiler up about unused parameters. */
15 ; Destination is in DPTR. Save it on stack so we can return it at end.
21 mov dps, #0x1 ; Alternate DPTR.
23 ; count is in _memcpyx_PARM_3
24 mov dptr, #_memcpyx_PARM_3
31 ; src is in _memcpyx_PARM_2
32 mov dptr, #_memcpyx_PARM_2
44 mov dps, #0x21 ; Current DPTR is alt DPTR, toggle after each op.
46 ; src is in alt DPTR, dst is in normal DPTR, count is in r2/r3.
48 ; If we have zero bytes to copy, quick out.
53 ; increment r3 if r2 != 0 (makes djnz end-of-loop sequence possible).
55 cjne r2, #0x0, _memcpyx_loopTop
65 djnz r2, _memcpyx_loopTop
66 djnz r3, _memcpyx_loopTop