From 82844e22f1e1927b19978dafd5d2a96fc4ba018e Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Fri, 8 May 2026 02:29:35 -0700 Subject: oops, also needed mov-reg64-disp32-reg64 Force-Push: yes Change-Id: I352537e52cb12d1c96f84cdaa794bd854d8ab1aa --- quine.asm | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) 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 @@ -9995,6 +10016,17 @@ defword mov_reg64_disp8_reg64, 0 dq reg64, unroll3, addressing_disp8_reg64 dq exit +; 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 -- cgit 1.4.1