mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
Moved vax files to ports repository
2004-10-23 Roland McGrath <roland@frob.com> * sysdeps/vax, sysdeps/unix/bsd/vax: Directories and all files removed. These are now in the ports repository.
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2004-10-23 Roland McGrath <roland@frob.com>
|
||||||
|
|
||||||
|
* sysdeps/vax, sysdeps/unix/bsd/vax: Directories and all files removed.
|
||||||
|
These are now in the ports repository.
|
||||||
|
|
||||||
2004-10-23 Ulrich Drepper <drepper@redhat.com>
|
2004-10-23 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* resolv/res_send.c (send_dg): Combine write and read to socket
|
* resolv/res_send.c (send_dg): Combine write and read to socket
|
||||||
|
@@ -1,47 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1995, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
|
||||||
|
|
||||||
#ifndef SYS_brk
|
|
||||||
#define SYS_brk 17
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_GNU_LD
|
|
||||||
#define __end _end
|
|
||||||
#endif
|
|
||||||
|
|
||||||
.data
|
|
||||||
.globl ___curbrk
|
|
||||||
___curbrk:
|
|
||||||
.long __end
|
|
||||||
|
|
||||||
.text
|
|
||||||
ENTRY (__brk)
|
|
||||||
cmpl 4(ap), __end
|
|
||||||
bgeq 0f
|
|
||||||
movl __env, 4(ap)
|
|
||||||
0: chmk $SYS_brk
|
|
||||||
bcs 1f
|
|
||||||
movl 4(ap), ___curbrk
|
|
||||||
clrl r0
|
|
||||||
ret
|
|
||||||
1:
|
|
||||||
jmp syscall_error
|
|
||||||
|
|
||||||
weak_alias (__brk, brk)
|
|
@@ -1 +0,0 @@
|
|||||||
#include <brk.S>
|
|
@@ -1,29 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1995, 1997, 2002 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
|
||||||
|
|
||||||
SYSCALL__ (pipe, 1)
|
|
||||||
movl 4(ap), r2
|
|
||||||
movl r0, (r2)+
|
|
||||||
movl r1, (r2)
|
|
||||||
clrl r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
libc_hidden_def (__pipe)
|
|
||||||
weak_alias (__pipe, pipe)
|
|
@@ -1,35 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#define _ERRNO_H
|
|
||||||
#include <bits/errno.h>
|
|
||||||
|
|
||||||
.globl _errno
|
|
||||||
.globl syscall_error
|
|
||||||
syscall_error:
|
|
||||||
#if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN
|
|
||||||
/* We translate the system's EWOULDBLOCK error into EAGAIN.
|
|
||||||
The GNU C library always defines EWOULDBLOCK==EAGAIN.
|
|
||||||
EWOULDBLOCK_sys is the original number. */
|
|
||||||
cmpl r0, $EWOULDBLOCK_sys
|
|
||||||
bne 0f
|
|
||||||
movl $EAGAIN, r0
|
|
||||||
#endif
|
|
||||||
0: movl r0, _errno
|
|
||||||
mnegl $1, r0
|
|
||||||
ret
|
|
@@ -1,55 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#include <sysdeps/unix/sysdep.h>
|
|
||||||
|
|
||||||
#ifdef __ASSEMBLER__
|
|
||||||
|
|
||||||
#ifdef __STDC__
|
|
||||||
#define ENTRY(name) \
|
|
||||||
.globl _##name; \
|
|
||||||
.even; \
|
|
||||||
_##name##:
|
|
||||||
#else
|
|
||||||
#define ENTRY(name) \
|
|
||||||
.globl _/**/name; \
|
|
||||||
.even; \
|
|
||||||
_/**/name/**/:
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __STDC__
|
|
||||||
#define PSEUDO(name, syscall_name, args) \
|
|
||||||
.even; \
|
|
||||||
.globl syscall_error \
|
|
||||||
error: jmp syscall_error; \
|
|
||||||
ENTRY (name) \
|
|
||||||
chmk $SYS_##syscall_name \
|
|
||||||
bcs error
|
|
||||||
#else
|
|
||||||
#define PSEUDO(name, syscall_name, args) \
|
|
||||||
.even; \
|
|
||||||
.globl syscall_error \
|
|
||||||
error: jmp syscall_error; \
|
|
||||||
ENTRY (name) \
|
|
||||||
chmk $SYS_/**/syscall_name \
|
|
||||||
bcs error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MOVE(x,y) movl x , y
|
|
||||||
|
|
||||||
#endif /* __ASSEMBLER__ */
|
|
@@ -1,57 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1995, 1997, 2002 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
|
||||||
|
|
||||||
#ifndef SYS_vfork
|
|
||||||
#define SYS_vfork 66
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Clone the calling process, but without copying the whole address space.
|
|
||||||
The calling process is suspended until the new process exits or is
|
|
||||||
replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
|
|
||||||
and the process ID of the new process to the old process. */
|
|
||||||
.globl ___vfork
|
|
||||||
___vfork:
|
|
||||||
.word 0
|
|
||||||
/* Save our return address in R2, and return to code below. */
|
|
||||||
movl 16(fp), r2
|
|
||||||
movab unwind, 16(fp)
|
|
||||||
ret
|
|
||||||
unwind:
|
|
||||||
/* Do the system call. */
|
|
||||||
chmk $SYS_vfork
|
|
||||||
bcs error
|
|
||||||
|
|
||||||
tstl r1
|
|
||||||
beq parent
|
|
||||||
|
|
||||||
/* We are the child. Return zero. */
|
|
||||||
clrl r0
|
|
||||||
|
|
||||||
/* Return to the saved address. */
|
|
||||||
parent: jmp (r2)
|
|
||||||
|
|
||||||
.globl _errno
|
|
||||||
error:
|
|
||||||
movl r0, _errno
|
|
||||||
mnegl $1, r0
|
|
||||||
jmp (r2)
|
|
||||||
libc_hidden_def (__vfork)
|
|
||||||
|
|
||||||
weak_alias (__vfork, vfork)
|
|
@@ -1,27 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
|
||||||
|
|
||||||
SYSCALL__ (wait, 1)
|
|
||||||
movl 4(ap), r2
|
|
||||||
beq 1f
|
|
||||||
movl r1, (r2)
|
|
||||||
1: ret
|
|
||||||
|
|
||||||
weak_alias (__wait, wait)
|
|
@@ -1,37 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
|
||||||
|
|
||||||
ENTRY(___wait3)
|
|
||||||
movel 8(ap), r1
|
|
||||||
movel 12(ap), r0
|
|
||||||
/* Set all condition codes to tell the kernel this is wait3. */
|
|
||||||
bispsw $15
|
|
||||||
chmk $SYS_wait
|
|
||||||
bcs error
|
|
||||||
|
|
||||||
movl 4(ap), r2
|
|
||||||
beq 1f
|
|
||||||
movl r1, (r2)
|
|
||||||
1: ret
|
|
||||||
|
|
||||||
.globl syscall_error
|
|
||||||
error: jmp syscall_error
|
|
||||||
|
|
||||||
weak_alias (__wait3, wait3)
|
|
@@ -1,57 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1982, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* @(#)DEFS.h 8.1 (Berkeley) 6/4/93
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define R0 0x001
|
|
||||||
#define R1 0x002
|
|
||||||
#define R2 0x004
|
|
||||||
#define R3 0x008
|
|
||||||
#define R4 0x010
|
|
||||||
#define R5 0x020
|
|
||||||
#define R6 0x040
|
|
||||||
#define R7 0x080
|
|
||||||
#define R8 0x100
|
|
||||||
#define R9 0x200
|
|
||||||
#define R10 0x400
|
|
||||||
#define R11 0x800
|
|
||||||
|
|
||||||
#ifdef PROF
|
|
||||||
#define ENTRY(x, regs) \
|
|
||||||
.globl _/**/x; .align 2; _/**/x: .word regs; \
|
|
||||||
.data; 1:; .long 0; .text; moval 1b,r0; jsb mcount
|
|
||||||
#define ASENTRY(x, regs) \
|
|
||||||
.globl x; .align 2; x: .word regs; \
|
|
||||||
.data; 1:; .long 0; .text; moval 1b,r0; jsb mcount
|
|
||||||
#else
|
|
||||||
#define ENTRY(x, regs) \
|
|
||||||
.globl _/**/x; .align 2; _/**/x: .word regs
|
|
||||||
#define ASENTRY(x, regs) \
|
|
||||||
.globl x; .align 2; x: .word regs
|
|
||||||
#endif
|
|
@@ -1,2 +0,0 @@
|
|||||||
DEFS.h
|
|
||||||
fl.h
|
|
@@ -1,32 +0,0 @@
|
|||||||
# Copyright (C) 1991, 1994, 1997 Free Software Foundation, Inc.
|
|
||||||
# This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
# The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
|
||||||
# License as published by the Free Software Foundation; either
|
|
||||||
# version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
# The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# Lesser General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU Lesser General Public
|
|
||||||
# License along with the GNU C Library; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
# 02111-1307 USA.
|
|
||||||
|
|
||||||
ifeq ($(subdir),math)
|
|
||||||
ifndef math-twiddled
|
|
||||||
|
|
||||||
elided-routines := $(elided-routines) acos asin cos sin ceil rint hypot \
|
|
||||||
__copysign __scalb __drem __logb __finite
|
|
||||||
sysdep_routines := $(sysdep_routines) asincos sincos argred \
|
|
||||||
support exp__E log__L
|
|
||||||
|
|
||||||
math-twiddled := t
|
|
||||||
endif
|
|
||||||
|
|
||||||
bsdmath_dirs := $(bsdmath_dirs) vax
|
|
||||||
|
|
||||||
endif
|
|
@@ -1,129 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1994, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA.
|
|
||||||
|
|
||||||
Derived from @(#)_setjmp.s 5.7 (Berkeley) 6/27/88,
|
|
||||||
Copyright (C) 1980 Regents of the University of California.
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
|
||||||
are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
4. Neither the name of the University nor the names of its contributors
|
|
||||||
may be used to endorse or promote products derived from this software
|
|
||||||
without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGE.*/
|
|
||||||
|
|
||||||
#include <setjmp.h>
|
|
||||||
|
|
||||||
#ifndef __GNUC__
|
|
||||||
#error This file uses GNU C extensions; you must compile with GCC.
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define REI 02 /* Vax `rei' opcode. */
|
|
||||||
|
|
||||||
/* Jump to the position specified by ENV, causing the
|
|
||||||
setjmp call there to return VAL, or 1 if VAL is 0. */
|
|
||||||
__NORETURN
|
|
||||||
void
|
|
||||||
__longjmp (env, val)
|
|
||||||
const __jmp_buf env;
|
|
||||||
int val;
|
|
||||||
{
|
|
||||||
register long int *fp asm("fp");
|
|
||||||
long int *regsave;
|
|
||||||
unsigned long int flags;
|
|
||||||
|
|
||||||
if (env.__fp == NULL)
|
|
||||||
__libc_fatal("longjmp: Invalid ENV argument.\n");
|
|
||||||
|
|
||||||
if (val == 0)
|
|
||||||
val = 1;
|
|
||||||
|
|
||||||
asm volatile("loop:");
|
|
||||||
|
|
||||||
flags = *(long int *) (6 + (char *) fp);
|
|
||||||
regsave = (long int *) (20 + (char *) fp);
|
|
||||||
if (flags & 1)
|
|
||||||
/* R0 was saved by the caller.
|
|
||||||
Store VAL where it will be restored from. */
|
|
||||||
*regsave++ = val;
|
|
||||||
if (flags & 2)
|
|
||||||
/* R1 was saved by the caller.
|
|
||||||
Store ENV where it will be restored from. */
|
|
||||||
*regsave = env;
|
|
||||||
|
|
||||||
/* Was the FP saved in the last call the same one in ENV? */
|
|
||||||
asm volatile("cmpl %0, 12(fp);"
|
|
||||||
/* Yes, return to it. */
|
|
||||||
"beql done;"
|
|
||||||
/* The FP in ENV is less than the one saved in the last call.
|
|
||||||
This means we have already returned from the function that
|
|
||||||
called `setjmp' with ENV! */
|
|
||||||
"blssu latejump;" : /* No outputs. */ : "g" (env.__fp));
|
|
||||||
|
|
||||||
/* We are more than one level below the state in ENV.
|
|
||||||
Return to where we will pop another stack frame. */
|
|
||||||
asm volatile("movl $loop, 16(fp);"
|
|
||||||
"ret");
|
|
||||||
|
|
||||||
asm volatile("done:");
|
|
||||||
{
|
|
||||||
char return_insn asm("*16(fp)");
|
|
||||||
if (return_insn == REI)
|
|
||||||
/* We're returning with an `rei' instruction.
|
|
||||||
Do a return with PSL-PC pop. */
|
|
||||||
asm volatile("movab 0f, 16(fp)");
|
|
||||||
else
|
|
||||||
/* Do a standard return. */
|
|
||||||
asm volatile("movab 1f, 16(fp)");
|
|
||||||
|
|
||||||
/* Return. */
|
|
||||||
asm volatile("ret");
|
|
||||||
}
|
|
||||||
|
|
||||||
asm volatile("0:" /* `rei' return. */
|
|
||||||
/* Compensate for PSL-PC push. */
|
|
||||||
"addl2 %0, sp;"
|
|
||||||
"1:" /* Standard return. */
|
|
||||||
/* Return to saved PC. */
|
|
||||||
"jmp %1" : /* No outputs. */ :
|
|
||||||
"g" (8), "g" (env.__pc));
|
|
||||||
|
|
||||||
/* Jump here when the FP saved in ENV points
|
|
||||||
to a function that has already returned. */
|
|
||||||
asm volatile("latejump:");
|
|
||||||
__libc_fatal("longjmp: Attempt to jump to a function that has returned.\n");
|
|
||||||
}
|
|
@@ -1,48 +0,0 @@
|
|||||||
# VAX __mpn_add_n -- Add two limb vectors of the same length > 0 and store
|
|
||||||
# sum in a third limb vector.
|
|
||||||
|
|
||||||
# Copyright (C) 1992, 1994 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This file is part of the GNU MP Library.
|
|
||||||
|
|
||||||
# The GNU MP Library is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2.1 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
|
|
||||||
# The GNU MP Library is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
||||||
# License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
|
||||||
# along with the GNU MP Library; see the file COPYING.LIB. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
||||||
# MA 02111-1307, USA.
|
|
||||||
|
|
||||||
|
|
||||||
# INPUT PARAMETERS
|
|
||||||
# res_ptr (sp + 4)
|
|
||||||
# s1_ptr (sp + 8)
|
|
||||||
# s2_ptr (sp + 12)
|
|
||||||
# size (sp + 16)
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 1
|
|
||||||
.globl ___mpn_add_n
|
|
||||||
___mpn_add_n:
|
|
||||||
.word 0x0
|
|
||||||
movl 16(ap),r0
|
|
||||||
movl 12(ap),r1
|
|
||||||
movl 8(ap),r2
|
|
||||||
movl 4(ap),r3
|
|
||||||
subl2 r4,r4
|
|
||||||
|
|
||||||
Loop:
|
|
||||||
movl (r2)+,r4
|
|
||||||
adwc (r1)+,r4
|
|
||||||
movl r4,(r3)+
|
|
||||||
jsobgtr r0,Loop
|
|
||||||
|
|
||||||
adwc r0,r0
|
|
||||||
ret
|
|
@@ -1,126 +0,0 @@
|
|||||||
# VAX __mpn_addmul_1 -- Multiply a limb vector with a limb and add
|
|
||||||
# the result to a second limb vector.
|
|
||||||
|
|
||||||
# Copyright (C) 1992, 1994 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This file is part of the GNU MP Library.
|
|
||||||
|
|
||||||
# The GNU MP Library is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2.1 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
|
|
||||||
# The GNU MP Library is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
||||||
# License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
|
||||||
# along with the GNU MP Library; see the file COPYING.LIB. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
||||||
# MA 02111-1307, USA.
|
|
||||||
|
|
||||||
|
|
||||||
# INPUT PARAMETERS
|
|
||||||
# res_ptr (sp + 4)
|
|
||||||
# s1_ptr (sp + 8)
|
|
||||||
# size (sp + 12)
|
|
||||||
# s2_limb (sp + 16)
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 1
|
|
||||||
.globl ___mpn_addmul_1
|
|
||||||
___mpn_addmul_1:
|
|
||||||
.word 0xfc0
|
|
||||||
movl 12(ap),r4
|
|
||||||
movl 8(ap),r8
|
|
||||||
movl 4(ap),r9
|
|
||||||
movl 16(ap),r6
|
|
||||||
jlss s2_big
|
|
||||||
|
|
||||||
clrl r3
|
|
||||||
incl r4
|
|
||||||
ashl $-1,r4,r7
|
|
||||||
jlbc r4,L1
|
|
||||||
clrl r11
|
|
||||||
|
|
||||||
# Loop for S2_LIMB < 0x80000000
|
|
||||||
Loop1: movl (r8)+,r1
|
|
||||||
jlss L1n0
|
|
||||||
emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc $0,r3
|
|
||||||
addl2 r2,(r9)+
|
|
||||||
adwc $0,r3
|
|
||||||
L1: movl (r8)+,r1
|
|
||||||
jlss L1n1
|
|
||||||
L1p1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc $0,r11
|
|
||||||
addl2 r10,(r9)+
|
|
||||||
adwc $0,r11
|
|
||||||
|
|
||||||
jsobgtr r7,Loop1
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
L1n0: emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r6,r3
|
|
||||||
addl2 r2,(r9)+
|
|
||||||
adwc $0,r3
|
|
||||||
movl (r8)+,r1
|
|
||||||
jgeq L1p1
|
|
||||||
L1n1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r6,r11
|
|
||||||
addl2 r10,(r9)+
|
|
||||||
adwc $0,r11
|
|
||||||
|
|
||||||
jsobgtr r7,Loop1
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
s2_big: clrl r3
|
|
||||||
incl r4
|
|
||||||
ashl $-1,r4,r7
|
|
||||||
jlbc r4,L2
|
|
||||||
clrl r11
|
|
||||||
|
|
||||||
# Loop for S2_LIMB >= 0x80000000
|
|
||||||
Loop2: movl (r8)+,r1
|
|
||||||
jlss L2n0
|
|
||||||
emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r1,r3
|
|
||||||
addl2 r2,(r9)+
|
|
||||||
adwc $0,r3
|
|
||||||
L2: movl (r8)+,r1
|
|
||||||
jlss L2n1
|
|
||||||
L2p1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r1,r11
|
|
||||||
addl2 r10,(r9)+
|
|
||||||
adwc $0,r11
|
|
||||||
|
|
||||||
jsobgtr r7,Loop2
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
L2n0: emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r6,r3
|
|
||||||
addl2 r2,(r9)+
|
|
||||||
adwc r1,r3
|
|
||||||
movl (r8)+,r1
|
|
||||||
jgeq L2p1
|
|
||||||
L2n1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r6,r11
|
|
||||||
addl2 r10,(r9)+
|
|
||||||
adwc r1,r11
|
|
||||||
|
|
||||||
jsobgtr r7,Loop2
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
@@ -1,74 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)bcopy.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/* bcopy(from, to, size) */
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(bcopy, R6)
|
|
||||||
movl 4(ap),r1
|
|
||||||
movl 8(ap),r3
|
|
||||||
movl 12(ap),r6
|
|
||||||
cmpl r1,r3
|
|
||||||
bgtr 2f # normal forward case
|
|
||||||
blss 3f # overlapping, must do backwards
|
|
||||||
ret # equal, nothing to do
|
|
||||||
1:
|
|
||||||
subl2 r0,r6
|
|
||||||
movc3 r0,(r1),(r3)
|
|
||||||
2:
|
|
||||||
movzwl $65535,r0
|
|
||||||
cmpl r6,r0
|
|
||||||
jgtr 1b
|
|
||||||
movc3 r6,(r1),(r3)
|
|
||||||
ret
|
|
||||||
3:
|
|
||||||
addl2 r6,r1
|
|
||||||
addl2 r6,r3
|
|
||||||
movzwl $65535,r0
|
|
||||||
jbr 5f
|
|
||||||
4:
|
|
||||||
subl2 r0,r6
|
|
||||||
subl2 r0,r1
|
|
||||||
subl2 r0,r3
|
|
||||||
movc3 r0,(r1),(r3)
|
|
||||||
movzwl $65535,r0
|
|
||||||
subl2 r0,r1
|
|
||||||
subl2 r0,r3
|
|
||||||
5:
|
|
||||||
cmpl r6,r0
|
|
||||||
jgtr 4b
|
|
||||||
subl2 r6,r1
|
|
||||||
subl2 r6,r3
|
|
||||||
movc3 r6,(r1),(r3)
|
|
||||||
ret
|
|
@@ -1,26 +0,0 @@
|
|||||||
/* `HUGE_VAL' constant for Vaxen.
|
|
||||||
Used by <stdlib.h> and <math.h> functions for overflow.
|
|
||||||
Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#ifndef _MATH_H
|
|
||||||
# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define HUGE_VAL 1.70141182460469227e38
|
|
@@ -1,11 +0,0 @@
|
|||||||
/* Define the machine-dependent type `jmp_buf'. Vax version. */
|
|
||||||
|
|
||||||
#ifndef _SETJMP_H
|
|
||||||
# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
PTR __fp;
|
|
||||||
PTR __pc;
|
|
||||||
} __jmp_buf[1];
|
|
@@ -1,33 +0,0 @@
|
|||||||
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. Vax version.
|
|
||||||
Copyright (C) 1994, 1997, 2002 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
/* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
|
|
||||||
We cannot do it in C because it must be a tail-call, so frame-unwinding
|
|
||||||
in setjmp doesn't clobber the state restored by longjmp. */
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
|
||||||
|
|
||||||
ENTRY (_setjmp)
|
|
||||||
popl r0 /* Pop return PC. */
|
|
||||||
popl r1 /* Pop jmp_buf argument. */
|
|
||||||
pushl $0 /* Push second argument of zero. */
|
|
||||||
pushl r1 /* Push back first argument. */
|
|
||||||
pushl r0 /* Push back return PC. */
|
|
||||||
jmp C_SYMBOL_NAME (__sigsetjmp)
|
|
||||||
libc_hidden_def (_setjmp)
|
|
@@ -1,32 +0,0 @@
|
|||||||
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. Vax version.
|
|
||||||
Copyright (C) 1994, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
|
|
||||||
We cannot do it in C because it must be a tail-call, so frame-unwinding
|
|
||||||
in setjmp doesn't clobber the state restored by longjmp. */
|
|
||||||
|
|
||||||
#include <sysdep.h>
|
|
||||||
|
|
||||||
ENTRY (setjmp)
|
|
||||||
popl r0 /* Pop return PC. */
|
|
||||||
popl r1 /* Pop jmp_buf argument. */
|
|
||||||
pushl $1 /* Push second argument of one. */
|
|
||||||
pushl r1 /* Push back first argument. */
|
|
||||||
pushl r0 /* Push back return PC. */
|
|
||||||
jmp C_SYMBOL_NAME (__sigsetjmp)
|
|
@@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)bzero.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/* bzero(base, length) */
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(__bzero, 0)
|
|
||||||
movl 4(ap),r3
|
|
||||||
jbr 2f
|
|
||||||
1:
|
|
||||||
subl2 r0,8(ap)
|
|
||||||
movc5 $0,(r3),$0,r0,(r3)
|
|
||||||
2:
|
|
||||||
movzwl $65535,r0
|
|
||||||
cmpl 8(ap),r0
|
|
||||||
jgtr 1b
|
|
||||||
movc5 $0,(r3),$0,8(ap),(r3)
|
|
||||||
ret
|
|
||||||
weak_alias (__bzero, bzero)
|
|
@@ -1,45 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)ffs.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/* bit = ffs(value) */
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(__ffs, 0)
|
|
||||||
ffs $0,$32,4(ap),r0
|
|
||||||
bneq 1f
|
|
||||||
mnegl $1,r0
|
|
||||||
1:
|
|
||||||
incl r0
|
|
||||||
ret
|
|
||||||
weak_alias (__ffs, ffs)
|
|
@@ -1,68 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#ifndef __need_HUGE_VAL
|
|
||||||
|
|
||||||
/* Floating-point constants for Vaxen. */
|
|
||||||
|
|
||||||
#define FLT_RADIX 2
|
|
||||||
|
|
||||||
#define FLT_ROUNDS _FLT_ROUNDS_TONEAREST
|
|
||||||
|
|
||||||
#define FLT_MANT_DIG 23
|
|
||||||
#define DBL_MANT_DIG 55
|
|
||||||
#define LDBL_MANT_DIG 55
|
|
||||||
|
|
||||||
#define FLT_DIG 6
|
|
||||||
#define DBL_DIG 16
|
|
||||||
#define LDBL_DIG 16
|
|
||||||
|
|
||||||
#define FLT_MIN_EXP (-128)
|
|
||||||
#define DBL_MIN_EXP (-128)
|
|
||||||
#define LDBL_MIN_EXP (-128)
|
|
||||||
|
|
||||||
#define FLT_MIN_10_EXP (-38)
|
|
||||||
#define DBL_MIN_10_EXP (-38)
|
|
||||||
#define LDBL_MIN_10_EXP (-38)
|
|
||||||
|
|
||||||
#define FLT_MAX_EXP 127
|
|
||||||
#define DBL_MAX_EXP 127
|
|
||||||
#define LDBL_MAX_EXP 127
|
|
||||||
|
|
||||||
#define FLT_MAX_10_EXP 38
|
|
||||||
#define DBL_MAX_10_EXP 38
|
|
||||||
#define LDBL_MAX_10_EXP 38
|
|
||||||
|
|
||||||
#define FLT_MAX 1.7014116e38
|
|
||||||
#define DBL_MAX 1.70141182460469227e38
|
|
||||||
#define LDBL_MAX DBL_MAX
|
|
||||||
|
|
||||||
#define FLT_EPSILON 2.384186e-7
|
|
||||||
#define DBL_EPSILON 5.55111512312578270e-17
|
|
||||||
#define LDBL_EPSILON DBL_EPSILON
|
|
||||||
|
|
||||||
#define FLT_MIN 0.2938736e-38
|
|
||||||
#define DBL_MIN 0.29387358770557187e-38
|
|
||||||
#define LDBL_MIN DBL_MIN
|
|
||||||
|
|
||||||
#else /* Need HUGE_VAL. */
|
|
||||||
|
|
||||||
/* Used by <stdlib.h> and <math.h> functions for overflow. */
|
|
||||||
#define HUGE_VAL 1.70141182460469227e38
|
|
||||||
|
|
||||||
#endif /* Don't need HUGE_VAL. */
|
|
@@ -1,22 +0,0 @@
|
|||||||
/* Definition of object in frame unwind info. vax version.
|
|
||||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#define DWARF_FRAME_REGISTERS 16
|
|
||||||
|
|
||||||
#include <sysdeps/generic/gccframe.h>
|
|
@@ -1,29 +0,0 @@
|
|||||||
/* gmp-mparam.h -- Compiler/machine parameter header file.
|
|
||||||
|
|
||||||
Copyright (C) 1991, 1993, 1994, 1995 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This file is part of the GNU MP Library.
|
|
||||||
|
|
||||||
The GNU MP Library is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2.1 of the License, or (at your
|
|
||||||
option) any later version.
|
|
||||||
|
|
||||||
The GNU MP Library is distributed in the hope that it will be useful, but
|
|
||||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
||||||
License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
|
||||||
along with the GNU MP Library; see the file COPYING.LIB. If not, write to
|
|
||||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
||||||
MA 02111-1307, USA. */
|
|
||||||
|
|
||||||
#define BITS_PER_MP_LIMB 32
|
|
||||||
#define BYTES_PER_MP_LIMB 4
|
|
||||||
#define BITS_PER_LONGINT 32
|
|
||||||
#define BITS_PER_INT 32
|
|
||||||
#define BITS_PER_SHORTINT 16
|
|
||||||
#define BITS_PER_CHAR 8
|
|
||||||
|
|
||||||
#define IEEE_DOUBLE_BIG_ENDIAN 0
|
|
@@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)htonl.s 5.5 (Berkeley) 6/27/88"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/* netorder = htonl(hostorder) */
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(htonl, 0)
|
|
||||||
rotl $-8,4(ap),r0
|
|
||||||
insv r0,$16,$8,r0
|
|
||||||
movb 7(ap),r0
|
|
||||||
ret
|
|
||||||
weak_alias (htonl, ntohl)
|
|
@@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)htons.s 5.5 (Berkeley) 6/27/88"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/* hostorder = htons(netorder) */
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(htons, 0)
|
|
||||||
rotl $8,4(ap),r0
|
|
||||||
movb 5(ap),r0
|
|
||||||
movzwl r0,r0
|
|
||||||
ret
|
|
||||||
weak_alias (htons, ntohs)
|
|
@@ -1,46 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA. */
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
/* Copy no more than N bytes of SRC to DEST, stopping when C is found.
|
|
||||||
Return the position in DEST one byte past where C was copied,
|
|
||||||
or NULL if C was not found in the first N bytes of SRC. */
|
|
||||||
void *
|
|
||||||
__memccpy (dest, src, c, n)
|
|
||||||
void *dest;
|
|
||||||
const void *src;
|
|
||||||
int c;
|
|
||||||
size_t nbytes;
|
|
||||||
{
|
|
||||||
/* Except when N > 65535, this is what a hand-coded version would
|
|
||||||
do anyway. */
|
|
||||||
|
|
||||||
void *found = memchr (src, c, n);
|
|
||||||
|
|
||||||
if (found == NULL)
|
|
||||||
{
|
|
||||||
(void) memcpy (dest, src, n);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
(void) memcpy (dest, src, (char *) found + 1 - (char *) src);
|
|
||||||
return (PTR) ((char *) dest + ((char *) found + 1 - (char *) src));
|
|
||||||
}
|
|
||||||
|
|
||||||
weak_alias (__memccpy, memccpy)
|
|
@@ -1,74 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)memchr.s 5.1 (Berkeley) 5/29/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Find the first occurrence of c in the memory at cp (length n).
|
|
||||||
* Return pointer to match or null pointer.
|
|
||||||
*
|
|
||||||
* This code optimises the usual case (0 < n < 65535).
|
|
||||||
*
|
|
||||||
* void *
|
|
||||||
* memchr(cp, c, n)
|
|
||||||
* char *cp, c;
|
|
||||||
* size_t n;
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(__memchr, 0)
|
|
||||||
movq 4(ap),r1 # r1 = cp; r2 = c
|
|
||||||
movl 12(ap),r0 # r0 = n
|
|
||||||
movzwl $65535,r4 # handy constant
|
|
||||||
0:
|
|
||||||
cmpl r0,r4 # check for annoying locc limit
|
|
||||||
bgtru 3f
|
|
||||||
|
|
||||||
/* n <= 65535 */
|
|
||||||
locc r2,r0,(r1) # search n bytes for c
|
|
||||||
beql 2f # done if not found (r0 already 0)
|
|
||||||
1: /* found character c at (r1) */
|
|
||||||
movl r1,r0
|
|
||||||
2:
|
|
||||||
ret
|
|
||||||
|
|
||||||
3: /* n > 65535 */
|
|
||||||
locc r2,r4,(r1) # search 65535 bytes for c
|
|
||||||
beql 1b # done if found
|
|
||||||
decw r0 # from 0 to 65535
|
|
||||||
subl2 r0,r4 # adjust n
|
|
||||||
brb 0b # and loop
|
|
||||||
|
|
||||||
weak_alias (__memchr, memchr)
|
|
||||||
#if !__BOUNDED_POINTERS__
|
|
||||||
weak_alias (__memchr, __ubp_memchr)
|
|
||||||
#endif
|
|
@@ -1,59 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)memcmp.s 5.1 (Berkeley) 5/15/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/* int memcmp(s1, s2, n) */
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(memcmp, 0)
|
|
||||||
movl 4(ap),r1 /* r1 = s1 */
|
|
||||||
movq 8(ap),r3 /* r3 = s2; r4 = n */
|
|
||||||
movzwl $65535,r5
|
|
||||||
0:
|
|
||||||
cmpl r4,r5
|
|
||||||
jgtru 3f /* handle stupid cmpc3 limitation */
|
|
||||||
cmpc3 r4,(r1),(r3) /* compare */
|
|
||||||
beql 2f /* done if same (r0 = 0) */
|
|
||||||
1:
|
|
||||||
movzbl (r1),r0
|
|
||||||
movzbl (r3),r2
|
|
||||||
subl2 r2,r0 /* return *s1 - *s2; s1,s2 unsigned chars */
|
|
||||||
2:
|
|
||||||
ret
|
|
||||||
3:
|
|
||||||
subl2 r5,r4 /* do 64K; adjust count */
|
|
||||||
cmpc3 r5,(r1),(r3)
|
|
||||||
jeql 0b /* loop if same */
|
|
||||||
jbr 1b
|
|
||||||
|
|
||||||
weak_alias (memcmp, bcmp)
|
|
@@ -1,89 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)memmove.s 5.1 (Berkeley) 5/15/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* void *memmove(dst, src, size)
|
|
||||||
* returns dst
|
|
||||||
*
|
|
||||||
* This optimises the usual case (count < 65536) at the expense
|
|
||||||
* of some extra memory references and branches when count >= 65536.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(memmove, 0)
|
|
||||||
movzwl $65535,r0 /* r0 = 64K (needed below) */
|
|
||||||
movq 8(ap),r1 /* r1 = src, r2 = length */
|
|
||||||
movl 4(ap),r3 /* r3 = dst */
|
|
||||||
cmpl r1,r3
|
|
||||||
bgtru 1f /* normal forward case */
|
|
||||||
beql 2f /* equal, nothing to do */
|
|
||||||
addl2 r2,r1 /* overlaps iff src<dst but src+len>dst */
|
|
||||||
cmpl r1,r3
|
|
||||||
bgtru 4f /* overlapping, must move backwards */
|
|
||||||
subl2 r2,r1
|
|
||||||
|
|
||||||
1: /* move forward */
|
|
||||||
cmpl r2,r0
|
|
||||||
bgtru 3f /* stupid movc3 limitation */
|
|
||||||
movc3 r2,(r1),(r3) /* move it all */
|
|
||||||
2:
|
|
||||||
movl 4(ap),r0 /* return original dst */
|
|
||||||
ret
|
|
||||||
3:
|
|
||||||
subl2 r0,12(ap) /* adjust length by 64K */
|
|
||||||
movc3 r0,(r1),(r3) /* move 64K */
|
|
||||||
movl 12(ap),r2
|
|
||||||
decw r0 /* from 0 to 65535 */
|
|
||||||
brb 1b /* retry */
|
|
||||||
|
|
||||||
4: /* move backward */
|
|
||||||
addl2 r2,r3
|
|
||||||
5:
|
|
||||||
cmpl r2,r0
|
|
||||||
bgtru 6f /* stupid movc3 limitation */
|
|
||||||
subl2 r2,r1
|
|
||||||
subl2 r2,r3
|
|
||||||
movc3 r2,(r1),(r3) /* move it all */
|
|
||||||
movl 4(ap),r0 /* return original dst */
|
|
||||||
ret
|
|
||||||
6:
|
|
||||||
subl2 r0,12(ap) /* adjust length by 64K */
|
|
||||||
subl2 r0,r1
|
|
||||||
subl2 r0,r3
|
|
||||||
movc3 r0,(r1),(r3) /* move 64K */
|
|
||||||
movl 12(ap),r2
|
|
||||||
decw r0
|
|
||||||
subl2 r0,r1
|
|
||||||
subl2 r0,r3
|
|
||||||
brb 5b
|
|
@@ -1,51 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)memset.s 5.2 (Berkeley) 5/12/91"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/* void *memset(base, c, length) */
|
|
||||||
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(memset, 0)
|
|
||||||
movl 4(ap),r3
|
|
||||||
1:
|
|
||||||
movzwl $65535,r0
|
|
||||||
movq 8(ap),r1
|
|
||||||
cmpl r2,r0
|
|
||||||
jgtru 2f
|
|
||||||
movc5 $0,(r3),r1,r2,(r3)
|
|
||||||
movl r1,r0
|
|
||||||
ret
|
|
||||||
2:
|
|
||||||
subl2 r0,12(ap)
|
|
||||||
movc5 $0,(r3),r1,r0,(r3)
|
|
||||||
jbr 1b
|
|
@@ -1,123 +0,0 @@
|
|||||||
# VAX __mpn_mul_1 -- Multiply a limb vector with a limb and store
|
|
||||||
# the result in a second limb vector.
|
|
||||||
|
|
||||||
# Copyright (C) 1992, 1994 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This file is part of the GNU MP Library.
|
|
||||||
|
|
||||||
# The GNU MP Library is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2.1 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
|
|
||||||
# The GNU MP Library is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
||||||
# License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
|
||||||
# along with the GNU MP Library; see the file COPYING.LIB. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
||||||
# MA 02111-1307, USA.
|
|
||||||
|
|
||||||
|
|
||||||
# INPUT PARAMETERS
|
|
||||||
# res_ptr (sp + 4)
|
|
||||||
# s1_ptr (sp + 8)
|
|
||||||
# size (sp + 12)
|
|
||||||
# s2_limb (sp + 16)
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 1
|
|
||||||
.globl ___mpn_mul_1
|
|
||||||
___mpn_mul_1:
|
|
||||||
.word 0xfc0
|
|
||||||
movl 12(ap),r4
|
|
||||||
movl 8(ap),r8
|
|
||||||
movl 4(ap),r9
|
|
||||||
movl 16(ap),r6
|
|
||||||
jlss s2_big
|
|
||||||
|
|
||||||
# One might want to combine the addl2 and the store below, but that
|
|
||||||
# is actually just slower according to my timing tests. (VAX 3600)
|
|
||||||
|
|
||||||
clrl r3
|
|
||||||
incl r4
|
|
||||||
ashl $-1,r4,r7
|
|
||||||
jlbc r4,L1
|
|
||||||
clrl r11
|
|
||||||
|
|
||||||
# Loop for S2_LIMB < 0x80000000
|
|
||||||
Loop1: movl (r8)+,r1
|
|
||||||
jlss L1n0
|
|
||||||
emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc $0,r3
|
|
||||||
movl r2,(r9)+
|
|
||||||
L1: movl (r8)+,r1
|
|
||||||
jlss L1n1
|
|
||||||
L1p1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc $0,r11
|
|
||||||
movl r10,(r9)+
|
|
||||||
|
|
||||||
jsobgtr r7,Loop1
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
L1n0: emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r6,r3
|
|
||||||
movl r2,(r9)+
|
|
||||||
movl (r8)+,r1
|
|
||||||
jgeq L1p1
|
|
||||||
L1n1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r6,r11
|
|
||||||
movl r10,(r9)+
|
|
||||||
|
|
||||||
jsobgtr r7,Loop1
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
s2_big: clrl r3
|
|
||||||
incl r4
|
|
||||||
ashl $-1,r4,r7
|
|
||||||
jlbc r4,L2
|
|
||||||
clrl r11
|
|
||||||
|
|
||||||
# Loop for S2_LIMB >= 0x80000000
|
|
||||||
Loop2: movl (r8)+,r1
|
|
||||||
jlss L2n0
|
|
||||||
emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r1,r3
|
|
||||||
movl r2,(r9)+
|
|
||||||
L2: movl (r8)+,r1
|
|
||||||
jlss L2n1
|
|
||||||
L2p1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r1,r11
|
|
||||||
movl r10,(r9)+
|
|
||||||
|
|
||||||
jsobgtr r7,Loop2
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
L2n0: emul r1,r6,$0,r2
|
|
||||||
addl2 r1,r3
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r6,r3
|
|
||||||
movl r2,(r9)+
|
|
||||||
movl (r8)+,r1
|
|
||||||
jgeq L2p1
|
|
||||||
L2n1: emul r1,r6,$0,r10
|
|
||||||
addl2 r1,r11
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r6,r11
|
|
||||||
movl r10,(r9)+
|
|
||||||
|
|
||||||
jsobgtr r7,Loop2
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
@@ -1,62 +0,0 @@
|
|||||||
/* Copyright (C) 1991, 1992, 1994, 1997 Free Software Foundation, Inc.
|
|
||||||
This file is part of the GNU C Library.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
The GNU C Library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with the GNU C Library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
||||||
02111-1307 USA.
|
|
||||||
|
|
||||||
Derived from @(#)_setjmp.s 5.7 (Berkeley) 6/27/88,
|
|
||||||
Copyright (C) 1980 Regents of the University of California.
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
|
||||||
are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
4. Neither the name of the University nor the names of its contributors
|
|
||||||
may be used to endorse or promote products derived from this software
|
|
||||||
without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <setjmp.h>
|
|
||||||
|
|
||||||
|
|
||||||
/* Save the current program position in ENV and return 0. */
|
|
||||||
int
|
|
||||||
__sigsetjmp (jmp_buf env, int savemask)
|
|
||||||
{
|
|
||||||
/* Save our caller's FP and PC. */
|
|
||||||
asm ("movl 12(fp), %0" : "=g" (env[0].__jmpbuf[0].__fp));
|
|
||||||
asm ("movl 16(fp), %0" : "=g" (env[0].__jmpbuf[0].__pc));
|
|
||||||
|
|
||||||
/* Save the signal mask if requested. */
|
|
||||||
return __sigjmp_save (env, savemask);
|
|
||||||
}
|
|
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strcat.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Concatenate string s2 to the end of s1
|
|
||||||
* and return the base of s1.
|
|
||||||
*
|
|
||||||
* char *
|
|
||||||
* strcat(s1, s2)
|
|
||||||
* char *s1, *s2;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strcat, R6|R7)
|
|
||||||
movq 4(ap), r6 # r6 = s1; r7 = s2
|
|
||||||
movl r6,r1
|
|
||||||
0:
|
|
||||||
locc $0,$65535,(r1) # look for '\0'
|
|
||||||
beql 0b
|
|
||||||
movl r1,r3 # save end of s1
|
|
||||||
1:
|
|
||||||
locc $0,$65535,(r7) # find length of s2
|
|
||||||
bneq 2f
|
|
||||||
movc3 $65535,(r7),(r3)# copy full block
|
|
||||||
movl r1,r7
|
|
||||||
jbr 1b
|
|
||||||
2:
|
|
||||||
subl2 r7,r1 # calculate length
|
|
||||||
incl r1
|
|
||||||
movc3 r1,(r7),(r3) # copy remainder
|
|
||||||
movl r6,r0
|
|
||||||
ret
|
|
@@ -1,103 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1988 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strchr.s 5.4 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Find the first occurrence of c in the string cp.
|
|
||||||
* Return pointer to match or null pointer.
|
|
||||||
*
|
|
||||||
* char *
|
|
||||||
* strchr(cp, c)
|
|
||||||
* char *cp, c;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
.lcomm tbl,256
|
|
||||||
|
|
||||||
ENTRY(strchr, 0)
|
|
||||||
movzwl $65535,r4 /* handy constant */
|
|
||||||
movq 4(ap),r1 /* r1 = cp; r2 = c */
|
|
||||||
movzbl r2,r2
|
|
||||||
beql Lzero /* special case for c == '\0' */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Fancy scanc version. Alas, it is not reentrant.
|
|
||||||
*/
|
|
||||||
movab tbl,r3 /* r3 = base of table */
|
|
||||||
bbss $0,(r3),Lreent /* ensure not reentering */
|
|
||||||
movab (r3)[r2],r5
|
|
||||||
incb (r5) /* mark both '\0' and c */
|
|
||||||
0:
|
|
||||||
scanc r4,(r1),(r3),$1 /* look for c or '\0' */
|
|
||||||
beql 0b /* still looking */
|
|
||||||
movl r1,r0 /* return whatever we found */
|
|
||||||
tstb (r0)
|
|
||||||
bneq 1f # unless it was '\0':
|
|
||||||
clrl r0 # then return NULL
|
|
||||||
1:
|
|
||||||
clrb (r5) /* clean up table */
|
|
||||||
clrb (r3)
|
|
||||||
ret
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Special case for \0.
|
|
||||||
*/
|
|
||||||
Lzero:
|
|
||||||
locc r2,r4,(r1) /* just find end of string */
|
|
||||||
beql Lzero /* still looking */
|
|
||||||
movl r1,r0 /* found it */
|
|
||||||
ret
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Slower reentrant version is two two-step searches. The first
|
|
||||||
* phase runs until we know where the string ends; it locates the
|
|
||||||
* first occurrence of c within a 65535-byte block. If we find
|
|
||||||
* the end of the string first, we switch to the second phase,
|
|
||||||
* were we look only up to the known end of string.
|
|
||||||
*/
|
|
||||||
Lreent:
|
|
||||||
0: /* first phase */
|
|
||||||
movl r1,r3
|
|
||||||
locc $0,r4,(r3) /* look for '\0' */
|
|
||||||
bneq 1f
|
|
||||||
locc r2,r4,(r3) /* look for c */
|
|
||||||
beql 0b /* not found: reset pointer and loop */
|
|
||||||
movl r1,r0 /* found: return it */
|
|
||||||
ret
|
|
||||||
1: /* second phase */
|
|
||||||
subl3 r3,r1,r0 /* length of short block */
|
|
||||||
locc r2,r0,(r3) /* look for c */
|
|
||||||
beql 2f /* not found: return NULL */
|
|
||||||
movl r1,r0
|
|
||||||
2: ret
|
|
||||||
|
|
||||||
weak_alias (strchr, index)
|
|
@@ -1,81 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strcmp.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Compare string s1 lexicographically to string s2.
|
|
||||||
* Return:
|
|
||||||
* 0 s1 == s2
|
|
||||||
* > 0 s1 > s2
|
|
||||||
* < 0 s2 < s2
|
|
||||||
*
|
|
||||||
* strcmp(s1, s2)
|
|
||||||
* char *s1, *s2;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strcmp, 0)
|
|
||||||
movl 4(ap),r1 # r1 = s1
|
|
||||||
movl 8(ap),r3 # r3 = s2
|
|
||||||
subb3 (r3),(r1),r0 # quick check for first char different
|
|
||||||
beql 1f # have to keep checking
|
|
||||||
cvtbl r0,r0
|
|
||||||
ret
|
|
||||||
1:
|
|
||||||
clrl r5 # calculate min bytes to next page boundary
|
|
||||||
subb3 r1,$255,r5 # r5 = (bytes - 1) to end of page for s1
|
|
||||||
subb3 r3,$255,r0 # r0 = (bytes - 1) to end of page for s2
|
|
||||||
cmpb r0,r5 # r5 = min(r0, r5);
|
|
||||||
bgtru 2f
|
|
||||||
movb r0,r5
|
|
||||||
2:
|
|
||||||
incl r5 # r5 = min bytes to next page boundary
|
|
||||||
cmpc3 r5,(r1),(r3) # compare strings
|
|
||||||
bneq 3f
|
|
||||||
subl2 r5,r1 # check if found null yet
|
|
||||||
locc $0,r5,(r1)
|
|
||||||
beql 1b # not yet done, continue checking
|
|
||||||
subl2 r0,r3
|
|
||||||
mnegb (r3),r0 # r0 = '\0' - *s2
|
|
||||||
cvtbl r0,r0
|
|
||||||
ret
|
|
||||||
3:
|
|
||||||
subl2 r0,r5 # check for null in matching string
|
|
||||||
subl2 r5,r1
|
|
||||||
locc $0,r5,(r1)
|
|
||||||
bneq 4f
|
|
||||||
subb3 (r3),(r1),r0 # r0 = *s1 - *s2
|
|
||||||
cvtbl r0,r0
|
|
||||||
ret
|
|
||||||
4:
|
|
||||||
clrl r0 # both the same to null
|
|
||||||
ret
|
|
@@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strcpy.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copy string s2 over top of s1.
|
|
||||||
* Return base of s1.
|
|
||||||
*
|
|
||||||
* char *
|
|
||||||
* strcpy(s1, s2)
|
|
||||||
* char *s1, *s2;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strcpy, R6)
|
|
||||||
movl 4(ap), r3 # r3 = s1
|
|
||||||
movl 8(ap), r6 # r6 = s2
|
|
||||||
1:
|
|
||||||
locc $0,$65535,(r6) # find length of s2
|
|
||||||
bneq 2f
|
|
||||||
movc3 $65535,(r6),(r3)# copy full block
|
|
||||||
movl r1,r6
|
|
||||||
jbr 1b
|
|
||||||
2:
|
|
||||||
subl2 r6,r1 # calculate length
|
|
||||||
incl r1
|
|
||||||
movc3 r1,(r6),(r3) # copy remainder
|
|
||||||
movl 4(ap),r0 # return base of s1
|
|
||||||
ret
|
|
@@ -1,62 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strcspn.s 5.1 (Berkeley) 5/15/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Span the complement of string s2 (skip characters that are not in s2).
|
|
||||||
* Return the number of characters in s1 that were skipped.
|
|
||||||
*
|
|
||||||
* size_t
|
|
||||||
* strcspn(s1, s2)
|
|
||||||
* const char *s1, *s2;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strcspn, 0)
|
|
||||||
subl2 $32,sp /* make 256 bit table */
|
|
||||||
movc5 $0,(sp),$0,$32,(sp)
|
|
||||||
movq 4(ap),r1 /* r1 = s1, r2 = s2 */
|
|
||||||
|
|
||||||
/* turn on bit for each character in s2, including '\0' */
|
|
||||||
1:
|
|
||||||
movzbl (r2)+,r0
|
|
||||||
bbss r0,(sp),1b
|
|
||||||
bneq 1b
|
|
||||||
movl r1,r0 /* r0 = s (current pos in s1) */
|
|
||||||
|
|
||||||
/* look for a character that is in s2 */
|
|
||||||
2:
|
|
||||||
movzbl (r0)+,r2 /* c = *s++ */
|
|
||||||
bbc r2,(sp),2b /* loop until c is in table */
|
|
||||||
decl r0 /* s-- */
|
|
||||||
subl2 r1,r0 /* r0 = s - s1 = count */
|
|
||||||
ret
|
|
@@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strlen.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return the length of cp (not counting '\0').
|
|
||||||
*
|
|
||||||
* strlen(cp)
|
|
||||||
* char *cp;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strlen, 0)
|
|
||||||
movl 4(ap),r1
|
|
||||||
1:
|
|
||||||
locc $0,$65535,(r1) # look for '\0'
|
|
||||||
beql 1b
|
|
||||||
subl3 4(ap),r1,r0 # len = cp - base
|
|
||||||
ret
|
|
@@ -1,79 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strncat.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Concatenate string s2 on the end of s1
|
|
||||||
* and return the base of s1. The parameter
|
|
||||||
* n is the maximum length of string s2 to
|
|
||||||
* concatenate.
|
|
||||||
*
|
|
||||||
* char *
|
|
||||||
* strncat(s1, s2, n)
|
|
||||||
* char *s1, *s2;
|
|
||||||
* int n;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strncat, R6)
|
|
||||||
movl 12(ap),r6 # r6 = n
|
|
||||||
bleq done # n <= 0
|
|
||||||
movl 4(ap),r3 # r3 = s1
|
|
||||||
movl r3,r1
|
|
||||||
0:
|
|
||||||
locc $0,$65535,(r1)
|
|
||||||
beql 0b
|
|
||||||
movl r1,r3 # r3 = index(s1, '\0');
|
|
||||||
movl 8(ap),r1 # r1 = s2
|
|
||||||
1:
|
|
||||||
movzwl $65535,r2 # r2 = bytes in first chunk
|
|
||||||
cmpl r6,r2 # r2 = min(bytes in chunk, n);
|
|
||||||
jgeq 2f
|
|
||||||
movl r6,r2
|
|
||||||
2:
|
|
||||||
subl2 r2,r6 # update n
|
|
||||||
locc $0,r2,(r1) # '\0' found?
|
|
||||||
jneq 3f
|
|
||||||
subl2 r2,r1 # back up pointer updated by locc
|
|
||||||
movc3 r2,(r1),(r3) # copy in next piece
|
|
||||||
tstl r6 # run out of space?
|
|
||||||
jneq 1b
|
|
||||||
clrb (r3) # force '\0' termination
|
|
||||||
jbr done
|
|
||||||
3:
|
|
||||||
subl2 r0,r2 # r2 = number of bytes to move
|
|
||||||
subl2 r2,r1 # back up pointer updated by locc
|
|
||||||
incl r2 # copy '\0' as well
|
|
||||||
movc3 r2,(r1),(r3) # copy in last piece
|
|
||||||
done:
|
|
||||||
movl 4(ap),r0 # return s1
|
|
||||||
ret
|
|
@@ -1,85 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strncmp.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Compare at most n characters of string
|
|
||||||
* s1 lexicographically to string s2.
|
|
||||||
* Return:
|
|
||||||
* 0 s1 == s2
|
|
||||||
* > 0 s1 > s2
|
|
||||||
* < 0 s2 < s2
|
|
||||||
*
|
|
||||||
* strncmp(s1, s2, n)
|
|
||||||
* char *s1, *s2;
|
|
||||||
* int n;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strncmp, 0)
|
|
||||||
movl 4(ap),r1 # r1 = s1
|
|
||||||
movq 8(ap),r3 # r3 = s2; r4 = n
|
|
||||||
1:
|
|
||||||
clrl r5 # calculate min bytes to next page boundary
|
|
||||||
subb3 r1,$255,r5 # r5 = (bytes - 1) to end of page for s1
|
|
||||||
subb3 r3,$255,r0 # r0 = (bytes - 1) to end of page for s2
|
|
||||||
cmpb r0,r5 # r5 = min(r0, r5);
|
|
||||||
bgtru 2f
|
|
||||||
movb r0,r5
|
|
||||||
2:
|
|
||||||
incl r5 # r5 = min bytes to next page boundary
|
|
||||||
cmpl r4,r5 # r5 = min(n, r5);
|
|
||||||
bgeq 3f
|
|
||||||
movl r4,r5
|
|
||||||
3:
|
|
||||||
cmpc3 r5,(r1),(r3) # compare strings
|
|
||||||
bneq 4f
|
|
||||||
subl2 r5,r4 # check for end of comparison
|
|
||||||
beql 5f
|
|
||||||
subl2 r5,r1 # check if found null yet
|
|
||||||
locc $0,r5,(r1)
|
|
||||||
beql 1b # not yet done, continue checking
|
|
||||||
subl2 r0,r3
|
|
||||||
mnegb (r3),r0 # r0 = '\0' - *s2
|
|
||||||
cvtbl r0,r0
|
|
||||||
ret
|
|
||||||
4:
|
|
||||||
subl2 r0,r5 # check for null in matching string
|
|
||||||
subl2 r5,r1
|
|
||||||
locc $0,r5,(r1)
|
|
||||||
bneq 5f
|
|
||||||
subb3 (r3),(r1),r0 # r0 = *s1 - *s2
|
|
||||||
cvtbl r0,r0
|
|
||||||
ret
|
|
||||||
5:
|
|
||||||
clrl r0 # both the same to null
|
|
||||||
ret
|
|
@@ -1,80 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1983 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strncpy.s 5.6 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copy string s2 over top of string s1.
|
|
||||||
* Truncate or null-pad to n bytes.
|
|
||||||
*
|
|
||||||
* char *
|
|
||||||
* strncpy(s1, s2, n)
|
|
||||||
* char *s1, *s2;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strncpy, R6)
|
|
||||||
movl 12(ap),r6 # r6 = n
|
|
||||||
bleq done # n <= 0
|
|
||||||
movl 4(ap),r3 # r3 = s1
|
|
||||||
movl 8(ap),r1 # r1 = s2
|
|
||||||
1:
|
|
||||||
movzwl $65535,r2 # r2 = bytes in first chunk
|
|
||||||
cmpl r6,r2 # r2 = min(bytes in chunk, n);
|
|
||||||
jgeq 2f
|
|
||||||
movl r6,r2
|
|
||||||
2:
|
|
||||||
subl2 r2,r6 # update n
|
|
||||||
locc $0,r2,(r1) # '\0' found?
|
|
||||||
jneq 3f
|
|
||||||
subl2 r2,r1 # back up pointer updated by locc
|
|
||||||
movc3 r2,(r1),(r3) # copy in next piece
|
|
||||||
tstl r6 # run out of space?
|
|
||||||
jneq 1b
|
|
||||||
jbr done
|
|
||||||
3: # copy up to '\0' logic
|
|
||||||
addl2 r0,r6 # r6 = number of null-pad bytes
|
|
||||||
subl2 r0,r2 # r2 = number of bytes to move
|
|
||||||
subl2 r2,r1 # back up pointer updated by locc
|
|
||||||
movc3 r2,(r1),(r3) # copy in last piece
|
|
||||||
4: # null-pad logic
|
|
||||||
movzwl $65535,r2 # r2 = bytes in first chunk
|
|
||||||
cmpl r6,r2 # r2 = min(bytes in chunk, n);
|
|
||||||
jgeq 5f
|
|
||||||
movl r6,r2
|
|
||||||
5:
|
|
||||||
subl2 r2,r6 # update n
|
|
||||||
movc5 $0,(r3),$0,r2,(r3)# pad with '\0's
|
|
||||||
tstl r6 # finished padding?
|
|
||||||
jneq 4b
|
|
||||||
done:
|
|
||||||
movl 4(ap),r0 # return s1
|
|
||||||
ret
|
|
@@ -1,64 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strpbrk.s 5.1 (Berkeley) 5/15/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Find in s1 the first occurrence of any character from s2.
|
|
||||||
* If there are none, return NULL.
|
|
||||||
*
|
|
||||||
* char *
|
|
||||||
* strpbrk(s1, s2)
|
|
||||||
* const char *s1, *s2;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strpbrk, 0)
|
|
||||||
subl2 $32,sp /* make 256 bit table */
|
|
||||||
movc5 $0,(sp),$0,$32,(sp)
|
|
||||||
movq 4(ap),r0 /* r0 = s1, r1 = s2 */
|
|
||||||
|
|
||||||
/* turn on bit for each character in s2, including '\0' */
|
|
||||||
1:
|
|
||||||
movzbl (r1)+,r2
|
|
||||||
bbss r2,(sp),1b
|
|
||||||
bneq 1b
|
|
||||||
|
|
||||||
/* look for a character that is in s2 */
|
|
||||||
2:
|
|
||||||
movzbl (r0)+,r2 /* c = *s++ */
|
|
||||||
bbc r2,(sp),2b /* loop until c is in table */
|
|
||||||
beql 3f /* if c==0, go return NULL */
|
|
||||||
decl r0 /* s-- */
|
|
||||||
ret
|
|
||||||
3:
|
|
||||||
clrl r0
|
|
||||||
ret
|
|
@@ -1,112 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 1988 Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strrchr.s 5.4 (Berkeley) 6/1/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Find the last occurrence of c in the string cp.
|
|
||||||
* Return pointer to match or null pointer.
|
|
||||||
*
|
|
||||||
* char *
|
|
||||||
* strrchr(cp, c)
|
|
||||||
* char *cp, c;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
.lcomm tbl,256
|
|
||||||
|
|
||||||
ENTRY(strrchr, 0)
|
|
||||||
movzwl $65535,r4 /* handy 65535 */
|
|
||||||
movq 4(ap),r1 /* r1 = cp; r2 = c */
|
|
||||||
movzbl r2,r2
|
|
||||||
beql Lzero /* special case for c == '\0' */
|
|
||||||
|
|
||||||
clrl r5 /* r5 = pointer to last match */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Fancy scanc version. Alas, it is not reentrant.
|
|
||||||
*/
|
|
||||||
movab tbl,r3 /* r3 = address of table */
|
|
||||||
bbss $0,(r3),Lreent /* ensure not reentering */
|
|
||||||
movab (r3)[r2],r4
|
|
||||||
incb (r4) /* mark both '\0' and c */
|
|
||||||
0:
|
|
||||||
scanc $65535,(r1),(r3),$1 /* look for c or '\0' */
|
|
||||||
beql 0b /* keep looking */
|
|
||||||
tstb (r1)
|
|
||||||
beql 1f /* done if '\0' */
|
|
||||||
movab (r1)+,r5 /* save most recently found, and skip over it */
|
|
||||||
jbr 0b /* keep looking */
|
|
||||||
1:
|
|
||||||
movl r5,r0 /* return last found (if any) */
|
|
||||||
clrb (r4) /* clean up table */
|
|
||||||
clrb (r3)
|
|
||||||
ret
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Special case for \0.
|
|
||||||
*/
|
|
||||||
Lzero:
|
|
||||||
locc $0,r4,(r1) /* just find end of string */
|
|
||||||
beql Lzero /* still looking */
|
|
||||||
movl r1,r0 /* found it */
|
|
||||||
ret
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Slower reentrant version is two two-step searches. The first
|
|
||||||
* phase runs until we know where the string ends; it locates any
|
|
||||||
* occurrences of c within a 65535-byte block. Once we have found
|
|
||||||
* the end of the string, we find any further occurrences before
|
|
||||||
* that location.
|
|
||||||
*/
|
|
||||||
Lreent:
|
|
||||||
0: /* first phase */
|
|
||||||
movl r1,r3
|
|
||||||
locc $0,r4,(r3) /* look for '\0' */
|
|
||||||
bneq 1f
|
|
||||||
locc r2,r4,(r3) /* continue phase 1 search for c */
|
|
||||||
beql 0b
|
|
||||||
movab (r1)+,r5 /* found c: save and increment pointer */
|
|
||||||
brb 0b /* and continue */
|
|
||||||
|
|
||||||
1: /* second phase */
|
|
||||||
subl3 r3,r1,r0 /* length of short block */
|
|
||||||
movl r3,r1
|
|
||||||
2:
|
|
||||||
locc r2,r0,(r1) /* look for c */
|
|
||||||
beql 3f /* skip if not found */
|
|
||||||
movab (r1)+,r5 /* save pointer as before */
|
|
||||||
sobgtr r0,2b /* adjust count and loop */
|
|
||||||
3:
|
|
||||||
movl r5,r0 /* return stashed pointer */
|
|
||||||
ret
|
|
||||||
|
|
||||||
weak_alias (strrchr, rindex)
|
|
@@ -1,81 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strsep.s 5.1 (Berkeley) 5/15/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get next word from string *stringp, where words are
|
|
||||||
* strings separated by characters from delim.
|
|
||||||
*
|
|
||||||
* Writes NULs into the string at *stringp to end tokens.
|
|
||||||
* On return, *stringp points past the last NUL written (if there might
|
|
||||||
* be further tokens), or is NULL (if there are definitely no more tokens).
|
|
||||||
*
|
|
||||||
* If *stringp is NULL, strtoken returns NULL.
|
|
||||||
*
|
|
||||||
* char *
|
|
||||||
* strtoken(stringp, delim)
|
|
||||||
* register char **stringp;
|
|
||||||
* register char const *delim;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strsep, 0)
|
|
||||||
tstl *4(ap) /* if (*stringp == NULL) */
|
|
||||||
bneq 0f
|
|
||||||
clrl r0 # return (NULL);
|
|
||||||
ret
|
|
||||||
|
|
||||||
0:
|
|
||||||
subl2 $32,sp /* make room for 256 bit table */
|
|
||||||
movc5 $0,(sp),$0,$32,(sp)
|
|
||||||
movq 4(ap),r1 /* r1 = stringp, r2 = delim */
|
|
||||||
|
|
||||||
/* turn on bit for each character in s2, including '\0' */
|
|
||||||
1:
|
|
||||||
movzbl (r2)+,r0
|
|
||||||
bbss r0,(sp),1b
|
|
||||||
bneq 1b
|
|
||||||
|
|
||||||
movl (r1),r3 /* r3 = s = *stringp */
|
|
||||||
movl r3,r0 /* save return value */
|
|
||||||
|
|
||||||
/* scan for delimiters */
|
|
||||||
2:
|
|
||||||
movzbl (r3)+,r2 /* c = *s++ */
|
|
||||||
bbc r2,(sp),2b /* loop until c is in table */
|
|
||||||
beql 3f
|
|
||||||
clrb -1(r3) /* if c!='\0', s[-1] = 0 */
|
|
||||||
movl r3,(r1) /* and *stringp = s */
|
|
||||||
ret
|
|
||||||
3:
|
|
||||||
clrl (r1) /* else *stringp = NULL */
|
|
||||||
ret
|
|
@@ -1,66 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strspn.s 5.1 (Berkeley) 5/15/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Span the string s2 (skip characters that are in s2).
|
|
||||||
* Return the number of characters in s1 that were skipped.
|
|
||||||
*
|
|
||||||
* size_t
|
|
||||||
* strspn(s1, s2)
|
|
||||||
* const char *s1, *s2;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strspn, 0)
|
|
||||||
subl2 $32,sp /* make 256 bit table */
|
|
||||||
movc5 $0,(sp),$0,$32,(sp)
|
|
||||||
movq 4(ap),r1 /* r1 = s1, r2 = s2 */
|
|
||||||
|
|
||||||
/* turn on bit for each character in s2, including '\0' */
|
|
||||||
1:
|
|
||||||
movzbl (r2)+,r0
|
|
||||||
bbss r0,(sp),1b
|
|
||||||
bneq 1b
|
|
||||||
|
|
||||||
/* now clear bit for '\0' */
|
|
||||||
/* (this is easier than avoiding setting it in the first place) */
|
|
||||||
bicb2 $1,(sp) /* stop at '\0' */
|
|
||||||
movl r1,r0 /* r0 = s (current pos in s1) */
|
|
||||||
|
|
||||||
/* look for a character that is not in s2 */
|
|
||||||
2:
|
|
||||||
movzbl (r0)+,r2 /* c = *s++ */
|
|
||||||
bbs r2,(sp),2b /* loop while c is in table */
|
|
||||||
decl r0 /* s-- */
|
|
||||||
subl2 r1,r0 /* r0 = s - s1 = count */
|
|
||||||
ret
|
|
@@ -1,109 +0,0 @@
|
|||||||
/*-
|
|
||||||
* Copyright (c) 1990 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
.asciz "@(#)strstr.s 5.2 (Berkeley) 8/21/90"
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Find the first occurrence of s2 as a substring in s1.
|
|
||||||
* If s2 is empty, return s1.
|
|
||||||
*
|
|
||||||
* char *strstr(s1, s2)
|
|
||||||
* const char *s1, *s2;
|
|
||||||
*/
|
|
||||||
#include "DEFS.h"
|
|
||||||
|
|
||||||
ENTRY(strstr, 0)
|
|
||||||
movq 4(ap),r3 /* r3 = s1, r4 = s2 */
|
|
||||||
movzwl $65535,r2 /* r2 = locc/matchc limit */
|
|
||||||
locc $0,r2,(r4) /* find '\0' in s2 */
|
|
||||||
beql 4f
|
|
||||||
subl3 r4,r1,r5 /* r5 = strlen(s2) */
|
|
||||||
beql 1f /* if r5 == 0, return s1 */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* s2 is short enough to apply matchc.
|
|
||||||
* If s1 is long, we have to do it in stages.
|
|
||||||
*/
|
|
||||||
0: locc $0,r2,(r3) /* find '\0' in s1 */
|
|
||||||
beql 3f
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Both strings are `short'; we can use matchc directly.
|
|
||||||
*/
|
|
||||||
subl3 r3,r1,r1 /* r1 = strlen(s1) */
|
|
||||||
matchc r5,(r4),r1,(r3) /* find substring */
|
|
||||||
bneq 2f
|
|
||||||
|
|
||||||
/*
|
|
||||||
* r3 points r5 bytes past match. Return the match.
|
|
||||||
*/
|
|
||||||
1: subl3 r5,r3,r0 /* return (byte_past_match - strlen(s2)) */
|
|
||||||
ret
|
|
||||||
|
|
||||||
/*
|
|
||||||
* There is no matching substring.
|
|
||||||
*/
|
|
||||||
2: clrl r0 /* return NULL */
|
|
||||||
ret
|
|
||||||
|
|
||||||
/*
|
|
||||||
* s1 is too long (> 65535 bytes) to apply matchc directly,
|
|
||||||
* but s2 is short enough. Apply s2 to s1, then (if not
|
|
||||||
* found yet) advancing s1 by (65536-strlen(s2)) bytes and
|
|
||||||
* loop.
|
|
||||||
*/
|
|
||||||
3: matchc r5,(r4),r2,(r3) /* search */
|
|
||||||
beql 1b /* if found, go return it */
|
|
||||||
decw r2 /* from 0 to 65535 */
|
|
||||||
incl r3 /* already advanced 65535, now 65536 */
|
|
||||||
subl2 r5,r3 /* ... minus strlen(s2) */
|
|
||||||
brb 0b
|
|
||||||
|
|
||||||
/*
|
|
||||||
* s2 is too long (> 65535 bytes) to bother with matchc.
|
|
||||||
*/
|
|
||||||
4: locc $0,r2,(r1) /* continue working on strlen(s2) */
|
|
||||||
beql 4b
|
|
||||||
subl3 r1,r4,r5 /* r5 = strlen(s2) */
|
|
||||||
movb (r4)+,r2 /* r2 = *s2++ */
|
|
||||||
decl r5 /* fix up length */
|
|
||||||
5: movb (r3)+,r0 /* r0 = *s1++ */
|
|
||||||
beql 2b /* if '\0', return NULL */
|
|
||||||
cmpb r0,r2
|
|
||||||
bneq 5b /* loop until first char found */
|
|
||||||
pushr R5|R4|R3|R2 /* save c, s1, s2, n */
|
|
||||||
pushr R5|R4|R3 /* strncmp(s1, s2, n) */
|
|
||||||
calls $3,_strncmp
|
|
||||||
popr R2|R3|R4|R5 /* restore */
|
|
||||||
tstl r0
|
|
||||||
bneq 5b /* loop until strncmp says rest same too */
|
|
||||||
subl3 $1,r3,r0 /* return previous s1 */
|
|
||||||
ret
|
|
@@ -1,48 +0,0 @@
|
|||||||
# VAX __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and store
|
|
||||||
# difference in a third limb vector.
|
|
||||||
|
|
||||||
# Copyright (C) 1992, 1994 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This file is part of the GNU MP Library.
|
|
||||||
|
|
||||||
# The GNU MP Library is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2.1 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
|
|
||||||
# The GNU MP Library is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
||||||
# License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
|
||||||
# along with the GNU MP Library; see the file COPYING.LIB. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
||||||
# MA 02111-1307, USA.
|
|
||||||
|
|
||||||
|
|
||||||
# INPUT PARAMETERS
|
|
||||||
# res_ptr (sp + 4)
|
|
||||||
# s1_ptr (sp + 8)
|
|
||||||
# s2_ptr (sp + 12)
|
|
||||||
# size (sp + 16)
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 1
|
|
||||||
.globl ___mpn_sub_n
|
|
||||||
___mpn_sub_n:
|
|
||||||
.word 0x0
|
|
||||||
movl 16(ap),r0
|
|
||||||
movl 12(ap),r1
|
|
||||||
movl 8(ap),r2
|
|
||||||
movl 4(ap),r3
|
|
||||||
subl2 r4,r4
|
|
||||||
|
|
||||||
Loop:
|
|
||||||
movl (r2)+,r4
|
|
||||||
sbwc (r1)+,r4
|
|
||||||
movl r4,(r3)+
|
|
||||||
jsobgtr r0,Loop
|
|
||||||
|
|
||||||
adwc r0,r0
|
|
||||||
ret
|
|
@@ -1,126 +0,0 @@
|
|||||||
# VAX __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
|
|
||||||
# the result from a second limb vector.
|
|
||||||
|
|
||||||
# Copyright (C) 1992, 1994 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This file is part of the GNU MP Library.
|
|
||||||
|
|
||||||
# The GNU MP Library is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2.1 of the License, or (at your
|
|
||||||
# option) any later version.
|
|
||||||
|
|
||||||
# The GNU MP Library is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
|
||||||
# License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
|
||||||
# along with the GNU MP Library; see the file COPYING.LIB. If not, write to
|
|
||||||
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
||||||
# MA 02111-1307, USA.
|
|
||||||
|
|
||||||
|
|
||||||
# INPUT PARAMETERS
|
|
||||||
# res_ptr (sp + 4)
|
|
||||||
# s1_ptr (sp + 8)
|
|
||||||
# size (sp + 12)
|
|
||||||
# s2_limb (sp + 16)
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 1
|
|
||||||
.globl ___mpn_submul_1
|
|
||||||
___mpn_submul_1:
|
|
||||||
.word 0xfc0
|
|
||||||
movl 12(ap),r4
|
|
||||||
movl 8(ap),r8
|
|
||||||
movl 4(ap),r9
|
|
||||||
movl 16(ap),r6
|
|
||||||
jlss s2_big
|
|
||||||
|
|
||||||
clrl r3
|
|
||||||
incl r4
|
|
||||||
ashl $-1,r4,r7
|
|
||||||
jlbc r4,L1
|
|
||||||
clrl r11
|
|
||||||
|
|
||||||
# Loop for S2_LIMB < 0x80000000
|
|
||||||
Loop1: movl (r8)+,r1
|
|
||||||
jlss L1n0
|
|
||||||
emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc $0,r3
|
|
||||||
subl2 r2,(r9)+
|
|
||||||
adwc $0,r3
|
|
||||||
L1: movl (r8)+,r1
|
|
||||||
jlss L1n1
|
|
||||||
L1p1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc $0,r11
|
|
||||||
subl2 r10,(r9)+
|
|
||||||
adwc $0,r11
|
|
||||||
|
|
||||||
jsobgtr r7,Loop1
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
L1n0: emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r6,r3
|
|
||||||
subl2 r2,(r9)+
|
|
||||||
adwc $0,r3
|
|
||||||
movl (r8)+,r1
|
|
||||||
jgeq L1p1
|
|
||||||
L1n1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r6,r11
|
|
||||||
subl2 r10,(r9)+
|
|
||||||
adwc $0,r11
|
|
||||||
|
|
||||||
jsobgtr r7,Loop1
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
s2_big: clrl r3
|
|
||||||
incl r4
|
|
||||||
ashl $-1,r4,r7
|
|
||||||
jlbc r4,L2
|
|
||||||
clrl r11
|
|
||||||
|
|
||||||
# Loop for S2_LIMB >= 0x80000000
|
|
||||||
Loop2: movl (r8)+,r1
|
|
||||||
jlss L2n0
|
|
||||||
emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r1,r3
|
|
||||||
subl2 r2,(r9)+
|
|
||||||
adwc $0,r3
|
|
||||||
L2: movl (r8)+,r1
|
|
||||||
jlss L2n1
|
|
||||||
L2p1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r1,r11
|
|
||||||
subl2 r10,(r9)+
|
|
||||||
adwc $0,r11
|
|
||||||
|
|
||||||
jsobgtr r7,Loop2
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
||||||
|
|
||||||
L2n0: emul r1,r6,$0,r2
|
|
||||||
addl2 r11,r2
|
|
||||||
adwc r6,r3
|
|
||||||
subl2 r2,(r9)+
|
|
||||||
adwc r1,r3
|
|
||||||
movl (r8)+,r1
|
|
||||||
jgeq L2p1
|
|
||||||
L2n1: emul r1,r6,$0,r10
|
|
||||||
addl2 r3,r10
|
|
||||||
adwc r6,r11
|
|
||||||
subl2 r10,(r9)+
|
|
||||||
adwc r1,r11
|
|
||||||
|
|
||||||
jsobgtr r7,Loop2
|
|
||||||
movl r11,r0
|
|
||||||
ret
|
|
Reference in New Issue
Block a user