hotspot/src/share/vm/utilities/globalDefinitions.hpp
changeset 29193 3ede621e9262
parent 29185 41cf0610fedf
parent 28650 772aaab2582f
child 29574 ab0121071f54
child 30183 a6588c0a3259
--- a/hotspot/src/share/vm/utilities/globalDefinitions.hpp	Fri Feb 06 10:36:46 2015 -0800
+++ b/hotspot/src/share/vm/utilities/globalDefinitions.hpp	Thu Feb 26 10:56:54 2015 -0800
@@ -1150,17 +1150,18 @@
   return ((x != NoLongBits) && (mask_long_bits(x, x - 1) == NoLongBits));
 }
 
-//* largest i such that 2^i <= x
-//  A negative value of 'x' will return '31'
+// Returns largest i such that 2^i <= x.
+// If x < 0, the function returns 31 on a 32-bit machine and 63 on a 64-bit machine.
+// If x == 0, the function returns -1.
 inline int log2_intptr(intptr_t x) {
   int i = -1;
-  uintptr_t p =  1;
+  uintptr_t p = 1;
   while (p != 0 && p <= (uintptr_t)x) {
     // p = 2^(i+1) && p <= x (i.e., 2^(i+1) <= x)
     i++; p *= 2;
   }
   // p = 2^(i+1) && x < p (i.e., 2^i <= x < 2^(i+1))
-  // (if p = 0 then overflow occurred and i = 31)
+  // If p = 0, overflow has occurred and i = 31 or i = 63 (depending on the machine word size).
   return i;
 }