-
Notifications
You must be signed in to change notification settings - Fork 235
Description
We should probably support this PMA properly.
See this comment for a discussion of how misalignment is currently handled. It's almost compatible with the misaligned atomicity granule PMA, except:
memory.misaligned.allowed_within_expis global, but we probably want it inmemory.regions[N](and maybe for the others too).memory.misaligned.allowed_within_expcontrols whether a misaligned access is split into aligned operations or not. Whereas the misaligned atomicity granule PMA allows for an exception:
If a misaligned AMO accesses a region that does not specify a misaligned atomicity granule PMA, or if not all accessed bytes lie within the same misaligned atomicity granule, then an exception is raised. For regular loads and stores that access such a region or for which not all accessed bytes lie within the same atomicity granule, then either an exception is raised, or the access proceeds but is not guaranteed to be atomic.
Basically we always do "the access proceeds but is not guaranteed to be atomic" but sometimes we might need to raise an exception.
I think we probably want to figure out a big complicated flow chart of all the options.