diff options
| author | Julian Blake Kongslie | 2022-10-31 19:14:05 -0700 |
|---|---|---|
| committer | Julian Blake Kongslie | 2022-10-31 19:14:05 -0700 |
| commit | 91ed230d8324cded1a5d82cf8f85d9d81af00956 (patch) | |
| tree | 393fad29edee7c13012ec7dd7628e6cfe8c62dc6 /isa/decode.cpp | |
| parent | TAD is 12-bit addition with carry-complements-link, not 13-bit addition (diff) | |
| download | biggolf-91ed230d8324cded1a5d82cf8f85d9d81af00956.tar.xz | |
Only use DF for addresses generated via indirection.
Diffstat (limited to '')
| -rw-r--r-- | isa/decode.cpp | 2 |
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; |
