Merge tag 'sched-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel...
[linux/fpc-iii.git] / arch / sparc / lib / NG4fls.S
blob2d0991e5b03417c4993e118e6f424385d4ec54e1
1 /* NG4fls.S: SPARC optimized fls and __fls for T4 and above.
2  *
3  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
4  */
6 #include <linux/linkage.h>
8 #define LZCNT_O0_G2     \
9         .word   0x85b002e8
11         .text
12         .register       %g2, #scratch
13         .register       %g3, #scratch
15 ENTRY(NG4fls)
16         LZCNT_O0_G2     !lzcnt  %o0, %g2
17         mov     64, %g3
18         retl
19          sub    %g3, %g2, %o0
20 ENDPROC(NG4fls)
22 ENTRY(__NG4fls)
23         brz,pn  %o0, 1f
24         LZCNT_O0_G2     !lzcnt  %o0, %g2
25         mov     63, %g3
26         sub     %g3, %g2, %o0
28         retl
29          nop
30 ENDPROC(__NG4fls)