< prev index next >
src/hotspot/share/utilities/globalDefinitions.hpp
Print this page
*** 1046,1056 ****
return i;
}
//* largest i such that 2^i <= x
// A negative value of 'x' will return '63'
! inline int log2_long(unsigned long x) {
int i = -1;
julong p = 1;
while (p != 0 && p <= x) {
// p = 2^(i+1) && p <= x (i.e., 2^(i+1) <= x)
i++; p *= 2;
--- 1046,1056 ----
return i;
}
//* largest i such that 2^i <= x
// A negative value of 'x' will return '63'
! inline int log2_long(julong x) {
int i = -1;
julong p = 1;
while (p != 0 && p <= x) {
// p = 2^(i+1) && p <= x (i.e., 2^(i+1) <= x)
i++; p *= 2;
*** 1062,1081 ****
inline int log2_intptr(intptr_t x) {
return log2_intptr((uintptr_t)x);
}
! inline int log2_intptr(int x) {
return log2_intptr((uintptr_t)x);
}
! inline int log2_intptr(uint x) {
return log2_intptr((uintptr_t)x);
}
! inline int log2_long(jlong x) {
! return log2_long((unsigned long)x);
}
//* the argument must be exactly a power of 2
inline int exact_log2(intptr_t x) {
assert(is_power_of_2(x), "x must be a power of 2: " INTPTR_FORMAT, x);
--- 1062,1089 ----
inline int log2_intptr(intptr_t x) {
return log2_intptr((uintptr_t)x);
}
! inline int log2_int(int x) {
! STATIC_ASSERT(sizeof(int) <= sizeof(uintptr_t));
return log2_intptr((uintptr_t)x);
}
! inline int log2_jint(jint x) {
! STATIC_ASSERT(sizeof(jint) <= sizeof(uintptr_t));
return log2_intptr((uintptr_t)x);
}
! inline int log2_uint(uint x) {
! STATIC_ASSERT(sizeof(uint) <= sizeof(uintptr_t));
! return log2_intptr((uintptr_t)x);
! }
!
! inline int log2_jlong(jlong x) {
! STATIC_ASSERT(sizeof(jlong) <= sizeof(julong));
! return log2_long((julong)x);
}
//* the argument must be exactly a power of 2
inline int exact_log2(intptr_t x) {
assert(is_power_of_2(x), "x must be a power of 2: " INTPTR_FORMAT, x);
< prev index next >