159c159
< uint8_t byteMask, bool affectState)
---
> uint8_t byteMask, bool affectState, bool nmfi)
190c190,194
< return ((uint32_t)cpsr & ~bitMask) | (val & bitMask);
---
> bool cpsr_f = cpsr.f;
> uint32_t new_cpsr = ((uint32_t)cpsr & ~bitMask) | (val & bitMask);
> if (nmfi && !cpsr_f)
> new_cpsr &= ~(1 << 6);
> return new_cpsr;