Cygwin: access: Fix X_OK behaviour for backup operators and admins
[newlib-cygwin.git] / newlib / libc / machine / rx / memcpy.S
blobeb671c0ae2af4cfd796917386f9528c1380c3d12
1         .file   "memcpy.S"
3         .section .text
4         .global  _memcpy
5         .type    _memcpy,@function
6 _memcpy:
7 #ifdef __RX_DISALLOW_STRING_INSNS__
8         /* Do not use the string instructions - they might prefetch
9            bytes from outside of valid memory.  This is particularly
10            dangerous in I/O space.  */
12         ;; FIXME: It would be more space efficient to just branch to _memmove...
13         
14         cmp      #0, r3         ; If the count is zero, do nothing
15         beq      1f
16         
17         mov      r1, r14        ; Save a copy of DEST
19 2:      mov.b    [r2+], r5
20         mov.b    r5, [r14+]
21         sub      #1, r3
22         bne      2b
23         
24 1:      rts
25 #else
26         mov     r1, r4          ; Save a copy of DEST
27         smovf                   ; Copy R2 (source) to R1 (dest).  Stop after R3 bytes.
28         mov     r4, r1          ; Return DEST
29         rts
30 #endif
31         .size _memcpy, . - _memcpy