mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-15 11:00:53 +02:00
This is the base implementation that uses LORegion loadstore instructions to support the load/store release semantics, which these instructions use. Sadly these don't match the alignment requirements of x86 loadstores, so if it was just used everywhere then it will cause alignment faults. This means we need to catch the sigbus and backpatch the instruction to do safe (aka expensive) TSO. Currently this backpatch just falls back to regular loadstores surrounded by DMB instructions. Basically unaligned loadstores will fall back to nearly what we are doing now, so significantly improved but not perfect. A follow up PR will change this over to using a helper routine to be 100% safe