comparison src/os_cpu/windows_x86/vm/os_windows_x86.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
33 static jlong (*atomic_cmpxchg_long_func) (jlong, volatile jlong*, jlong); 33 static jlong (*atomic_cmpxchg_long_func) (jlong, volatile jlong*, jlong);
34 34
35 static jint (*atomic_add_func) (jint, volatile jint*); 35 static jint (*atomic_add_func) (jint, volatile jint*);
36 static intptr_t (*atomic_add_ptr_func) (intptr_t, volatile intptr_t*); 36 static intptr_t (*atomic_add_ptr_func) (intptr_t, volatile intptr_t*);
37 37
38 static void (*fence_func) ();
39
40
41 static jint atomic_xchg_bootstrap (jint, volatile jint*); 38 static jint atomic_xchg_bootstrap (jint, volatile jint*);
42 static intptr_t atomic_xchg_ptr_bootstrap (intptr_t, volatile intptr_t*); 39 static intptr_t atomic_xchg_ptr_bootstrap (intptr_t, volatile intptr_t*);
43 40
44 static jint atomic_cmpxchg_bootstrap (jint, volatile jint*, jint); 41 static jint atomic_cmpxchg_bootstrap (jint, volatile jint*, jint);
45 #else 42 #else
51 static jlong atomic_cmpxchg_long_bootstrap(jlong, volatile jlong*, jlong); 48 static jlong atomic_cmpxchg_long_bootstrap(jlong, volatile jlong*, jlong);
52 49
53 #ifdef AMD64 50 #ifdef AMD64
54 static jint atomic_add_bootstrap (jint, volatile jint*); 51 static jint atomic_add_bootstrap (jint, volatile jint*);
55 static intptr_t atomic_add_ptr_bootstrap (intptr_t, volatile intptr_t*); 52 static intptr_t atomic_add_ptr_bootstrap (intptr_t, volatile intptr_t*);
56
57 static void fence_bootstrap ();
58 #endif // AMD64 53 #endif // AMD64
59 54
60 static void setup_fpu(); 55 static void setup_fpu();
61 static bool supports_sse() { return true; } 56 static bool supports_sse() { return true; }
62 57