comparison src/share/vm/runtime/atomic.hpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
53 static void dec (volatile jint* dest); 53 static void dec (volatile jint* dest);
54 static void dec_ptr(volatile intptr_t* dest); 54 static void dec_ptr(volatile intptr_t* dest);
55 static void dec_ptr(volatile void* dest); 55 static void dec_ptr(volatile void* dest);
56 56
57 // Performs atomic exchange of *dest with exchange_value. Returns old prior value of *dest. 57 // Performs atomic exchange of *dest with exchange_value. Returns old prior value of *dest.
58 static jint xchg (jint exchange_value, volatile jint* dest); 58 static jint xchg(jint exchange_value, volatile jint* dest);
59 static unsigned int xchg(unsigned int exchange_value,
60 volatile unsigned int* dest);
61
59 static intptr_t xchg_ptr(intptr_t exchange_value, volatile intptr_t* dest); 62 static intptr_t xchg_ptr(intptr_t exchange_value, volatile intptr_t* dest);
60 static void* xchg_ptr(void* exchange_value, volatile void* dest); 63 static void* xchg_ptr(void* exchange_value, volatile void* dest);
61 64
62 // Performs atomic compare of *dest and compare_value, and exchanges *dest with exchange_value 65 // Performs atomic compare of *dest and compare_value, and exchanges *dest with exchange_value
63 // if the comparison succeeded. Returns prior value of *dest. Guarantees a two-way memory 66 // if the comparison succeeded. Returns prior value of *dest. Guarantees a two-way memory
64 // barrier across the cmpxchg. I.e., it's really a 'fence_cmpxchg_acquire'. 67 // barrier across the cmpxchg. I.e., it's really a 'fence_cmpxchg_acquire'.
65 static jbyte cmpxchg (jbyte exchange_value, volatile jbyte* dest, jbyte compare_value); 68 static jbyte cmpxchg (jbyte exchange_value, volatile jbyte* dest, jbyte compare_value);
66 static jint cmpxchg (jint exchange_value, volatile jint* dest, jint compare_value); 69 static jint cmpxchg (jint exchange_value, volatile jint* dest, jint compare_value);
67 static jlong cmpxchg (jlong exchange_value, volatile jlong* dest, jlong compare_value); 70 static jlong cmpxchg (jlong exchange_value, volatile jlong* dest, jlong compare_value);
71
72 static unsigned int cmpxchg(unsigned int exchange_value,
73 volatile unsigned int* dest,
74 unsigned int compare_value);
75
68 static intptr_t cmpxchg_ptr(intptr_t exchange_value, volatile intptr_t* dest, intptr_t compare_value); 76 static intptr_t cmpxchg_ptr(intptr_t exchange_value, volatile intptr_t* dest, intptr_t compare_value);
69 static void* cmpxchg_ptr(void* exchange_value, volatile void* dest, void* compare_value); 77 static void* cmpxchg_ptr(void* exchange_value, volatile void* dest, void* compare_value);
70 }; 78 };