141413a60SVijay Kumar/* fls.S: SPARC default fls definition. 241413a60SVijay Kumar * 341413a60SVijay Kumar * SPARC default fls definition, which follows the same algorithm as 441413a60SVijay Kumar * in generic fls(). This function will be boot time patched on T4 541413a60SVijay Kumar * and onward. 641413a60SVijay Kumar */ 741413a60SVijay Kumar 8*4cdb71b6SMasahiro Yamada#include <linux/export.h> 941413a60SVijay Kumar#include <linux/linkage.h> 1041413a60SVijay Kumar 1141413a60SVijay Kumar .text 1241413a60SVijay Kumar .register %g2, #scratch 1341413a60SVijay Kumar .register %g3, #scratch 1441413a60SVijay KumarENTRY(fls) 1541413a60SVijay Kumar brz,pn %o0, 6f 1641413a60SVijay Kumar mov 0, %o1 1741413a60SVijay Kumar sethi %hi(0xffff0000), %g3 1841413a60SVijay Kumar mov %o0, %g2 1941413a60SVijay Kumar andcc %o0, %g3, %g0 2041413a60SVijay Kumar be,pt %icc, 8f 2141413a60SVijay Kumar mov 32, %o1 2241413a60SVijay Kumar sethi %hi(0xff000000), %g3 2341413a60SVijay Kumar andcc %g2, %g3, %g0 2441413a60SVijay Kumar bne,pt %icc, 3f 2541413a60SVijay Kumar sethi %hi(0xf0000000), %g3 2641413a60SVijay Kumar sll %o0, 8, %o0 2741413a60SVijay Kumar1: 2841413a60SVijay Kumar add %o1, -8, %o1 2941413a60SVijay Kumar sra %o0, 0, %o0 3041413a60SVijay Kumar mov %o0, %g2 3141413a60SVijay Kumar2: 3241413a60SVijay Kumar sethi %hi(0xf0000000), %g3 3341413a60SVijay Kumar3: 3441413a60SVijay Kumar andcc %g2, %g3, %g0 3541413a60SVijay Kumar bne,pt %icc, 4f 3641413a60SVijay Kumar sethi %hi(0xc0000000), %g3 3741413a60SVijay Kumar sll %o0, 4, %o0 3841413a60SVijay Kumar add %o1, -4, %o1 3941413a60SVijay Kumar sra %o0, 0, %o0 4041413a60SVijay Kumar mov %o0, %g2 4141413a60SVijay Kumar4: 4241413a60SVijay Kumar andcc %g2, %g3, %g0 4341413a60SVijay Kumar be,a,pt %icc, 7f 4441413a60SVijay Kumar sll %o0, 2, %o0 4541413a60SVijay Kumar5: 4641413a60SVijay Kumar xnor %g0, %o0, %o0 4741413a60SVijay Kumar srl %o0, 31, %o0 4841413a60SVijay Kumar sub %o1, %o0, %o1 4941413a60SVijay Kumar6: 5041413a60SVijay Kumar jmp %o7 + 8 5141413a60SVijay Kumar sra %o1, 0, %o0 5241413a60SVijay Kumar7: 5341413a60SVijay Kumar add %o1, -2, %o1 5441413a60SVijay Kumar ba,pt %xcc, 5b 5541413a60SVijay Kumar sra %o0, 0, %o0 5641413a60SVijay Kumar8: 5741413a60SVijay Kumar sll %o0, 16, %o0 5841413a60SVijay Kumar sethi %hi(0xff000000), %g3 5941413a60SVijay Kumar sra %o0, 0, %o0 6041413a60SVijay Kumar mov %o0, %g2 6141413a60SVijay Kumar andcc %g2, %g3, %g0 6241413a60SVijay Kumar bne,pt %icc, 2b 6341413a60SVijay Kumar mov 16, %o1 6441413a60SVijay Kumar ba,pt %xcc, 1b 6541413a60SVijay Kumar sll %o0, 8, %o0 6641413a60SVijay KumarENDPROC(fls) 6741413a60SVijay KumarEXPORT_SYMBOL(fls) 68