summaryrefslogtreecommitdiff
path: root/isa/decode.cpp
diff options
context:
space:
mode:
authorJulian Blake Kongslie2022-10-31 19:14:05 -0700
committerJulian Blake Kongslie2022-10-31 19:14:05 -0700
commit91ed230d8324cded1a5d82cf8f85d9d81af00956 (patch)
tree393fad29edee7c13012ec7dd7628e6cfe8c62dc6 /isa/decode.cpp
parentTAD is 12-bit addition with carry-complements-link, not 13-bit addition (diff)
downloadbiggolf-91ed230d8324cded1a5d82cf8f85d9d81af00956.tar.xz
Only use DF for addresses generated via indirection.
Diffstat (limited to '')
-rw-r--r--isa/decode.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/isa/decode.cpp b/isa/decode.cpp
index af38c64..f183c1f 100644
--- a/isa/decode.cpp
+++ b/isa/decode.cpp
@@ -373,7 +373,7 @@ instruction_context decode(unsigned int dfifb, unsigned int pc, unsigned int bit
373 373
374 // Instructions with memory operands may be direct or indirect 374 // Instructions with memory operands may be direct or indirect
375 if (inst.need_exec_load || inst.need_exec_store || inst.possibly_redirects) { 375 if (inst.need_exec_load || inst.need_exec_store || inst.possibly_redirects) {
376 auto addr = (df << 12) | ((bits & 00200) ? (pc & 07600) : 0) | (bits & 00177); 376 auto addr = (pc & 070000) | ((bits & 00200) ? (pc & 07600) : 0) | (bits & 00177);
377 if (bits & 00400) { 377 if (bits & 00400) {
378 inst.need_indirect_load = true; 378 inst.need_indirect_load = true;
379 inst.init_address = addr; 379 inst.init_address = addr;