diff options
Diffstat (limited to '')
| -rw-r--r-- | isa/decode.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/isa/decode.cpp b/isa/decode.cpp index f0cdca8..abcb3e3 100644 --- a/isa/decode.cpp +++ b/isa/decode.cpp | |||
| @@ -88,15 +88,15 @@ instruction_context decode(std::uint_fast32_t flags, unsigned int pc, unsigned i | |||
| 88 | #pragma GCC diagnostic pop | 88 | #pragma GCC diagnostic pop |
| 89 | 89 | ||
| 90 | instruction_context inst; | 90 | instruction_context inst; |
| 91 | inst.bits = bits; | ||
| 92 | inst.next_pc = (pc & ~07777) | ((pc + 1) & 07777); | ||
| 93 | |||
| 94 | if (interrupt) { | 91 | if (interrupt) { |
| 95 | inst.bits = bits = 04000; | 92 | inst.bits = bits = 04000; |
| 96 | assert(df == 0); | 93 | assert(df == 0); |
| 97 | assert(ifb == 0); | 94 | assert(ifb == 0); |
| 98 | inst.next_pc = pc; | 95 | inst.next_pc = pc; |
| 99 | pc = 0; | 96 | pc = 0; |
| 97 | } else { | ||
| 98 | inst.bits = bits; | ||
| 99 | inst.next_pc = (pc & ~07777) | ((pc + 1) & 07777); | ||
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | switch (bits >> 9) { | 102 | switch (bits >> 9) { |
