A32/location_descriptor: Implement SetIT

This commit is contained in:
MerryMage 2021-02-07 14:18:03 +00:00
parent 5e75bd41a4
commit 1e29ef8b0e

View file

@ -88,13 +88,17 @@ public:
return LocationDescriptor(arm_pc, cpsr, A32::FPSCR{new_fpscr & FPSCR_MODE_MASK}, single_stepping); 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; 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); return LocationDescriptor(arm_pc, new_cpsr, fpscr, single_stepping);
} }
LocationDescriptor AdvanceIT() const {
return SetIT(IT().Advance());
}
LocationDescriptor SetSingleStepping(bool new_single_stepping) const { LocationDescriptor SetSingleStepping(bool new_single_stepping) const {
return LocationDescriptor(arm_pc, cpsr, fpscr, new_single_stepping); return LocationDescriptor(arm_pc, cpsr, fpscr, new_single_stepping);
} }