root/arch/sparc/lib/NG4fls.S

/* [<][>][^][v][top][bottom][index][help] */
   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  */
   5 
   6 #include <linux/linkage.h>
   7 
   8 #define LZCNT_O0_G2     \
   9         .word   0x85b002e8
  10 
  11         .text
  12         .register       %g2, #scratch
  13         .register       %g3, #scratch
  14 
  15 ENTRY(NG4fls)
  16         LZCNT_O0_G2     !lzcnt  %o0, %g2
  17         mov     64, %g3
  18         retl
  19          sub    %g3, %g2, %o0
  20 ENDPROC(NG4fls)
  21 
  22 ENTRY(__NG4fls)
  23         brz,pn  %o0, 1f
  24         LZCNT_O0_G2     !lzcnt  %o0, %g2
  25         mov     63, %g3
  26         sub     %g3, %g2, %o0
  27 1:
  28         retl
  29          nop
  30 ENDPROC(__NG4fls)

/* [<][>][^][v][top][bottom][index][help] */