1 /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
3 This file is part of GNU CC.
5 GNU CC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2, or (at your option)
10 GNU CC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with GNU CC; see the file COPYING. If not, write to
17 the Free Software Foundation, 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. */
20 #include <asm/export.h>
60 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
61 sub %i0,%o4,%i0 ! this kills msb of n
62 addx %i0,%i0,%i0 ! so this cannot give carry
67 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
69 sub %i0,%o4,%i0 ! this kills msb of n
74 ! Got carry from n. Subtract next step to cancel this carry.
76 addcc %o1,%o1,%o1 ! shift n1n0 and a 0-bit in lsb
96 addxcc %o2,%o2,%o2 ! shift n1n0 and a q-bit in lsb
97 sub %g3,%o4,%g3 ! this kills msb of n
98 addx %g3,%g3,%g3 ! so this cannot give carry
103 addxcc %o2,%o2,%o2 ! shift n1n0 and a q-bit in lsb
105 sub %g3,%o4,%g3 ! this kills msb of n
107 5: addxcc %g3,%g3,%g3
110 ! Got carry from n. Subtract next step to cancel this carry.
112 addcc %o2,%o2,%o2 ! shift n1n0 and a 0-bit in lsb
120 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
121 sub %i0,%o4,%i0 ! this kills msb of n
122 addx %i0,%i0,%i0 ! so this cannot give carry
127 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
129 sub %i0,%o4,%i0 ! this kills msb of n
131 5: addxcc %i0,%i0,%i0
134 ! Got carry from n. Subtract next step to cancel this carry.
136 addcc %o1,%o1,%o1 ! shift n1n0 and a 0-bit in lsb
148 or %o0,%lo(65535),%o0
157 sethi %hi(16777215),%o0
158 or %o0,%lo(16777215),%o0
165 sethi %hi(__clz_tab),%o1
166 or %o1,%lo(__clz_tab),%o1
195 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
196 sub %o2,%i2,%o2 ! this kills msb of n
197 addx %o2,%o2,%o2 ! so this cannot give carry
202 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
204 sub %o2,%i2,%o2 ! this kills msb of n
206 5: addxcc %o2,%o2,%o2
209 ! Got carry from n. Subtract next step to cancel this carry.
211 addcc %o1,%o1,%o1 ! shift n1n0 and a 0-bit in lsb
215 wr %g0,%o1,%y ! SPARC has 0-3 delay insn after a wr
216 sra %o4,31,%g2 ! Do not move this insn
217 and %o1,%g2,%g2 ! Do not move this insn
218 andcc %g0,0,%g1 ! Do not move this insn
283 EXPORT_SYMBOL(__divdi3)