diff options
Diffstat (limited to 'common/clz.c')
-rw-r--r-- | common/clz.c | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/common/clz.c b/common/clz.c deleted file mode 100644 index b0b58e76a0..0000000000 --- a/common/clz.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2014 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - * - * Software emulation for CLZ instruction - */ - -#include "common.h" - -/** - * Count leading zeros - * - * @param x non null integer. - * @return the number of leading 0-bits in x, - * starting at the most significant bit position. - */ -int __keep __clzsi2(int x) -{ - int r = 0; - - if (!x) - return 32; - if (!(x & 0xffff0000u)) { - x <<= 16; - r += 16; - } - if (!(x & 0xff000000u)) { - x <<= 8; - r += 8; - } - if (!(x & 0xf0000000u)) { - x <<= 4; - r += 4; - } - if (!(x & 0xc0000000u)) { - x <<= 2; - r += 2; - } - if (!(x & 0x80000000u)) { - x <<= 1; - r += 1; - } - return r; -} |