diff options
Diffstat (limited to 'newlib/libc/machine/h8300/memset.S')
-rw-r--r-- | newlib/libc/machine/h8300/memset.S | 102 |
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 |