Back to home page

OSCL-LXR

 
 

    


0001 /* NG4fls.S: SPARC optimized fls and __fls for T4 and above.
0002  *
0003  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
0004  */
0005 
0006 #include <linux/linkage.h>
0007 
0008 #define LZCNT_O0_G2 \
0009     .word   0x85b002e8
0010 
0011     .text
0012     .register   %g2, #scratch
0013     .register   %g3, #scratch
0014 
0015 ENTRY(NG4fls)
0016     LZCNT_O0_G2 !lzcnt  %o0, %g2
0017     mov 64, %g3
0018     retl
0019      sub    %g3, %g2, %o0
0020 ENDPROC(NG4fls)
0021 
0022 ENTRY(__NG4fls)
0023     brz,pn  %o0, 1f
0024     LZCNT_O0_G2 !lzcnt  %o0, %g2
0025     mov 63, %g3
0026     sub %g3, %g2, %o0
0027 1:
0028     retl
0029      nop
0030 ENDPROC(__NG4fls)