diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-04-12 22:58:59 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-04-12 22:58:59 -0700 |
| commit | 912b8798482cd786a2ffe4db93be205f5b7d05d2 (patch) | |
| tree | 43ffc2c978a5673a6aabf5a49b3397be8b2d6935 | |
| parent | 1b0cb166132908a90678c7b7cc6789e1d1b2c5bb (diff) | |
add heap implementations of all remaining Forth-assembly instructions
also there was some missing string termination in the previous ones Force-Push: yes Change-Id: I8aebc8569a99a7534ffa3e457020327c3e124ddd
| -rw-r--r-- | quine.asm | 463 |
1 files changed, 460 insertions, 3 deletions
diff --git a/quine.asm b/quine.asm index cae2a89..05e3fb3 100644 --- a/quine.asm +++ b/quine.asm @@ -3977,7 +3977,7 @@ cold_start: dq litstring, "lit", early_find, entry_to_execution_token, early_comma dq lit, 0, early_comma dq litstring, "swap", early_find, entry_to_execution_token, early_comma - dq litstring, "addressing-reg64", early_find, entry_to_execution_token + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token dq early_comma dq litstring, "swap", early_find, entry_to_execution_token, early_comma dq litstring, "pack32", early_find, entry_to_execution_token, early_comma @@ -4024,7 +4024,7 @@ cold_start: dq litstring, "swap", 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, "addressing-reg64", early_find, entry_to_execution_token + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token dq early_comma dq litstring, "exit", early_find, entry_to_execution_token, early_comma dq early_here, fetch, lit, 8, packalign, early_here_store @@ -4977,6 +4977,463 @@ 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 "add_reg64_reg64". + dq litstring, "add-reg64-reg64", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x01, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "add_indirect_reg64_reg64". + dq litstring, "add-indirect-reg64-reg64", 0, early_create + dq early_docol_codeword + dq litstring, "3roll", 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, 0x01, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "addressing-indirect-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 "add_reg64_indirect_reg64". + dq litstring, "add-reg64-indirect-reg64", 0, early_create + dq early_docol_codeword + dq litstring, "3roll", 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, 0x03, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "addressing-indirect-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 "add_reg64_imm8". + dq litstring, "add-reg64-imm8", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x83, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack8", early_find, 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 "sub_reg64_reg64". + dq litstring, "sub-reg64-reg64", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x2B, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "sub_indirect_reg64_reg64". + dq litstring, "sub-indirect-reg64-reg64", 0, early_create + dq early_docol_codeword + dq litstring, "3roll", 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, 0x2B, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "addressing-indirect-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 "sub_reg64_imm8". + dq litstring, "sub-reg64-imm8", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x83, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 5, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack8", early_find, 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 "sbb_reg64_imm8". + dq litstring, "sbb-reg64-imm8", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x83, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 3, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack8", early_find, 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 "mul_reg64". + dq litstring, "mul-reg64", early_create, early_docol_codeword + dq litstring, "swap", 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, 0xF7, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "divmod_reg64". + dq litstring, "divmod-reg64", early_create, early_docol_codeword + dq litstring, "swap", 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, 0xF7, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 6, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "idivmod_reg64". + dq litstring, "idivmod-reg64", early_create, early_docol_codeword + dq litstring, "swap", 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, 0xF7, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 7, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "inc_reg64". + dq litstring, "inc-reg64", early_create, early_docol_codeword + dq litstring, "swap", 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, 0xFF, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "dec_reg64". + dq litstring, "dec-reg64", early_create, early_docol_codeword + dq litstring, "swap", 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, 0xFF, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 1, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "and_reg64_reg64". + dq litstring, "and-reg64-reg64", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x23, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", 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, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "and_reg64_imm8". + dq litstring, "and-reg64-imm8", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x83, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack8", early_find, 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 "or_reg64_reg64". + dq litstring, "or-reg64-reg64", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x0B, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", 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, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "or_reg64_imm8". + dq litstring, "or-reg64-imm8", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x83, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 1, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack8", early_find, 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 "xor_reg64_reg64". + dq litstring, "xor-reg64-reg64", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x33, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", 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, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "not_reg64". + dq litstring, "not-reg64", early_create, early_docol_codeword + dq litstring, "swap", 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, 0xF7, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 2, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "cmp_reg64_reg64". + dq litstring, "cmp-reg64-reg64", early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x3B, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "test_reg64_reg64". + dq litstring, "test-reg64-reg64", 0, early_create, early_docol_codeword + dq litstring, "3roll", 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, 0x85, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "addressing-reg64", 0, early_find, entry_to_execution_token + dq 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 "set_reg8_cc". + dq litstring, "set-reg8-cc", early_create, early_docol_codeword + dq litstring, "3roll", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0x0F, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "3roll", early_find, entry_to_execution_token, early_comma + dq litstring, "conditioncode", early_find, entry_to_execution_token + dq early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0x90, early_comma + dq litstring, "opcodecc", 0, early_find, entry_to_execution_token + dq early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "reg8", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 3, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0, early_comma + dq litstring, "3roll", early_find, entry_to_execution_token, early_comma + dq litstring, "modrm", early_find, 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 "jmp_cc_rel_imm8". + dq litstring, "jmp-cc-rel-imm8", early_create, early_docol_codeword + dq litstring, "3roll", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "conditioncode", early_find, entry_to_execution_token + dq early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0x70, early_comma + dq litstring, "opcodecc", 0, early_find, entry_to_execution_token + dq early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack8", early_find, 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 "jmp_cc_rel_imm32". + dq litstring, "jmp-cc-rel-imm32", 0, early_create, early_docol_codeword + dq litstring, "3unroll", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0x0F, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "conditioncode", early_find, entry_to_execution_token + dq early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0x70, early_comma + dq litstring, "opcodecc", 0, early_find, entry_to_execution_token + dq early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack32", early_find, 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 "jmp_abs_indirect_reg64". + dq litstring, "jmp-abs-indirect-reg64", early_create, early_docol_codeword + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0xFF, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", 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, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "addressing-indirect-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 "jmp_rel_imm8". + dq litstring, "jmp-rel-imm8", early_create, early_docol_codeword + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0xEB, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack8", early_find, 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 "jmp_rel_imm32". + dq litstring, "jmp-rel-imm32", early_create, early_docol_codeword + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0xE9, early_comma + dq litstring, "pack8", early_find, entry_to_execution_token, early_comma + dq litstring, "swap", early_find, entry_to_execution_token, early_comma + dq litstring, "pack32", early_find, 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 + + dq litstring, "syscall", early_create, early_docol_codeword + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0x0F, 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, 0x05, early_comma + dq litstring, "pack8", early_find, 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 + + dq litstring, "hlt", early_create, early_docol_codeword + dq litstring, "lit", early_find, entry_to_execution_token, early_comma + dq lit, 0xF4, early_comma + dq litstring, "pack8", early_find, 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 + dq early_describe_all, lit, 0, sys_exit ;;; For triage's sake, here's an inventory of everything else in the file. @@ -5071,7 +5528,6 @@ cold_start: ;;; scas8, scas16, scas32, scas64, ;;; repz_scas8, repz_scas16, repz_scas32, repz_scas64, ;;; repnz_scas8, repnz_scas16, repnz_scas32, repnz_scas64, - ;;; TODO this is as far as the copy-to-heap implementations have gotten ;;; add_reg64_reg64, add_indirect_reg64_reg64, add_reg64_indirect_reg64, ;;; add_reg64_imm8, ;;; sub_reg64_reg64, sub_indirect_reg64_reg64, @@ -5086,6 +5542,7 @@ cold_start: ;;; jmp_abs_indirect_reg64, jmp_rel_imm8, jmp_rel_imm32, ;;; syscall, hlt ;;; basics plus assembly helpers + ;;; TODO this is as far as the copy-to-heap implementations have gotten ;;; pack_next, pack_beforenext, pack_pushcontrol, pack_popcontrol, ;;; basics, assembly stuff ;;; entry_to_execution_token, execution_token_to_entry, |