comparison src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp @ 671:d0994e5bebce

6822204: volatile fences should prefer lock:addl to actual mfence instructions Reviewed-by: kvn, phh
author never
date Thu, 26 Mar 2009 14:31:45 -0700
parents a61af66fc99e
children bd02caa94611
comparison
equal deleted inserted replaced
668:90a66aa50514 671:d0994e5bebce
59 #else 59 #else
60 __asm__ volatile ("movl 0(%%esp),%0" : "=r" (dummy) : : "memory"); 60 __asm__ volatile ("movl 0(%%esp),%0" : "=r" (dummy) : : "memory");
61 #endif // AMD64 61 #endif // AMD64
62 } 62 }
63 inline void _OrderAccess_fence() { 63 inline void _OrderAccess_fence() {
64 #ifdef AMD64 64 // Always use locked addl since mfence is sometimes expensive
65 __asm__ __volatile__ ("mfence":::"memory");
66 #else
67 __asm__ volatile ("lock; addl $0,0(%%esp)" : : : "cc", "memory"); 65 __asm__ volatile ("lock; addl $0,0(%%esp)" : : : "cc", "memory");
68 #endif // AMD64
69 } 66 }
70 67
71 } 68 }
72 69
73 #endif // GNU_SOURCE 70 #endif // GNU_SOURCE