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. */
24 .byte 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
25 .byte 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
26 .byte 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
27 .byte 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
28 .byte 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
29 .byte 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
30 .byte 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
31 .byte 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
74 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
75 sub %i0,%o4,%i0 ! this kills msb of n
76 addx %i0,%i0,%i0 ! so this cannot give carry
81 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
83 sub %i0,%o4,%i0 ! this kills msb of n
88 ! Got carry from n. Subtract next step to cancel this carry.
90 addcc %o1,%o1,%o1 ! shift n1n0 and a 0-bit in lsb
109 addxcc %o2,%o2,%o2 ! shift n1n0 and a q-bit in lsb
110 sub %g3,%o4,%g3 ! this kills msb of n
111 addx %g3,%g3,%g3 ! so this cannot give carry
116 addxcc %o2,%o2,%o2 ! shift n1n0 and a q-bit in lsb
118 sub %g3,%o4,%g3 ! this kills msb of n
120 5: addxcc %g3,%g3,%g3
123 ! Got carry from n. Subtract next step to cancel this carry.
125 addcc %o2,%o2,%o2 ! shift n1n0 and a 0-bit in lsb
133 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
134 sub %i0,%o4,%i0 ! this kills msb of n
135 addx %i0,%i0,%i0 ! so this cannot give carry
140 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
142 sub %i0,%o4,%i0 ! this kills msb of n
144 5: addxcc %i0,%i0,%i0
147 ! Got carry from n. Subtract next step to cancel this carry.
149 addcc %o1,%o1,%o1 ! shift n1n0 and a 0-bit in lsb
161 or %o0,%lo(65535),%o0
170 sethi %hi(16777215),%o0
171 or %o0,%lo(16777215),%o0
178 sethi %hi(__clz_tab),%o1
179 or %o1,%lo(__clz_tab),%o1
208 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
209 sub %o2,%i2,%o2 ! this kills msb of n
210 addx %o2,%o2,%o2 ! so this cannot give carry
215 addxcc %o1,%o1,%o1 ! shift n1n0 and a q-bit in lsb
217 sub %o2,%i2,%o2 ! this kills msb of n
219 5: addxcc %o2,%o2,%o2
222 ! Got carry from n. Subtract next step to cancel this carry.
224 addcc %o1,%o1,%o1 ! shift n1n0 and a 0-bit in lsb
228 wr %g0,%o1,%y ! SPARC has 0-3 delay insn after a wr
229 sra %o4,31,%g2 ! Do not move this insn
230 and %o1,%g2,%g2 ! Do not move this insn
231 andcc %g0,0,%g1 ! Do not move this insn