/* NG4fls.S: SPARC optimized fls and __fls for T4 and above. * * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. */ #include <linux/linkage.h> #define LZCNT_O0_G2 \ .word 0x85b002e8 .text .register %g2, #scratch .register %g3, #scratch ENTRY(NG4fls) LZCNT_O0_G2 !lzcnt %o0, %g2 mov 64, %g3 retl sub %g3, %g2, %o0 ENDPROC(NG4fls) ENTRY(__NG4fls) brz,pn %o0, 1f LZCNT_O0_G2 !lzcnt %o0, %g2 mov 63, %g3 sub %g3, %g2, %o0 1: retl nop ENDPROC(__NG4fls) |