From 3245c24d1fd59c2d4a969570743f764022eb5033 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Wed, 16 Mar 2016 17:46:46 -0700 Subject: add Log2 and Pow2 support methods --- src/support/bits.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/support/bits.cpp') diff --git a/src/support/bits.cpp b/src/support/bits.cpp index c1de4da8b..3d03b100c 100644 --- a/src/support/bits.cpp +++ b/src/support/bits.cpp @@ -15,6 +15,7 @@ */ #define wasm_support_bits_definitions +#include "../compiler-support.h" #include "support/bits.h" namespace wasm { @@ -99,4 +100,28 @@ int CountLeadingZeroes(uint64_t v) { : 32 + CountLeadingZeroes((uint32_t)v); } +uint32_t Log2(uint32_t v) { + switch (v) { + default: WASM_UNREACHABLE(); + case 1: return 0; + case 2: return 1; + case 4: return 2; + case 8: return 3; + case 16: return 4; + case 32: return 5; + } +} + +uint32_t Pow2(uint32_t v) { + switch (v) { + default: WASM_UNREACHABLE(); + case 0: return 1; + case 1: return 2; + case 2: return 4; + case 3: return 8; + case 4: return 16; + case 5: return 32; + } +} + } // namespace wasm -- cgit v1.2.3