Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/h8300/memset.S')
-rw-r--r--newlib/libc/machine/h8300/memset.S102
1 files changed, 0 insertions, 102 deletions
diff --git a/newlib/libc/machine/h8300/memset.S b/newlib/libc/machine/h8300/memset.S
deleted file mode 100644
index c92169c69..000000000
--- a/newlib/libc/machine/h8300/memset.S
+++ /dev/null
@@ -1,102 +0,0 @@
-#include "setarch.h"
-
-#include "defines.h"
-
-#if defined (__H8300SX__)
-
- .global _memset
-_memset:
- ; Use er3 is a temporary since er0 must remain unchanged on exit.
- mov.l er0,er3
-
- ; Fill er1 with the byte to copy.
- mov.b r1l,r1h
- mov.w r1,e1
-
- ; Account for any excess bytes and words that will be copied after
- ; the main loop. r2 >= 0 if there is a longword to copy.
- sub #4,LEN(r2)
- blo longs_done
-
- ; Copy one byte if doing so will make er3 word-aligned.
- ; This isn't needed for correctness but it makes the main loop
- ; slightly faster.
- bld #0,r3l
- bcc word_aligned
- mov.b r1l,@er3+
- sub #1,LEN(r2)
- blo longs_done
-
-word_aligned:
- ; Likewise one word for longword alignment.
- bld #1,r3l
- bcc long_copy
- mov.w r1,@er3+
- sub #2,LEN(r2)
- blo longs_done
-
-long_copy:
- ; Copy longwords.
- mov.l er1,@er3+
- sub #4,LEN(r2)
- bhs long_copy
-
-longs_done:
- ; At this point, we need to copy r2 & 3 bytes. Copy a word
- ; if necessary.
- bld #1,r2l
- bcc words_done
- mov.w r1,@er3+
-
-words_done:
- ; Copy a byte.
- bld #0,r2l
- bcc bytes_done
- mov.b r1l,@er3+
-
-bytes_done:
- rts
-
-#else
-
-; A0P pointer to cursor
-; A1P thing to copy
- .global _memset
-
-_memset:
-
-; MOVP @(2/4,r7),A2P ; dst
-; MOVP @(4/8,r7),A1 ; src thing
-; MOVP @(6/12,r7),A3P ; len
-
- MOVP A2P,A2P
- beq quit
-
- ; A3 points to the end of the area
- MOVP A0P,A3P
- ADDP A2P,A3P
-
- ; see if we can do it in words
- ; by oring in the start of the buffer to the end address
-
- or A0L,A2L
- btst #0,A2L
- bne byteloop
-
- ; we can do it a word at a time
-
- mov.b A1L,A1H
-
-wordloop:
- mov.w A1,@-A3P
- CMPP A3P,A0P
- bne wordloop
-quit: rts
-
-byteloop:
- mov.b A1L,@-A3P
- CMPP A3P,A0P
- bne byteloop
- rts
-
-#endif