hc
2023-11-23 7d07b3ae8ddad407913c5301877e694430a3263f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
 * OpenRISC Linux
 *
 * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 */
 
#ifndef __ASM_OPENRISC___FFS_H
#define __ASM_OPENRISC___FFS_H
 
 
#ifdef CONFIG_OPENRISC_HAVE_INST_FF1
 
static inline unsigned long __ffs(unsigned long x)
{
   int ret;
 
   __asm__ ("l.ff1 %0,%1"
        : "=r" (ret)
        : "r" (x));
 
   return ret-1;
}
 
#else
#include <asm-generic/bitops/__ffs.h>
#endif
 
#endif /* __ASM_OPENRISC___FFS_H */