зеркало из https://github.com/dotnet/llilc.git
Merge pull request #398 from AndyAyersMS/Volatile
Use normal lowering for volatile stores.
This commit is contained in:
Коммит
82f6d967d7
|
@ -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);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче