diff --git a/src/frontend/A32/location_descriptor.h b/src/frontend/A32/location_descriptor.h index 36c830a2..31e3ba21 100644 --- a/src/frontend/A32/location_descriptor.h +++ b/src/frontend/A32/location_descriptor.h @@ -88,13 +88,17 @@ public: return LocationDescriptor(arm_pc, cpsr, A32::FPSCR{new_fpscr & FPSCR_MODE_MASK}, single_stepping); } - LocationDescriptor AdvanceIT() const { + LocationDescriptor SetIT(ITState new_it) const { PSR new_cpsr = cpsr; - new_cpsr.IT(new_cpsr.IT().Advance()); + new_cpsr.IT(new_it); return LocationDescriptor(arm_pc, new_cpsr, fpscr, single_stepping); } + LocationDescriptor AdvanceIT() const { + return SetIT(IT().Advance()); + } + LocationDescriptor SetSingleStepping(bool new_single_stepping) const { return LocationDescriptor(arm_pc, cpsr, fpscr, new_single_stepping); }