diff --git a/src/instruction.cpp b/src/instruction.cpp index 19921b48..e85b3f1b 100644 --- a/src/instruction.cpp +++ b/src/instruction.cpp @@ -281,11 +281,11 @@ void Instruction::executeOn(Warp &c) { break; case ISNEG: pReg[pdest] = (1ll<<(wordSz*8 - 1))®[rsrc[0]]; break; - case HALT: D(3, "=== EXECUTING halt ==="); - c.activeThreads = 0; + case HALT: c.activeThreads = 0; nextActiveThreads = 0; break; case TRAP: c.interrupt(0); + nextPc = c.core->interruptEntry; break; case JMPRU: c.supervisorMode = false; if (!pcSet) nextPc = reg[rsrc[0]];