hotspot/src/os/solaris/vm/os_solaris.cpp
changeset 3594 0ce9158bc84c
parent 2358 7c8346929fc6
child 4487 de1359156181
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp	Sun Jul 26 12:59:41 2009 -0700
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp	Sun Jul 26 16:40:14 2009 -0700
@@ -1643,7 +1643,8 @@
 inline hrtime_t getTimeNanos() {
   if (VM_Version::supports_cx8()) {
     const hrtime_t now = gethrtime();
-    const hrtime_t prev = max_hrtime;
+    // Use atomic long load since 32-bit x86 uses 2 registers to keep long.
+    const hrtime_t prev = Atomic::load((volatile jlong*)&max_hrtime);
     if (now <= prev)  return prev;   // same or retrograde time;
     const hrtime_t obsv = Atomic::cmpxchg(now, (volatile jlong*)&max_hrtime, prev);
     assert(obsv >= prev, "invariant");   // Monotonicity