diff options
| -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 |