< prev index next >
src/share/vm/utilities/globalDefinitions.hpp
Print this page
*** 1147,1158 ****
// (if p = 0 then overflow occurred and i = 31)
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;
--- 1147,1157 ----
// (if p = 0 then overflow occurred and i = 31)
return i;
}
//* largest i such that 2^i <= x
! 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;
*** 1164,1183 ****
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) {
#ifdef ASSERT
--- 1163,1187 ----
inline int log2_intptr(intptr_t x) {
return log2_intptr((uintptr_t)x);
}
! inline int log2_int(int x) {
return log2_intptr((uintptr_t)x);
}
! inline int log2_jint(jint x) {
return log2_intptr((uintptr_t)x);
}
! inline int log2_uint(uint x) {
! return log2_intptr((uintptr_t)x);
! }
!
! // A negative value of 'x' will return '63'
! inline int log2_jlong(jlong x) {
! return log2_long((julong)x);
}
//* the argument must be exactly a power of 2
inline int exact_log2(intptr_t x) {
#ifdef ASSERT
< prev index next >