your change "[Patch AArch64] Warn on unpredictable stlxrb , stlxrh and stlxr cases"
Jan Beulich
jbeulich@suse.com
Mon Feb 15 10:26:25 GMT 2021
Ramana,
with 2.36 I noticed
st64bv x0, x2, [x0]
triggering an "identical transfer and status registers". I realize
this operand combination is unpredictable, but for a different
reason (unless "transfer" is meant to cover both address _and_
destination registers). I notice further that your change
introduces ldxp tests, but aiui their operand combinations are
unpredictable for the latter and yet another reason. I found the
warning wording confusing, and I was able to understand what
exactly was wrong only after having dug out the respective doc
section. Looking more closely I believe all of the below are
affected:
stlxr w0, x2, [x0]
stxr w0, x2, [x0]
st64bv x0, x2, [x0]
ldaxp x0, x0, [x0]
ldxp x0, x0, [x0]
I also understand these should be warned about, but aren't:
stlxp w0, x2, x2, [x0]
stxp w0, x2, x2, [x0]
Furthermore I wonder whether
st64bv x2, x0, [x0]
isn't unpredictable, too - x2 is within the range of registers
loaded data would be written to.
Could all of this be consolidated?
Thanks, Jan
More information about the Binutils
mailing list