diff --git a/src/Emulator/Peripherals/Peripherals/CPU/TranslationCPU.cs b/src/Emulator/Peripherals/Peripherals/CPU/TranslationCPU.cs index 3411f5f0d..7257e4a6c 100644 --- a/src/Emulator/Peripherals/Peripherals/CPU/TranslationCPU.cs +++ b/src/Emulator/Peripherals/Peripherals/CPU/TranslationCPU.cs @@ -432,6 +432,18 @@ public bool RequestTranslationBlockRestart(bool quiet = false) return pauseGuard.RequestTranslationBlockRestart(quiet); } + /// + /// Requests an abort of the currently executing instruction inside the + /// translation block. When is + /// true the CPU state is restored to the start of the faulting + /// instruction (PC points to it), modelling a synchronous precise fault + /// that can be retried. + /// + public void RequestTranslationBlockInterrupt(bool excludeLastInstruction) + { + TlibRequestTranslationBlockInterrupt(excludeLastInstruction ? 1 : 0); + } + public uint AssembleBlock(ulong addr, string instructions, string triple = null, bool alternateDialect = false) { if(Assembler == null)