fix(m68k): correct SR register read (#2161)
The SR register in the `CPUM68KState` struct does not contain the value of the lower 5 flags. To compute them, we must OR the CCR values with the SR register to get the true SR value.
This commit is contained in:
@@ -591,6 +591,10 @@ uint32_t HELPER(sats)(uint32_t val, uint32_t v)
|
||||
return val;
|
||||
}
|
||||
|
||||
uint32_t cpu_m68k_get_sr(CPUM68KState *env) {
|
||||
return env->sr | cpu_m68k_get_ccr(env);
|
||||
}
|
||||
|
||||
void cpu_m68k_set_sr(CPUM68KState *env, uint32_t sr)
|
||||
{
|
||||
env->sr = sr & 0xffe0;
|
||||
|
||||
Reference in New Issue
Block a user