x86 JNI compiler and unit tests.
Change-Id: I4c2e10328961a2e8e27c90777fe2a93737b21143
diff --git a/src/utils.h b/src/utils.h
index cbf0cff..217bd69 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -12,14 +12,12 @@
return (x & (x - 1)) == 0;
}
-
template<typename T>
static inline bool IsAligned(T x, int n) {
CHECK(IsPowerOfTwo(n));
return (x & (n - 1)) == 0;
}
-
template<typename T>
static inline bool IsAligned(T* x, int n) {
return IsAligned(reinterpret_cast<uintptr_t>(x), n);
@@ -33,7 +31,6 @@
return (-limit <= value) && (value < limit);
}
-
static inline bool IsUint(int N, word value) {
CHECK_LT(0, N);
CHECK_LT(N, kBitsPerWord);
@@ -41,7 +38,6 @@
return (0 <= value) && (value < limit);
}
-
static inline bool IsAbsoluteUint(int N, word value) {
CHECK_LT(0, N);
CHECK_LT(N, kBitsPerWord);
@@ -49,12 +45,18 @@
return IsUint(N, value);
}
+static inline int32_t Low16Bits(int32_t value) {
+ return static_cast<int32_t>(value & 0xffff);
+}
+
+static inline int32_t High16Bits(int32_t value) {
+ return static_cast<int32_t>(value >> 16);
+}
static inline int32_t Low32Bits(int64_t value) {
return static_cast<int32_t>(value);
}
-
static inline int32_t High32Bits(int64_t value) {
return static_cast<int32_t>(value >> 32);
}