diff src/os_cpu/solaris_x86/vm/solaris_x86_32.il @ 1547:fb1a39993f69

6951319: enable solaris builds using Sun Studio 12 update 1 Reviewed-by: kamg, ysr, dholmes, johnc
author jcoomes
date Tue, 18 May 2010 11:02:18 -0700
parents 665be97e8704
children c18cbe5936b8
line wrap: on
line diff
--- a/src/os_cpu/solaris_x86/vm/solaris_x86_32.il	Mon May 17 00:47:28 2010 -0700
+++ b/src/os_cpu/solaris_x86/vm/solaris_x86_32.il	Tue May 18 11:02:18 2010 -0700
@@ -50,10 +50,12 @@
       movl     4(%esp), %edx   // dest
       movl     %eax, %ecx
       cmpl     $0, 8(%esp)     // MP test
-      je       1f
-      lock
-1:    xaddl    %eax, (%edx)
-      addl     %ecx, %eax
+      jne      1f
+      xaddl    %eax, (%edx)
+      jmp      2f
+1:    lock
+      xaddl    %eax, (%edx)
+2:    addl     %ecx, %eax
       .end
 
   // Support for jint Atomic::xchg(jint exchange_value, volatile jint* dest).
@@ -72,9 +74,12 @@
       movl     0(%esp), %ecx   // exchange_value
       movl     4(%esp), %edx   // dest
       cmp      $0, 12(%esp)    // MP test
-      je       1f
-      lock
-1:    cmpxchgl %ecx, (%edx)
+      jne      1f
+      cmpxchgl %ecx, (%edx)
+      jmp      2f
+1:    lock
+      cmpxchgl %ecx, (%edx)
+2:
       .end
 
   // Support for jlong Atomic::cmpxchg(jlong exchange_value,
@@ -90,10 +95,12 @@
       movl     8(%esp), %ebx   // exchange_value (low)
       movl     12(%esp), %ecx  // exchange_high (high)
       cmp      $0, 28(%esp)    // MP test
-      je       1f
-      lock
-1:    cmpxchg8b (%edi)
-      popl     %edi
+      jne      1f
+      cmpxchg8b (%edi)
+      jmp      2f
+1:    lock
+      cmpxchg8b (%edi)
+2:    popl     %edi
       popl     %ebx
       .end