diff options
Diffstat (limited to 'newlib/libc/machine/hppa/memset.S')
-rw-r--r-- | newlib/libc/machine/hppa/memset.S | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/newlib/libc/machine/hppa/memset.S b/newlib/libc/machine/hppa/memset.S deleted file mode 100644 index cea7382..0000000 --- a/newlib/libc/machine/hppa/memset.S +++ /dev/null @@ -1,85 +0,0 @@ -/* - * (c) Copyright 1986 HEWLETT-PACKARD COMPANY - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * 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, and that the name of Hewlett-Packard Company not be - * used in advertising or publicity pertaining to distribution - * of the software without specific, written prior permission. - * Hewlett-Packard Company makes no representations about the - * suitability of this software for any purpose. - */ - -/* SPECTRUM_ID: @(#)memset.s 37.4 86/08/25 */ -/* - * memset(s, c, n) - * - * Sets first n chars in memory area s to value of character c. - * Returns s. - */ -#ifndef _NAMESPACE_CLEAN -#define NOSECDEF /* prevent _memset from being defined as entry */ -#endif - -#include "DEFS.h" - -#define TO arg0 -#define FILLCHAR arg1 -#define COUNT arg2 -#define TMP r31 - -ENTRY(memset) - comb,<= COUNT,r0,msexit /* return if count not positive */ - copy TO,ret0 /* return value is start of copy */ - comibf,<,n 5,COUNT,msbyteloop /* be straightforward */ - - dep FILLCHAR,23,8,FILLCHAR /* dup low byte */ - dep FILLCHAR,15,16,FILLCHAR /* into high bytes */ - - add TO,COUNT,TMP /* TMP points just past fill area */ - stbys,m FILLCHAR,0(TO) /* fill out first word */ - /* - * If we're pointing to high-order byte, no fill will happen, - * but permissions will be checked. We don't want this (we - * might be pointing at the beginning of a protected region), - * so we branch around stbys if neither low bits are set. - */ - bb,<,n TMP,31,filend /* if low bit is set, stbys */ - bb,>=,n TMP,30,endfil /* if next lowest bit isn't set */ - /* (and lowest isn't, either) */ - /* do not stbys */ -filend: - stbys,m,e FILLCHAR,0(TMP) /* fill out the last */ -endfil: - addi 4, TO, TO - sub TMP,TO,COUNT /* will now divide by 4 */ - comb,=,n COUNT,r0,msexit /* If count is zero ret. */ - - extru,<> COUNT,31,4,r1 - b msquadloop - depi 0,31,4,COUNT /* will now divide by 16 */ - - -mswordloop: - addib,<> -4,r1,mswordloop - stws,ma FILLCHAR,4(TO) - - comb,=,n COUNT,r0,msexit /* If count is zero ret. */ - -msquadloop: - stws,ma FILLCHAR,4(TO) - stws,ma FILLCHAR,4(TO) - stws,ma FILLCHAR,4(TO) - addib,<> -16,COUNT,msquadloop - stws,ma FILLCHAR,4(TO) - b,n msexit - -msbyteloop: - addib,<> -1,COUNT,msbyteloop - stbs,ma FILLCHAR,1(TO) - -msexit: -EXIT(memset) |