Merge pull request #398 from AndyAyersMS/Volatile

Use normal lowering for volatile stores.
This commit is contained in:
Andy Ayers 2015-04-06 12:52:55 -07:00
Родитель 0e7900d087 dfcfffbe95
Коммит 82f6d967d7
1 изменённых файлов: 4 добавлений и 6 удалений

Просмотреть файл

@ -2834,12 +2834,10 @@ void GenIR::storePrimitiveType(IRNode *Value, IRNode *Addr,
// Helper used to wrap CreateStore // Helper used to wrap CreateStore
StoreInst *GenIR::makeStore(Value *ValueToStore, Value *Address, StoreInst *GenIR::makeStore(Value *ValueToStore, Value *Address,
bool IsVolatile, bool AddressMayBeNull) { bool IsVolatile, bool AddressMayBeNull) {
if (IsVolatile) { // TODO: There is a JitConfig setting JitLockWrite which can alter how
// TODO: There is a JitConfig call back which can alter // volatile stores are handled for x86 architectures. When this is set we
// how volatile stores are handled. // should emit a (lock) xchg intead of mov. RyuJit doesn't to look at this
throw NotYetImplementedException("Volatile store"); // config setting, so we also ignore it.
}
if (AddressMayBeNull) { if (AddressMayBeNull) {
if (UseExplicitNullChecks) { if (UseExplicitNullChecks) {
Address = genNullCheck((IRNode *)Address); Address = genNullCheck((IRNode *)Address);