aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/yosys.cc
diff options
context:
space:
mode:
authorJim Lawson <ucbjrl@berkeley.edu>2019-05-21 12:47:55 -0700
committerJim Lawson <ucbjrl@berkeley.edu>2019-05-21 12:47:55 -0700
commit489c555b41330ed9b1d69afdd8f44ef1e9a9be59 (patch)
tree64bdc5903bf099d59aa9ba9dacff03d8b7a9eda2 /kernel/yosys.cc
parent509f729e55458eda0ed7869ad269ec52d1956043 (diff)
parentc907899422884d959632ed42c6589a0720b681e4 (diff)
downloadyosys-489c555b41330ed9b1d69afdd8f44ef1e9a9be59.tar.gz
yosys-489c555b41330ed9b1d69afdd8f44ef1e9a9be59.tar.bz2
yosys-489c555b41330ed9b1d69afdd8f44ef1e9a9be59.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'kernel/yosys.cc')
-rw-r--r--kernel/yosys.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/yosys.cc b/kernel/yosys.cc
index 20d972150..377572fc2 100644
--- a/kernel/yosys.cc
+++ b/kernel/yosys.cc
@@ -151,14 +151,16 @@ void yosys_banner()
int ceil_log2(int x)
{
+#if defined(__GNUC__)
+ return x > 1 ? (8*sizeof(int)) - __builtin_clz(x-1) : 0;
+#else
if (x <= 0)
return 0;
-
for (int i = 0; i < 32; i++)
if (((x-1) >> i) == 0)
return i;
-
log_abort();
+#endif
}
std::string stringf(const char *fmt, ...)