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