4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-24 16:07:19 +08:00
Jeff Johnston b8f7ea5ccb 2003-06-24 Kazu Hirata <kazu@cs.umass.edu>
* libc/machine/h8300/setarch.h: New.
        * libc/machine/h8300/memcpy.S: Use it.
        * libc/machine/h8300/memset.S: Likewise.
        * libc/machine/h8300/reg_memcpy.S: Likewise.
        * libc/machine/h8300/reg_memset.S: Likewise.
        * libc/machine/h8300/setjmp.S: Likewise.
        * libc/machine/h8300/strcmp.S: Likewise.
2003-06-24 19:43:58 +00:00

27 lines
457 B
ArmAsm

#include "setarch.h"
#include "defines.h"
; dst A0
; src A1
; len A2
.global ___reg_memcpy
___reg_memcpy:
MOVP A0P,A3P ; keep copy of result
ADDP A2P,A0P ; point to end of dst
ADDP A2P,A1P ; point to end of src
CMPP A0P,A3P ; see if anything to do
beq quit
loop: subs #1,A1P ; point to byte
mov.b @A1P,A2L ; get byte
mov.b A2L,@-A0P ; save byte
CMPP A0P,A3P ; at the front again ?
bne loop
; return with A0 pointing to dst
quit: rts