diff options
Diffstat (limited to 'newlib/libc/machine/z8k/memset.S')
-rw-r--r-- | newlib/libc/machine/z8k/memset.S | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/newlib/libc/machine/z8k/memset.S b/newlib/libc/machine/z8k/memset.S deleted file mode 100644 index 43184c709..000000000 --- a/newlib/libc/machine/z8k/memset.S +++ /dev/null @@ -1,135 +0,0 @@ -/* - * memset routine for Z8000 - * Copyright (C) 2004 Christian Groessler <chris@groessler.org> - * - * Permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -/* void *memset(void *buffer, int value, size_t length); - */ - - name "memset.S" - - .text - even -global _memset - -_memset: - -#ifdef __Z8001__ - segm - -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) - ld r5,rr14(#8) - ldl rr2,rr14(#10) -#else - pushl @rr14,rr6 -#endif - -/* rr2 - length - * rl5 - value - * rr6 - buffer - */ - testl rr2 - jr z,finish - - ldb rh5,rl5 - ld r1,r5 /* r1 contains value */ - bit r7,#0 - jr z,not_odd - - ldb @rr6,rl1 - inc r7,#1 - subl rr2,#1 - jr z,finish - -not_odd:ld r0,r3 /* remember length */ - srl r3,#1 - jr z,no_words - - ldl rr4,rr6 - ld @rr6,r1 - inc r7,#2 - dec r3,#1 - jr z,no_words - - ldir @rr6,@rr4,r3 /* fill words */ - -no_words: - bit r0,#0 /* one byte remaining? */ - jr z,finish - - ldb @rr6,rl1 - -finish: -#ifdef __STD_CALL__ - ldl rr6,rr14(#4) -#else - popl rr2,@rr14 -#endif - - -#else /* above Z8001, below Z8002 */ - - - unsegm - -#ifdef __STD_CALL__ - ld r7,r15(#2) - ld r6,r15(#4) - ld r5,r15(#6) -#else - ld r2,r7 /* buffer pointer return value */ -#endif - -/* r5 - length - * r6 - value - * r7 - buffer - */ - test r5 - jr z,finish - - ldb rh6,rl6 - ld r1,r6 /* r1 contains value */ - bit r7,#0 - jr z,not_odd - - ldb @r7,rl1 - inc r7,#1 - dec r5,#1 - jr z,finish - -not_odd:ld r0,r5 /* remember length */ - srl r5,#1 - jr z,no_words - - ld r4,r7 - ld @r7,r1 - inc r7,#2 - dec r5,#1 - jr z,no_words - - ldir @r7,@r4,r5 /* fill words */ - -no_words: - bit r0,#0 /* one byte remaining? */ - jr z,finish - - ldb @r7,rl1 - -finish: -#ifdef __STD_CALL__ - ld r7,r15(#2) -#endif - -#endif /* Z8002 */ - - ret - .end |