Mercurial > hg > truffle
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 }; |