`rmw` relates load/store exclusives on different locations?
jeehoonkang opened this issue · 6 comments
Currently it doesn't. But it's unclear whether the spec allows it: #5 (comment)
The manual says "The address used in a STREX instruction must be the same as the address in the most recently executed LDREX instruction. The result of executing a STREX instruction to a different address is unpredictable." (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489e/Cihbghef.html) So basically it's undefined behavior..
It's very unclear what CONSTRAINED UNPREDICTABLE and UNKNOWN mean.. and I don't think we have to define it precisely in this paper. Also, I think introducing special operational model state will complicate things too much.. at least in formalization.
Currently, the formalization follows what's written in the view_arm
repo (https://bitbucket.org/jean_pichon/view_arm, main.pdf
, notblocked
). In short, the semantics unconditionally allows relating different locations as an rmw pair. It's different from what the manual says, but I think it's a reasonable choice.
Also, May I ask if you could add Jean, Gil, and me in the conversation with Will Deacon?
our semantics: nondeterministically succeed or fail.
discuss the caveat in the paper. architecture allows constrainted unpredictable (?) behaviors.