Mercurial > hg > truffle
comparison src/os_cpu/bsd_x86/vm/orderAccess_bsd_x86.inline.hpp @ 12062:b1fd869e7df0
8023188: Unsafe volatile double store on bsd is broken
Reviewed-by: dcubed, dholmes
Contributed-by: yumin.qi@oracle.com
author | minqi |
---|---|
date | Mon, 19 Aug 2013 09:16:35 -0700 |
parents | 4614a598dae1 |
children |
comparison
equal
deleted
inserted
replaced
12061:e5003079dfa5 | 12062:b1fd869e7df0 |
---|---|
188 inline void OrderAccess::release_store_fence(volatile jushort* p, jushort v) { release_store_fence((volatile jshort*)p, (jshort)v); } | 188 inline void OrderAccess::release_store_fence(volatile jushort* p, jushort v) { release_store_fence((volatile jshort*)p, (jshort)v); } |
189 inline void OrderAccess::release_store_fence(volatile juint* p, juint v) { release_store_fence((volatile jint*)p, (jint)v); } | 189 inline void OrderAccess::release_store_fence(volatile juint* p, juint v) { release_store_fence((volatile jint*)p, (jint)v); } |
190 inline void OrderAccess::release_store_fence(volatile julong* p, julong v) { release_store_fence((volatile jlong*)p, (jlong)v); } | 190 inline void OrderAccess::release_store_fence(volatile julong* p, julong v) { release_store_fence((volatile jlong*)p, (jlong)v); } |
191 | 191 |
192 inline void OrderAccess::release_store_fence(volatile jfloat* p, jfloat v) { *p = v; fence(); } | 192 inline void OrderAccess::release_store_fence(volatile jfloat* p, jfloat v) { *p = v; fence(); } |
193 inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) { release_store_fence((volatile jlong*)p, jdouble_cast(v)); } | 193 inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) { release_store_fence((volatile jlong*)p, jlong_cast(v)); } |
194 | 194 |
195 inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { | 195 inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { |
196 #ifdef AMD64 | 196 #ifdef AMD64 |
197 __asm__ __volatile__ ( "xchgq (%2), %0" | 197 __asm__ __volatile__ ( "xchgq (%2), %0" |
198 : "=r" (v) | 198 : "=r" (v) |