LL/SC broken for MIPS after 7dd547e5ab6b31e7a0cfc182d3ad131dd55a948f
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
In that commit the env->llval value is loaded as an unsigned value (instead of sign-extended as before and therefore the CMPXCHG in gen_st_cond() in translate.c fails.
I have committed a fix for this issue as https:/
An alternative solution would be to change the cmpxchg line to perform a non-sign-extended compare, i.e. replace
tcg_
with
tcg_
However, that change does not fix the fact that the result of ll is no longer sign-extended, therefore I think adding a cast in the helpers is better.
I cannot send this patch to the QEMU mailing list as I am not able to setup git-send-email.
Feel free to apply this commit or the alternative solution.
Changed in qemu: | |
status: | Fix Committed → Fix Released |
The fix I linked is incorrect, the correct URL is https:/ /github. com/CTSRD- CHERI/qemu/ commit/ a833317eeb0387d cfa7615a78e74f8 b48990b8bc