From fdb61389099cee41b86c25c3d1ddb660b509e5fa Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sat, 19 Nov 2022 16:29:27 -0800 Subject: Pipelined microarchitecture, which even almost works! Includes such horrors as the "unstore" operation for undoing autoincremented addresses on instructions subsequently found to be bogus. --- isa/decode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'isa/decode.cpp') diff --git a/isa/decode.cpp b/isa/decode.cpp index 061fe5c..f0cdca8 100644 --- a/isa/decode.cpp +++ b/isa/decode.cpp @@ -92,7 +92,7 @@ instruction_context decode(std::uint_fast32_t flags, unsigned int pc, unsigned i inst.next_pc = (pc & ~07777) | ((pc + 1) & 07777); if (interrupt) { - bits = 04000; + inst.bits = bits = 04000; assert(df == 0); assert(ifb == 0); inst.next_pc = pc; @@ -146,7 +146,7 @@ instruction_context decode(std::uint_fast32_t flags, unsigned int pc, unsigned i case 4: // JMS jump subroutine inst.need_exec_store = true; inst.possibly_redirects = true; - inst.df = "JMS %a"; + inst.df = interrupt ? " JMS %a" : "JMS %a"; inst.ef = [ifb](auto &ctx) { ctx.data = ctx.next_pc; ctx.next_pc = (ifb << 12) | ((ctx.final_address.value() + 1) & 07777); -- cgit v1.2.3