1 ; HP-PA __udiv_qrnnd division support, used from longlong.h.
2 ; This version runs fast on PA 7000 and later.
4 ; Copyright (C) 1993, 1994, 2000 Free Software Foundation, Inc.
6 ; This file is part of the GNU MP Library.
8 ; The GNU MP Library is free software; you can redistribute it and/or modify
9 ; it under the terms of the GNU Lesser General Public License as published by
10 ; the Free Software Foundation; either version 2.1 of the License, or (at your
11 ; option) any later version.
13 ; The GNU MP Library is distributed in the hope that it will be useful, but
14 ; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 ; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
16 ; License for more details.
18 ; You should have received a copy of the GNU Lesser General Public License
19 ; along with the GNU MP Library; see the file COPYING.LIB. If not, write to
20 ; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
31 L$0000 .word 0x43f00000 ; 2^64
33 .export __gmpn_udiv_qrnnd
36 .callinfo frame=64,no_calls
40 stws %r25,-16(0,%r30) ; n_hi
41 stws %r24,-12(0,%r30) ; n_lo
44 ldo RT%L$0000(%r1),%r19
47 ldo R%L$0000(%r19),%r19
49 fldds -16(0,%r30),%fr5
52 fcnvxf,dbl,dbl %fr5,%fr5
54 fadd,dbl %fr4,%fr5,%fr5
57 fldws -12(0,%r30),%fr6R
58 fcnvxf,dbl,dbl %fr6,%fr4
60 fdiv,dbl %fr5,%fr4,%fr5
62 fcnvfx,dbl,dbl %fr5,%fr4
64 xmpyu %fr4R,%fr6R,%fr6
66 fstds %fr6,-16(0,%r30)