summaryrefslogtreecommitdiffstats
path: root/sys/lib/libkern/arch/arm64/ffs.S
blob: 03101cb2c9f61f48516c3a9857254f7d9a1031d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*	$OpenBSD: ffs.S,v 1.1 2020/06/10 20:19:29 naddy Exp $ */
/*
 * Written by Christian Weisgerber <naddy@openbsd.org>.
 * Public domain.
 */
 
#include <machine/asm.h>

ENTRY(ffs)
	RETGUARD_SETUP(ffs, x15)
	rbit	w1, w0
	clz	w1, w1
	cmp	w0, wzr
	csinc	w0, wzr, w1, eq
	RETGUARD_CHECK(ffs, x15)
	ret
END(ffs)