On 5/2/22 07:39, Víctor Colombo wrote:
if (!(value & env->msr & R_MSR_IR_MASK) ||
-((value >> MSR_DR) & 1) != msr_dr) {
+!(value & env->msr & R_MSR_DR_MASK)) {
Xor, but then this becomes
(value ^ env->msr) & (R_MSR_IR_MASK | R_MSR_DR_MASK)
r~
msr_dr macro hides the usage of env->msr, which is a bad behavior
Substitute it with FIELD_EX64 calls that explicitly use env->msr
as a parameter.
Suggested-by: Richard Henderson
Signed-off-by: Víctor Colombo
---
v2: Remove M_MSR_DR and use FIELD_EX64 instead
Signed-off-by: Víctor Colombo