Aleksey Kliger (λgeek)
Aleksey Kliger (λgeek)
Not getting very far with trying to repro this locally. See https://github.com/dotnet/runtime/issues/96191#issuecomment-1912631321 for my methodology
I'm probably wrong about that 😄 `Volatile.Read` turns into an indirect load from a volatile local. which turns into `interp_emit_memory_barrier` which turns into `mono_memory_barrier ()` at runtime. and that is......
yea it looks like `MINT_MONO_MEMORY_BARRIER` is just an unsupported opcode for the jiterp. so that doesn't enter into it
/azp run runtime-extra-platforms
/azp run runtime-extra-platforms
/azp run runtime-extra-platforms, runtime-nativeaot-outerloop
/azp run runtime-extra-platforms, runtime-nativeaot-outerloop
Created https://github.com/dotnet/runtime/issues/93488 for mono follow-up work to actually support these operations as intrinsics in the mono JIT/AOT and interpreter
It's either us or emscripten libc, right? Maybe we can instrument all our atomic ops with an alignment check?
Couldn't repro locally with debug builds of the runtime/libraries/tests. Trying a release build (but hopefully still with native symbols). *Update* no luck with release builds either. For the record I'm...