1 ! SPARC __udiv_qrnnd division support, used from longlong.h.
3 ! Copyright (C) 1993, 1994 Free Software Foundation, Inc.
5 ! This file is part of the GNU MP Library.
7 ! The GNU MP Library is free software; you can redistribute it and/or modify
8 ! it under the terms of the GNU Lesser General Public License as published by
9 ! the Free Software Foundation; either version 2.1 of the License, or (at your
10 ! option) any later version.
12 ! The GNU MP Library is distributed in the hope that it will be useful, but
13 ! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 ! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15 ! License for more details.
17 ! You should have received a copy of the GNU Lesser General Public License
18 ! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
19 ! the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
32 bneg LOC(largedivisor)
99 and %o2,1,%o5 ! %o5 = n0 & 1
103 or %g2,%o2,%o2 ! %o2 = lo(n1n0 >> 1)
104 srl %o1,1,%o1 ! %o1 = hi(n1n0 >> 1)
107 srl %o3,1,%g3 ! %g3 = floor(d / 2)
108 add %g3,%g2,%g3 ! %g3 = ceil(d / 2)
139 add %o1,%o1,%o1 ! << 1
173 add %o4,%o4,%o4 ! << 1
183 ! q' in %o2. r' in %o1
200 ! q' in %o2. r' in %o4