UQ-PAC / aslp

Partial evaluator for Arm's Architecture Specification Language (ASL)
Other
6 stars 2 forks source link

128-bit memory accesses atomicity #49

Open l-kent opened 4 months ago

l-kent commented 4 months ago

128-bit accesses to the floating point registers are not atomic - they are treated as two separate atomic 64-bit accesses.

In ASL, this is handled within Mem.set and Mem.read and splits the accesses into two separate MemSingle calls, which are each an atomic access. This is not visible to the partial evaluation since Mem.set and Mem.read are not inlined.

A related issue that is less practically relevant is endianness, which is also handled within Mem.set and Mem.read, meaning that it is not visible to the partial evaluation.