mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
Update.
1997-06-29 23:43 Ulrich Drepper <drepper@cygnus.com> * config.make.in: Define need-nopic-initfini. * configure.in: Write out nopic_initfini. * csu/Makefile: Generate no-PIC crt code if need-nopic-initfini is defined. * sysdeps/i386/fpu/fraiseexcpt.c: Correct FE_INEXACT case. * sysdeps/sparc/rem.S: Get trap definition properly. * sysdeps/sparc/sdiv.S: Likewise. * sysdeps/sparc/udiv.S: Likewise. * sysdeps/sparc/urem.S: Likewise. * sysdeps/sparc/setjmp.S: Include <sys/trap.h>. * sysdeps/sparc/sys/trap.h: New file. * sysdeps/unix/sysv/linux/sparc/sys/trap.h: New file. 1997-06-25 10:26 Thorsten Kukuk <kukuk@uni-paderborn.de> * sysdeps/generic/rpc/auth.h: Add xdr_opaque_auth declaration. 1997-06-29 10:34 Fila Kolodny <fila@ibi.com> * sysdeps/mach/hurd/select.c (__select): Change MACH_MSG_SIZE_INTEGER_T to MACH_MSG_TYPE_INTEGER_T. 1997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu> Initial sparc64-linux support: * configure.in: Recognize sparc64 as being different from sparc. * io/ftwtest-sh: Only invoke ld.so if it exists. * math/Makefile (LDLIBS-*): Change from libm to math/libm to get static tests to link. Honour $(omit-long-double-fcts) == yes. * math/libm-test.c (test_single_exception): The argument to fetestexcept is `int' not `fexcept_t'. * shlib-versions: Recognize sparc64. * signal/signal.h: Add typedef for stack_t. * stdio-common/_itoa.c: Defaulting UMUL_TIME==UDIV_TIME is broken. Attempt to fix up most of this by cleaning up assumptions below, but give up and change the defaults. * setjmp/longjmp.c: Moved to ... * sysdeps/generic/longjmp.c: ... here. * setjmp/sigjmp.c: Moved to ... * sysdeps/generic/sigjmp.c: ... here. * sysdeps/sparc/bsd-_setjmp.S [PIC]: There wasn't even valid asm here. Ought to fix up gas to catch these silly things properly. * sysdeps/sparc/bsd-setjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc/errno.c: Remove. * sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h: Remove. * sysdeps/unix/sysv/linux/sparc/kernel_stat.h: Tell xstat about the unused fields. * sysdeps/sparc/sparc64/add_n.s: Moved to ... * sysdeps/sparc64/add_n.S: ... here. Fix up %g4 and stack usage. * sysdeps/sparc/sparc64/addmul_1.s: Likewise. * sysdeps/sparc/sparc64/gmp-mparam.h: Likewise. * sysdeps/sparc/sparc64/lshift.s: Likewise. * sysdeps/sparc/sparc64/mul_1.s: Likewise. * sysdeps/sparc/sparc64/rshift.s: Likewise. * sysdeps/sparc/sparc64/sub_n.s: Likewise. * sysdeps/sparc/sparc64/submul_1.s: Likewise. * sysdeps/sparc64/Implies: New file. * sysdeps/sparc64/Makefile: Likewise. * sysdeps/sparc64/bits/endian.h: Likewise. * sysdeps/sparc64/bsd-_setjmp.S: Likewise. * sysdeps/sparc64/bsd-setjmp.S: Likewise. * sysdeps/sparc64/dl-machine.h: Likewise. * sysdeps/sparc64/elf/Makefile: Likewise. * sysdeps/sparc64/elf/crtbegin.S: Likewise. * sysdeps/sparc64/elf/crtbeginS.S: Likewise. * sysdeps/sparc64/elf/crtend.S: Likewise. * sysdeps/sparc64/elf/crtendS.S: Likewise. * sysdeps/sparc64/elf/start.S: Likewise. * sysdeps/sparc64/fpu_control.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/Makefile: Likewise. * sysdeps/unix/sysv/linux/sparc64/__longjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/bits/setjmp.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/brk.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/clone.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/fork.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/getcontext.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/init-first.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/kernel_stat.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/longjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/pipe.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/profil-counter.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/setcontext.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/sigjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/sparc64/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/ucontext.h: Likewise. 1997-06-28 16:28 H.J. Lu <hjl@gnu.ai.mit.edu> * configure.in: Add -nostartfiles -nostdlib when check for --version-script. 1997-06-28 12:03 H.J. Lu <hjl@gnu.ai.mit.edu> * sysdeps/powerpc/bits/endian.h: New file. 1997-06-28 20:52 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/syscalls.list: Add getresgid and setresgid.
This commit is contained in:
@@ -20,24 +20,21 @@
|
||||
#include <sysdep.h>
|
||||
|
||||
ENTRY (_setjmp)
|
||||
#ifdef PIC
|
||||
1:
|
||||
jmpl 2f,%o1
|
||||
nop
|
||||
2:
|
||||
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)),%l7
|
||||
or %l7,%lo(_GLOBAL_OFFSET_TABLE_-(1b-.)),%l7
|
||||
add %l7,%o1,%l7
|
||||
sethi %hi(C_SYMBOL_NAME (__sigsetjmp)),%g1
|
||||
or %g1,%lo(C_SYMBOL_NAME (__sigsetjmp)),%g1
|
||||
ld [%l7+%g1],%g1
|
||||
ld [%g1],%g1
|
||||
jmpl %g1,%g0
|
||||
mov %g0,%o1 /* Pass second argument of zero */
|
||||
#else
|
||||
|
||||
sethi %hi(C_SYMBOL_NAME (__sigsetjmp)), %g1
|
||||
or %lo(C_SYMBOL_NAME (__sigsetjmp)), %g1, %g1
|
||||
jmp %g1
|
||||
mov %g0, %o1 /* Pass second argument of zero. */
|
||||
#ifdef PIC
|
||||
save %sp, -64, %sp
|
||||
1: call 2f
|
||||
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %g1
|
||||
2: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %g1
|
||||
add %g1, %o7, %g1
|
||||
sethi %hi(C_SYMBOL_NAME(__sigsetjmp)), %g2
|
||||
restore
|
||||
or %g2, %lo(C_SYMBOL_NAME(__sigsetjmp)), %g2
|
||||
ld [%g1+%g2], %g1
|
||||
#else
|
||||
sethi %hi(C_SYMBOL_NAME(__sigsetjmp)), %g1
|
||||
or %g1, %lo(C_SYMBOL_NAME(__sigsetjmp)), %g1
|
||||
#endif
|
||||
|
||||
jmp %g1
|
||||
mov %g0, %o1 /* Pass second argument of zero. */
|
||||
|
||||
@@ -20,23 +20,21 @@
|
||||
#include <sysdep.h>
|
||||
|
||||
ENTRY (setjmp)
|
||||
|
||||
#ifdef PIC
|
||||
1:
|
||||
jmpl 2f,%o1
|
||||
nop
|
||||
2:
|
||||
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)),%l7
|
||||
or %l7,%lo(_GLOBAL_OFFSET_TABLE_-(1b-.)),%l7
|
||||
add %l7,%o1,%l7
|
||||
sethi %hi(C_SYMBOL_NAME (__sigsetjmp)),%g1
|
||||
or %g1,%lo(C_SYMBOL_NAME (__sigsetjmp)),%g1
|
||||
ld [%l7+%g1],%g1
|
||||
ld [%g1],%g1
|
||||
jmpl %g1,%g0
|
||||
mov 1,%o1
|
||||
save %sp, -64, %sp
|
||||
1: call 2f
|
||||
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %g1
|
||||
2: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %g1
|
||||
add %g1, %o7, %g1
|
||||
sethi %hi(C_SYMBOL_NAME(__sigsetjmp)), %g2
|
||||
restore
|
||||
or %g2, %lo(C_SYMBOL_NAME(__sigsetjmp)), %g2
|
||||
ld [%g1+%g2], %g1
|
||||
#else
|
||||
sethi %hi(C_SYMBOL_NAME (__sigsetjmp)), %g1
|
||||
or %lo(C_SYMBOL_NAME (__sigsetjmp)), %g1, %g1
|
||||
jmp %g1
|
||||
mov 1, %o1 /* Pass second argument of one. */
|
||||
sethi %hi(C_SYMBOL_NAME(__sigsetjmp)), %g1
|
||||
or %g1, %lo(C_SYMBOL_NAME(__sigsetjmp)), %g1
|
||||
#endif
|
||||
|
||||
jmp %g1
|
||||
mov 1, %o1 /* Pass second argument of one. */
|
||||
|
||||
@@ -38,15 +38,7 @@
|
||||
|
||||
|
||||
#include "DEFS.h"
|
||||
#ifdef __linux__
|
||||
#include <asm/traps.h>
|
||||
#else
|
||||
#ifdef __svr4__
|
||||
#include <sys/trap.h>
|
||||
#else
|
||||
#include <machine/trap.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
FUNC(.rem)
|
||||
! compute sign of result; if neither is negative, no problem
|
||||
@@ -189,14 +181,14 @@ Ldivloop:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (7*2+1), %o2
|
||||
|
||||
|
||||
L.4.23:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (7*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.19:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -207,15 +199,15 @@ L.3.19:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (5*2+1), %o2
|
||||
|
||||
|
||||
L.4.21:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (5*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.2.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -231,14 +223,14 @@ L.2.17:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (3*2+1), %o2
|
||||
|
||||
|
||||
L.4.19:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (3*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -249,16 +241,16 @@ L.3.17:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (1*2+1), %o2
|
||||
|
||||
|
||||
L.4.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (1*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.1.16:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -279,14 +271,14 @@ L.1.16:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-1*2+1), %o2
|
||||
|
||||
|
||||
L.4.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-1*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -297,15 +289,15 @@ L.3.15:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-3*2+1), %o2
|
||||
|
||||
|
||||
L.4.13:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-3*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.2.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -321,14 +313,14 @@ L.2.15:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-5*2+1), %o2
|
||||
|
||||
|
||||
L.4.11:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-5*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.13:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -339,16 +331,16 @@ L.3.13:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-7*2+1), %o2
|
||||
|
||||
|
||||
L.4.9:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-7*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9:
|
||||
Lend_regular_divide:
|
||||
subcc %o4, 1, %o4
|
||||
|
||||
@@ -38,15 +38,7 @@
|
||||
|
||||
|
||||
#include "DEFS.h"
|
||||
#ifdef __linux__
|
||||
#include <asm/traps.h>
|
||||
#else
|
||||
#ifdef __svr4__
|
||||
#include <sys/trap.h>
|
||||
#else
|
||||
#include <machine/trap.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
FUNC(.div)
|
||||
! compute sign of result; if neither is negative, no problem
|
||||
@@ -189,14 +181,14 @@ Ldivloop:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (7*2+1), %o2
|
||||
|
||||
|
||||
L.4.23:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (7*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.19:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -207,15 +199,15 @@ L.3.19:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (5*2+1), %o2
|
||||
|
||||
|
||||
L.4.21:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (5*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.2.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -231,14 +223,14 @@ L.2.17:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (3*2+1), %o2
|
||||
|
||||
|
||||
L.4.19:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (3*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -249,16 +241,16 @@ L.3.17:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (1*2+1), %o2
|
||||
|
||||
|
||||
L.4.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (1*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.1.16:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -279,14 +271,14 @@ L.1.16:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-1*2+1), %o2
|
||||
|
||||
|
||||
L.4.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-1*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -297,15 +289,15 @@ L.3.15:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-3*2+1), %o2
|
||||
|
||||
|
||||
L.4.13:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-3*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.2.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -321,14 +313,14 @@ L.2.15:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-5*2+1), %o2
|
||||
|
||||
|
||||
L.4.11:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-5*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.13:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -339,16 +331,16 @@ L.3.13:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-7*2+1), %o2
|
||||
|
||||
|
||||
L.4.9:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-7*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9:
|
||||
Lend_regular_divide:
|
||||
subcc %o4, 1, %o4
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/trap.h>
|
||||
|
||||
#define _ASM 1
|
||||
#include <bits/setjmp.h>
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
! SPARC v9 __mpn_add_n -- Add two limb vectors of the same length > 0 and store
|
||||
! sum in a third limb vector.
|
||||
|
||||
! Copyright (C) 1995, 1996 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 Library General Public License as published by
|
||||
! the Free Software Foundation; either version 2 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 Library General Public
|
||||
! License for more details.
|
||||
|
||||
! You should have received a copy of the GNU Library 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 %o0
|
||||
! s1_ptr %o1
|
||||
! s2_ptr %o2
|
||||
! size %o3
|
||||
|
||||
.section ".text"
|
||||
.align 4
|
||||
.global __mpn_add_n
|
||||
.type __mpn_add_n,#function
|
||||
.proc 04
|
||||
__mpn_add_n:
|
||||
sub %g0,%o3,%g3
|
||||
sllx %o3,3,%g1
|
||||
add %o1,%g1,%o1 ! make s1_ptr point at end
|
||||
add %o2,%g1,%o2 ! make s2_ptr point at end
|
||||
add %o0,%g1,%o0 ! make res_ptr point at end
|
||||
mov 0,%o4 ! clear carry variable
|
||||
sllx %g3,3,%o5 ! compute initial address index
|
||||
|
||||
.Loop: ldx [%o2+%o5],%g1 ! load s2 limb
|
||||
add %g3,1,%g3 ! increment loop count
|
||||
ldx [%o1+%o5],%g2 ! load s1 limb
|
||||
addcc %g1,%o4,%g1 ! add s2 limb and carry variable
|
||||
movcc %xcc,0,%o4 ! if carry-out, o4 was 1; clear it
|
||||
addcc %g1,%g2,%g1 ! add s1 limb to sum
|
||||
stx %g1,[%o0+%o5] ! store result
|
||||
add %o5,8,%o5 ! increment address index
|
||||
brnz,pt %g3,.Loop
|
||||
movcs %xcc,1,%o4 ! if s1 add gave carry, record it
|
||||
|
||||
retl
|
||||
mov %o4,%o0
|
||||
.LLfe1:
|
||||
.size __mpn_add_n,.LLfe1-__mpn_add_n
|
||||
@@ -1,89 +0,0 @@
|
||||
! SPARC v9 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
|
||||
! add the product to a second limb vector.
|
||||
|
||||
! Copyright (C) 1996 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 Library General Public License as published by
|
||||
! the Free Software Foundation; either version 2 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 Library General Public
|
||||
! License for more details.
|
||||
|
||||
! You should have received a copy of the GNU Library 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 o0
|
||||
! s1_ptr o1
|
||||
! size o2
|
||||
! s2_limb o3
|
||||
|
||||
.section ".text"
|
||||
.align 4
|
||||
.global __mpn_addmul_1
|
||||
.type __mpn_addmul_1,#function
|
||||
.proc 016
|
||||
__mpn_addmul_1:
|
||||
!#PROLOGUE# 0
|
||||
save %sp,-160,%sp
|
||||
!#PROLOGUE# 1
|
||||
sub %g0,%i2,%o7
|
||||
sllx %o7,3,%g5
|
||||
sub %i1,%g5,%o3
|
||||
sub %i0,%g5,%o4
|
||||
mov 0,%o0 ! zero cy_limb
|
||||
|
||||
srl %i3,0,%o1 ! extract low 32 bits of s2_limb
|
||||
srlx %i3,32,%i3 ! extract high 32 bits of s2_limb
|
||||
mov 1,%o2
|
||||
sllx %o2,32,%o2 ! o2 = 0x100000000
|
||||
|
||||
! hi !
|
||||
! mid-1 !
|
||||
! mid-2 !
|
||||
! lo !
|
||||
.Loop:
|
||||
sllx %o7,3,%g1
|
||||
ldx [%o3+%g1],%g5
|
||||
srl %g5,0,%i0 ! zero hi bits
|
||||
srlx %g5,32,%g5
|
||||
mulx %o1,%i0,%i4 ! lo product
|
||||
mulx %i3,%i0,%i1 ! mid-1 product
|
||||
mulx %o1,%g5,%l2 ! mid-2 product
|
||||
mulx %i3,%g5,%i5 ! hi product
|
||||
srlx %i4,32,%i0 ! extract high 32 bits of lo product...
|
||||
add %i1,%i0,%i1 ! ...and add it to the mid-1 product
|
||||
addcc %i1,%l2,%i1 ! add mid products
|
||||
mov 0,%l0 ! we need the carry from that add...
|
||||
movcs %xcc,%o2,%l0 ! ...compute it and...
|
||||
add %i5,%l0,%i5 ! ...add to bit 32 of the hi product
|
||||
sllx %i1,32,%i0 ! align low bits of mid product
|
||||
srl %i4,0,%g5 ! zero high 32 bits of lo product
|
||||
add %i0,%g5,%i0 ! combine into low 64 bits of result
|
||||
srlx %i1,32,%i1 ! extract high bits of mid product...
|
||||
add %i5,%i1,%i1 ! ...and add them to the high result
|
||||
addcc %i0,%o0,%i0 ! add cy_limb to low 64 bits of result
|
||||
mov 0,%g5
|
||||
movcs %xcc,1,%g5
|
||||
add %o7,1,%o7
|
||||
ldx [%o4+%g1],%l1
|
||||
addcc %l1,%i0,%i0
|
||||
movcs %xcc,1,%g5
|
||||
stx %i0,[%o4+%g1]
|
||||
brnz %o7,.Loop
|
||||
add %i1,%g5,%o0 ! compute new cy_limb
|
||||
|
||||
mov %o0,%i0
|
||||
ret
|
||||
restore
|
||||
.LLfe1:
|
||||
.size __mpn_addmul_1,.LLfe1-__mpn_addmul_1
|
||||
@@ -1,27 +0,0 @@
|
||||
/* gmp-mparam.h -- Compiler/machine parameter header file.
|
||||
|
||||
Copyright (C) 1991, 1993, 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 Library General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 Library General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library 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 64
|
||||
#define BYTES_PER_MP_LIMB 8
|
||||
#define BITS_PER_LONGINT 64
|
||||
#define BITS_PER_INT 32
|
||||
#define BITS_PER_SHORTINT 16
|
||||
#define BITS_PER_CHAR 8
|
||||
@@ -1,96 +0,0 @@
|
||||
! SPARC v9 __mpn_lshift --
|
||||
|
||||
! Copyright (C) 1996 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 Library General Public License as published by
|
||||
! the Free Software Foundation; either version 2 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 Library General Public
|
||||
! License for more details.
|
||||
|
||||
! You should have received a copy of the GNU Library 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 %o0
|
||||
! src_ptr %o1
|
||||
! size %o2
|
||||
! cnt %o3
|
||||
|
||||
.section ".text"
|
||||
.align 4
|
||||
.global __mpn_lshift
|
||||
.type __mpn_lshift,#function
|
||||
.proc 04
|
||||
__mpn_lshift:
|
||||
sllx %o2,3,%g1
|
||||
add %o1,%g1,%o1 ! make %o1 point at end of src
|
||||
ldx [%o1-8],%g2 ! load first limb
|
||||
sub %g0,%o3,%o5 ! negate shift count
|
||||
add %o0,%g1,%o0 ! make %o0 point at end of res
|
||||
add %o2,-1,%o2
|
||||
and %o2,4-1,%g4 ! number of limbs in first loop
|
||||
srlx %g2,%o5,%g1 ! compute function result
|
||||
brz,pn %g4,.L0 ! if multiple of 4 limbs, skip first loop
|
||||
stx %g1,[%sp+80]
|
||||
|
||||
sub %o2,%g4,%o2 ! adjust count for main loop
|
||||
|
||||
.Loop0: ldx [%o1-16],%g3
|
||||
add %o0,-8,%o0
|
||||
add %o1,-8,%o1
|
||||
add %g4,-1,%g4
|
||||
sllx %g2,%o3,%o4
|
||||
srlx %g3,%o5,%g1
|
||||
mov %g3,%g2
|
||||
or %o4,%g1,%o4
|
||||
brnz,pt %g4,.Loop0
|
||||
stx %o4,[%o0+0]
|
||||
|
||||
.L0: brz,pn %o2,.Lend
|
||||
nop
|
||||
|
||||
.Loop: ldx [%o1-16],%g3
|
||||
add %o0,-32,%o0
|
||||
add %o2,-4,%o2
|
||||
sllx %g2,%o3,%o4
|
||||
srlx %g3,%o5,%g1
|
||||
|
||||
ldx [%o1-24],%g2
|
||||
sllx %g3,%o3,%g4
|
||||
or %o4,%g1,%o4
|
||||
stx %o4,[%o0+24]
|
||||
srlx %g2,%o5,%g1
|
||||
|
||||
ldx [%o1-32],%g3
|
||||
sllx %g2,%o3,%o4
|
||||
or %g4,%g1,%g4
|
||||
stx %g4,[%o0+16]
|
||||
srlx %g3,%o5,%g1
|
||||
|
||||
ldx [%o1-40],%g2
|
||||
sllx %g3,%o3,%g4
|
||||
or %o4,%g1,%o4
|
||||
stx %o4,[%o0+8]
|
||||
srlx %g2,%o5,%g1
|
||||
|
||||
add %o1,-32,%o1
|
||||
or %g4,%g1,%g4
|
||||
brnz,pt %o2,.Loop
|
||||
stx %g4,[%o0+0]
|
||||
|
||||
.Lend: sllx %g2,%o3,%g2
|
||||
stx %g2,[%o0-8]
|
||||
retl
|
||||
ldx [%sp+80],%o0
|
||||
.LLfe1:
|
||||
.size __mpn_lshift,.LLfe1-__mpn_lshift
|
||||
@@ -1,86 +0,0 @@
|
||||
! SPARC v9 __mpn_mul_1 -- Multiply a limb vector with a single limb and
|
||||
! store the product in a second limb vector.
|
||||
|
||||
! Copyright (C) 1995, 1996 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 Library General Public License as published by
|
||||
! the Free Software Foundation; either version 2 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 Library General Public
|
||||
! License for more details.
|
||||
|
||||
! You should have received a copy of the GNU Library 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 o0
|
||||
! s1_ptr o1
|
||||
! size o2
|
||||
! s2_limb o3
|
||||
|
||||
.section ".text"
|
||||
.align 4
|
||||
.global __mpn_mul_1
|
||||
.type __mpn_mul_1,#function
|
||||
.proc 016
|
||||
__mpn_mul_1:
|
||||
!#PROLOGUE# 0
|
||||
save %sp,-160,%sp
|
||||
!#PROLOGUE# 1
|
||||
sub %g0,%i2,%o7
|
||||
sllx %o7,3,%g5
|
||||
sub %i1,%g5,%o3
|
||||
sub %i0,%g5,%o4
|
||||
mov 0,%o0 ! zero cy_limb
|
||||
|
||||
srl %i3,0,%o1 ! extract low 32 bits of s2_limb
|
||||
srlx %i3,32,%i3 ! extract high 32 bits of s2_limb
|
||||
mov 1,%o2
|
||||
sllx %o2,32,%o2 ! o2 = 0x100000000
|
||||
|
||||
! hi !
|
||||
! mid-1 !
|
||||
! mid-2 !
|
||||
! lo !
|
||||
.Loop:
|
||||
sllx %o7,3,%g1
|
||||
ldx [%o3+%g1],%g5
|
||||
srl %g5,0,%i0 ! zero hi bits
|
||||
srlx %g5,32,%g5
|
||||
mulx %o1,%i0,%i4 ! lo product
|
||||
mulx %i3,%i0,%i1 ! mid-1 product
|
||||
mulx %o1,%g5,%l2 ! mid-2 product
|
||||
mulx %i3,%g5,%i5 ! hi product
|
||||
srlx %i4,32,%i0 ! extract high 32 bits of lo product...
|
||||
add %i1,%i0,%i1 ! ...and add it to the mid-1 product
|
||||
addcc %i1,%l2,%i1 ! add mid products
|
||||
mov 0,%l0 ! we need the carry from that add...
|
||||
movcs %xcc,%o2,%l0 ! ...compute it and...
|
||||
add %i5,%l0,%i5 ! ...add to bit 32 of the hi product
|
||||
sllx %i1,32,%i0 ! align low bits of mid product
|
||||
srl %i4,0,%g5 ! zero high 32 bits of lo product
|
||||
add %i0,%g5,%i0 ! combine into low 64 bits of result
|
||||
srlx %i1,32,%i1 ! extract high bits of mid product...
|
||||
add %i5,%i1,%i1 ! ...and add them to the high result
|
||||
addcc %i0,%o0,%i0 ! add cy_limb to low 64 bits of result
|
||||
mov 0,%g5
|
||||
movcs %xcc,1,%g5
|
||||
add %o7,1,%o7
|
||||
stx %i0,[%o4+%g1]
|
||||
brnz %o7,.Loop
|
||||
add %i1,%g5,%o0 ! compute new cy_limb
|
||||
|
||||
mov %o0,%i0
|
||||
ret
|
||||
restore
|
||||
.LLfe1:
|
||||
.size __mpn_mul_1,.LLfe1-__mpn_mul_1
|
||||
@@ -1,93 +0,0 @@
|
||||
! SPARC v9 __mpn_rshift --
|
||||
|
||||
! Copyright (C) 1996 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 Library General Public License as published by
|
||||
! the Free Software Foundation; either version 2 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 Library General Public
|
||||
! License for more details.
|
||||
|
||||
! You should have received a copy of the GNU Library 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 %o0
|
||||
! src_ptr %o1
|
||||
! size %o2
|
||||
! cnt %o3
|
||||
|
||||
.section ".text"
|
||||
.align 4
|
||||
.global __mpn_rshift
|
||||
.type __mpn_rshift,#function
|
||||
.proc 04
|
||||
__mpn_rshift:
|
||||
ldx [%o1],%g2 ! load first limb
|
||||
sub %g0,%o3,%o5 ! negate shift count
|
||||
add %o2,-1,%o2
|
||||
and %o2,4-1,%g4 ! number of limbs in first loop
|
||||
sllx %g2,%o5,%g1 ! compute function result
|
||||
brz,pn %g4,.L0 ! if multiple of 4 limbs, skip first loop
|
||||
stx %g1,[%sp+80]
|
||||
|
||||
sub %o2,%g4,%o2 ! adjust count for main loop
|
||||
|
||||
.Loop0: ldx [%o1+8],%g3
|
||||
add %o0,8,%o0
|
||||
add %o1,8,%o1
|
||||
add %g4,-1,%g4
|
||||
srlx %g2,%o3,%o4
|
||||
sllx %g3,%o5,%g1
|
||||
mov %g3,%g2
|
||||
or %o4,%g1,%o4
|
||||
brnz,pt %g4,.Loop0
|
||||
stx %o4,[%o0-8]
|
||||
|
||||
.L0: brz,pn %o2,.Lend
|
||||
nop
|
||||
|
||||
.Loop: ldx [%o1+8],%g3
|
||||
add %o0,32,%o0
|
||||
add %o2,-4,%o2
|
||||
srlx %g2,%o3,%o4
|
||||
sllx %g3,%o5,%g1
|
||||
|
||||
ldx [%o1+16],%g2
|
||||
srlx %g3,%o3,%g4
|
||||
or %o4,%g1,%o4
|
||||
stx %o4,[%o0-32]
|
||||
sllx %g2,%o5,%g1
|
||||
|
||||
ldx [%o1+24],%g3
|
||||
srlx %g2,%o3,%o4
|
||||
or %g4,%g1,%g4
|
||||
stx %g4,[%o0-24]
|
||||
sllx %g3,%o5,%g1
|
||||
|
||||
ldx [%o1+32],%g2
|
||||
srlx %g3,%o3,%g4
|
||||
or %o4,%g1,%o4
|
||||
stx %o4,[%o0-16]
|
||||
sllx %g2,%o5,%g1
|
||||
|
||||
add %o1,32,%o1
|
||||
or %g4,%g1,%g4
|
||||
brnz %o2,.Loop
|
||||
stx %g4,[%o0-8]
|
||||
|
||||
.Lend: srlx %g2,%o3,%g2
|
||||
stx %g2,[%o0-0]
|
||||
retl
|
||||
ldx [%sp+80],%o0
|
||||
.LLfe1:
|
||||
.size __mpn_rshift,.LLfe1-__mpn_rshift
|
||||
@@ -1,58 +0,0 @@
|
||||
! SPARC v9 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
|
||||
! store difference in a third limb vector.
|
||||
|
||||
! Copyright (C) 1995, 1996 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 Library General Public License as published by
|
||||
! the Free Software Foundation; either version 2 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 Library General Public
|
||||
! License for more details.
|
||||
|
||||
! You should have received a copy of the GNU Library 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 %o0
|
||||
! s1_ptr %o1
|
||||
! s2_ptr %o2
|
||||
! size %o3
|
||||
|
||||
.section ".text"
|
||||
.align 4
|
||||
.global __mpn_sub_n
|
||||
.type __mpn_sub_n,#function
|
||||
.proc 04
|
||||
__mpn_sub_n:
|
||||
sub %g0,%o3,%g3
|
||||
sllx %o3,3,%g1
|
||||
add %o1,%g1,%o1 ! make s1_ptr point at end
|
||||
add %o2,%g1,%o2 ! make s2_ptr point at end
|
||||
add %o0,%g1,%o0 ! make res_ptr point at end
|
||||
mov 0,%o4 ! clear carry variable
|
||||
sllx %g3,3,%o5 ! compute initial address index
|
||||
|
||||
.Loop: ldx [%o2+%o5],%g1 ! load s2 limb
|
||||
add %g3,1,%g3 ! increment loop count
|
||||
ldx [%o1+%o5],%g2 ! load s1 limb
|
||||
addcc %g1,%o4,%g1 ! add s2 limb and carry variable
|
||||
movcc %xcc,0,%o4 ! if carry-out, o4 was 1; clear it
|
||||
subcc %g1,%g2,%g1 ! subtract s1 limb from sum
|
||||
stx %g1,[%o0+%o5] ! store result
|
||||
add %o5,8,%o5 ! increment address index
|
||||
brnz,pt %g3,.Loop
|
||||
movcs %xcc,1,%o4 ! if s1 subtract gave carry, record it
|
||||
|
||||
retl
|
||||
mov %o4,%o0
|
||||
.LLfe1:
|
||||
.size __mpn_sub_n,.LLfe1-__mpn_sub_n
|
||||
@@ -1,89 +0,0 @@
|
||||
! SPARC v9 __mpn_submul_1 -- Multiply a limb vector with a single limb and
|
||||
! subtract the product from a second limb vector.
|
||||
|
||||
! Copyright (C) 1996 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 Library General Public License as published by
|
||||
! the Free Software Foundation; either version 2 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 Library General Public
|
||||
! License for more details.
|
||||
|
||||
! You should have received a copy of the GNU Library 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 o0
|
||||
! s1_ptr o1
|
||||
! size o2
|
||||
! s2_limb o3
|
||||
|
||||
.section ".text"
|
||||
.align 4
|
||||
.global __mpn_submul_1
|
||||
.type __mpn_submul_1,#function
|
||||
.proc 016
|
||||
__mpn_submul_1:
|
||||
!#PROLOGUE# 0
|
||||
save %sp,-160,%sp
|
||||
!#PROLOGUE# 1
|
||||
sub %g0,%i2,%o7
|
||||
sllx %o7,3,%g5
|
||||
sub %i1,%g5,%o3
|
||||
sub %i0,%g5,%o4
|
||||
mov 0,%o0 ! zero cy_limb
|
||||
|
||||
srl %i3,0,%o1 ! extract low 32 bits of s2_limb
|
||||
srlx %i3,32,%i3 ! extract high 32 bits of s2_limb
|
||||
mov 1,%o2
|
||||
sllx %o2,32,%o2 ! o2 = 0x100000000
|
||||
|
||||
! hi !
|
||||
! mid-1 !
|
||||
! mid-2 !
|
||||
! lo !
|
||||
.Loop:
|
||||
sllx %o7,3,%g1
|
||||
ldx [%o3+%g1],%g5
|
||||
srl %g5,0,%i0 ! zero hi bits
|
||||
srlx %g5,32,%g5
|
||||
mulx %o1,%i0,%i4 ! lo product
|
||||
mulx %i3,%i0,%i1 ! mid-1 product
|
||||
mulx %o1,%g5,%l2 ! mid-2 product
|
||||
mulx %i3,%g5,%i5 ! hi product
|
||||
srlx %i4,32,%i0 ! extract high 32 bits of lo product...
|
||||
add %i1,%i0,%i1 ! ...and add it to the mid-1 product
|
||||
addcc %i1,%l2,%i1 ! add mid products
|
||||
mov 0,%l0 ! we need the carry from that add...
|
||||
movcs %xcc,%o2,%l0 ! ...compute it and...
|
||||
add %i5,%l0,%i5 ! ...add to bit 32 of the hi product
|
||||
sllx %i1,32,%i0 ! align low bits of mid product
|
||||
srl %i4,0,%g5 ! zero high 32 bits of lo product
|
||||
add %i0,%g5,%i0 ! combine into low 64 bits of result
|
||||
srlx %i1,32,%i1 ! extract high bits of mid product...
|
||||
add %i5,%i1,%i1 ! ...and add them to the high result
|
||||
addcc %i0,%o0,%i0 ! add cy_limb to low 64 bits of result
|
||||
mov 0,%g5
|
||||
movcs %xcc,1,%g5
|
||||
add %o7,1,%o7
|
||||
ldx [%o4+%g1],%l1
|
||||
subcc %l1,%i0,%i0
|
||||
movcs %xcc,1,%g5
|
||||
stx %i0,[%o4+%g1]
|
||||
brnz %o7,.Loop
|
||||
add %i1,%g5,%o0 ! compute new cy_limb
|
||||
|
||||
mov %o0,%i0
|
||||
ret
|
||||
restore
|
||||
.LLfe1:
|
||||
.size __mpn_submul_1,.LLfe1-__mpn_submul_1
|
||||
7
sysdeps/sparc/sys/trap.h
Normal file
7
sysdeps/sparc/sys/trap.h
Normal file
@@ -0,0 +1,7 @@
|
||||
/* Include trap definitions. */
|
||||
#ifndef _SYS_TRAP_H
|
||||
#define _SYS_TRAP_H 1
|
||||
|
||||
#include <machine/trap.h>
|
||||
|
||||
#endif /* sys/trap.h */
|
||||
@@ -38,15 +38,7 @@
|
||||
|
||||
|
||||
#include "DEFS.h"
|
||||
#ifdef __linux__
|
||||
#include <asm/traps.h>
|
||||
#else
|
||||
#ifdef __svr4__
|
||||
#include <sys/trap.h>
|
||||
#else
|
||||
#include <machine/trap.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
FUNC(.udiv)
|
||||
|
||||
@@ -176,14 +168,14 @@ Ldivloop:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (7*2+1), %o2
|
||||
|
||||
|
||||
L.4.23:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (7*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.19:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -194,15 +186,15 @@ L.3.19:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (5*2+1), %o2
|
||||
|
||||
|
||||
L.4.21:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (5*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.2.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -218,14 +210,14 @@ L.2.17:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (3*2+1), %o2
|
||||
|
||||
|
||||
L.4.19:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (3*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -236,16 +228,16 @@ L.3.17:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (1*2+1), %o2
|
||||
|
||||
|
||||
L.4.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (1*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.1.16:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -266,14 +258,14 @@ L.1.16:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-1*2+1), %o2
|
||||
|
||||
|
||||
L.4.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-1*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -284,15 +276,15 @@ L.3.15:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-3*2+1), %o2
|
||||
|
||||
|
||||
L.4.13:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-3*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.2.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -308,14 +300,14 @@ L.2.15:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-5*2+1), %o2
|
||||
|
||||
|
||||
L.4.11:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-5*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.13:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -326,16 +318,16 @@ L.3.13:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-7*2+1), %o2
|
||||
|
||||
|
||||
L.4.9:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-7*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9:
|
||||
Lend_regular_divide:
|
||||
subcc %o4, 1, %o4
|
||||
|
||||
@@ -38,15 +38,7 @@
|
||||
|
||||
|
||||
#include "DEFS.h"
|
||||
#ifdef __linux__
|
||||
#include <asm/traps.h>
|
||||
#else
|
||||
#ifdef __svr4__
|
||||
#include <sys/trap.h>
|
||||
#else
|
||||
#include <machine/trap.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
FUNC(.urem)
|
||||
|
||||
@@ -176,14 +168,14 @@ Ldivloop:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (7*2+1), %o2
|
||||
|
||||
|
||||
L.4.23:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (7*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.19:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -194,15 +186,15 @@ L.3.19:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (5*2+1), %o2
|
||||
|
||||
|
||||
L.4.21:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (5*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.2.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -218,14 +210,14 @@ L.2.17:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (3*2+1), %o2
|
||||
|
||||
|
||||
L.4.19:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (3*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -236,16 +228,16 @@ L.3.17:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (1*2+1), %o2
|
||||
|
||||
|
||||
L.4.17:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (1*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.1.16:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -266,14 +258,14 @@ L.1.16:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-1*2+1), %o2
|
||||
|
||||
|
||||
L.4.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-1*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -284,15 +276,15 @@ L.3.15:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-3*2+1), %o2
|
||||
|
||||
|
||||
L.4.13:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-3*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
L.2.15:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -308,14 +300,14 @@ L.2.15:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-5*2+1), %o2
|
||||
|
||||
|
||||
L.4.11:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-5*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
L.3.13:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
@@ -326,16 +318,16 @@ L.3.13:
|
||||
subcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-7*2+1), %o2
|
||||
|
||||
|
||||
L.4.9:
|
||||
! remainder is negative
|
||||
addcc %o3,%o5,%o3
|
||||
b 9f
|
||||
add %o2, (-7*2-1), %o2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9:
|
||||
Lend_regular_divide:
|
||||
subcc %o4, 1, %o4
|
||||
|
||||
Reference in New Issue
Block a user