diff options
Diffstat (limited to 'src/support')
-rw-r--r-- | src/support/utilities.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/support/utilities.h b/src/support/utilities.h index 77263a78e..d35b2b34a 100644 --- a/src/support/utilities.h +++ b/src/support/utilities.h @@ -35,6 +35,19 @@ inline Destination bit_cast(const Source& source) { return destination; } +inline bool isPowerOf2(uint32_t v) { + return v && !(v & (v - 1)); +} + +inline size_t alignAddr(size_t address, size_t alignment) { + assert(alignment && isPowerOf2((uint32_t)alignment) && + "Alignment is not a power of two!"); + + assert(address + alignment - 1 >= address); + + return ((address + alignment - 1) & ~(alignment - 1)); +} + } // namespace wasm #endif // wasm_support_utilities_h |