diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-05-08 02:29:35 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-05-08 02:29:35 -0700 |
| commit | 82844e22f1e1927b19978dafd5d2a96fc4ba018e (patch) | |
| tree | 508f89083d695454fa62de3163ba42a444f4a1ea | |
| parent | bf15d5cd2181e030234b399e9ced4a59447c1704 (diff) | |
oops, also needed mov-reg64-disp32-reg64
Force-Push: yes Change-Id: I352537e52cb12d1c96f84cdaa794bd854d8ab1aa
| -rw-r--r-- | quine.asm | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/quine.asm b/quine.asm index 6941bfb..e86e61c 100644 --- a/quine.asm +++ b/quine.asm @@ -50,7 +50,7 @@ ;;; of the overall file, find it by looking at the ASCII names, skip past the ;;; codeword, and do ie ;;; -;;; (gdb) disassemble/r 0x0x80007c0,+32 +;;; (gdb) disassemble/r 0x80007c0,+32 ;;; ;;; If you want to see the value stack, you can do ;;; @@ -4247,6 +4247,27 @@ cold_start: dq litstring, "exit", early_find, entry_to_execution_token, early_comma dq early_here, fetch, lit, 8, packalign, early_here_store + ; This was "mov_reg64_disp32_reg64". + dq litstring, "mov-reg64-disp32-reg64", early_create, early_docol_codeword + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 4, early_comma + dq litstring, "roll", early_find, entry_to_execution_token, early_comma + dq litstring, "rex-w", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0x89, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 4, early_comma + dq litstring, "unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "3roll", early_find, entry_to_execution_token, early_comma + dq litstring, "reg64", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "3roll", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-disp32-reg64", early_find + dq entry_to_execution_token, early_comma + dq litstring, "exit", early_find, entry_to_execution_token, early_comma + dq early_here, fetch, lit, 8, packalign, early_here_store + ; This was "mov_reg64_indexed_reg64". dq litstring, "mov-reg64-indexed-reg64", early_create, early_docol_codeword dq litstring, "lit", early_find, entry_to_execution_token, early_comma @@ -9997,6 +10018,17 @@ defword mov_reg64_disp8_reg64, 0 ; Stack: ; output point +; source register name +; source displacement value +; target register name +defword mov_reg64_disp32_reg64, 0 + dq docol + dq lit, 4, roll, rex_w, lit, 0x89, pack8, lit, 4, unroll + dq roll3, reg64, swap, roll3, addressing_disp32_reg64 + dq exit + +; Stack: +; output point ; source base register name ; source index register name ; source index scale factor, as a count of bytes |