Start using the new newline escape in string literals everywhere.

I could use it more aggressively, but it makes tests harder to read. So
only one line of text per string for now.
This commit is contained in:
Kartik Agaram 2019-04-13 22:30:25 -07:00
parent d2f360d85e
commit 0b91d25cf5
15 changed files with 162 additions and 911 deletions

View File

@ -345,25 +345,8 @@ test-next-stream-line-equal-stops-at-newline:
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
# write(_test-stream, "Abc\ndef")
# . write(_test-stream, "Abc")
# . . push args
68/push "Abc"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, "def")
# . . push args
68/push "def"/imm32
68/push "Abc\ndef"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
@ -403,25 +386,8 @@ test-next-stream-line-equal-stops-at-newline-2:
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
# write(_test-stream, "Abc\ndef")
# . write(_test-stream, "Abc")
# . . push args
68/push "Abc"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, "def")
# . . push args
68/push "def"/imm32
68/push "Abc\ndef"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
@ -461,33 +427,8 @@ test-next-stream-line-equal-skips-newline:
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
# write(_test-stream, "Abc\ndef\n")
# . write(_test-stream, "Abc")
# . . push args
68/push "Abc"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, "def")
# . . push args
68/push "def"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push "Abc\ndef\n"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
@ -535,25 +476,8 @@ test-next-stream-line-equal-handles-final-line:
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
# write(_test-stream, "Abc\ndef")
# . write(_test-stream, "Abc")
# . . push args
68/push "Abc"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, "def")
# . . push args
68/push "def"/imm32
68/push "Abc\ndef"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32

View File

@ -103,15 +103,7 @@ $read-line:end:
$read-line:abort:
# . _write(2/stderr, error)
# . . push args
68/push "read-line: line too long"/imm32
68/push 2/imm32/stderr
# . . call
e8/call _write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . _write(2/stderr, Newline)
# . . push args
68/push Newline/imm32
68/push "read-line: line too long\n"/imm32
68/push 2/imm32/stderr
# . . call
e8/call _write/disp32
@ -150,25 +142,8 @@ test-read-line:
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
# write(_test-stream, "ab\ncd")
# . write(_test-stream, "ab")
# . . push args
68/push "ab"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, "cd")
# . . push args
68/push "cd"/imm32
68/push "ab\ncd"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32

View File

@ -946,17 +946,9 @@ test-slice-to-string:
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32

Binary file not shown.

View File

@ -183,81 +183,41 @@ test-convert:
# 8 9 (multiple lines)
# == code (existing segment contiguous with previous iteration)
# 10 11
# . write(_test-input-stream, "# comment 1")
# . write(_test-input-stream, "# comment 1\n")
# . . push args
68/push "# comment 1"/imm32
68/push "# comment 1\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, " # comment 2 indented\n")
# . . push args
68/push Newline/imm32
68/push " # comment 2 indented\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, " # comment 2 indented")
# . write(_test-input-stream, "== code\n")
# . . push args
68/push " # comment 2 indented"/imm32
68/push "== code\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, "# comment 3 inside a segment\n")
# . . push args
68/push Newline/imm32
68/push "# comment 3 inside a segment\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "== code")
# . write(_test-input-stream, "1\n")
# . . push args
68/push "== code"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "# comment 3 inside a segment")
# . . push args
68/push "# comment 3 inside a segment"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "1")
# . . push args
68/push "1"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push "1\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
@ -265,135 +225,71 @@ test-convert:
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n") # empty line
# . . push args
68/push Newline/imm32
68/push "\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "2 3 # comment 4 inline with other contents")
# . write(_test-input-stream, "2 3 # comment 4 inline with other contents\n")
# . . push args
68/push "2 3 # comment 4 inline with other contents"/imm32
68/push "2 3 # comment 4 inline with other contents\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, "== data\n")
# . . push args
68/push Newline/imm32
68/push "== data\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "== data")
# . write(_test-input-stream, "4 5/imm32\n")
# . . push args
68/push "== data"/imm32
68/push "4 5/imm32\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, "== code\n")
# . . push args
68/push Newline/imm32
68/push "== code\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "4 5/imm32")
# . write(_test-input-stream, "6 7\n")
# . . push args
68/push "4 5/imm32"/imm32
68/push "6 7\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, "8 9\n")
# . . push args
68/push Newline/imm32
68/push "8 9\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "== code")
# . write(_test-input-stream, "== code\n")
# . . push args
68/push "== code"/imm32
68/push "== code\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, "10 11\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "6 7")
# . . push args
68/push "6 7"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "8 9")
# . . push args
68/push "8 9"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "== code")
# . . push args
68/push "== code"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "10 11")
# . . push args
68/push "10 11"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push "10 11\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
@ -433,17 +329,9 @@ test-convert:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -620,17 +508,9 @@ $read-segments:check0:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -701,17 +581,9 @@ $read-segments:check-for-segment-header:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -773,17 +645,9 @@ $read-segments:check-for-segment-header:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -1071,15 +935,7 @@ $test-get-or-insert-segment:first-call:
# fail test
# . _write(2/stderr, msg)
# . . push args
68/push "F - test-get-or-insert-segment/0"/imm32
68/push 2/imm32/stderr
# . . call
e8/call _write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . _write(2/stderr, Newline)
# . . push args
68/push Newline/imm32
68/push "F - test-get-or-insert-segment/0\n"/imm32
68/push 2/imm32/stderr
# . . call
e8/call _write/disp32

Binary file not shown.

View File

@ -154,33 +154,17 @@ compile: # in : (address buffered-file), out : fd or (address stream), err : fd
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(out, "b8/copy-to-EAX 1/imm32/exit")
# . write(out, "b8/copy-to-EAX 1/imm32/exit\n")
# . . push args
68/push "b8/copy-to-EAX 1/imm32/exit"/imm32
68/push "b8/copy-to-EAX 1/imm32/exit\n"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(out, Newline)
# . write(out, "cd/syscall 0x80/imm8\n")
# . . push args
68/push Newline/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(out, "cd/syscall 0x80/imm8")
# . . push args
68/push "cd/syscall 0x80/imm8"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(out, Newline)
# . . push args
68/push Newline/imm32
68/push "cd/syscall 0x80/imm8\n"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
@ -502,15 +486,7 @@ expected: # ed : (address exit-descriptor), f : fd or (address stream), s : (ad
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# write(f, " expected")
# . . push args
68/push " expected"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# write(f, Newline)
# . . push args
68/push Newline/imm32
68/push " expected\n"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32

Binary file not shown.

View File

@ -154,33 +154,17 @@ compile: # in : (address buffered-file), out : fd or (address stream), err : fd
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(out, "b8/copy-to-EAX 1/imm32/exit")
# . write(out, "b8/copy-to-EAX 1/imm32/exit\n")
# . . push args
68/push "b8/copy-to-EAX 1/imm32/exit"/imm32
68/push "b8/copy-to-EAX 1/imm32/exit\n"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(out, Newline)
# . write(out, "cd/syscall 0x80/imm8\n")
# . . push args
68/push Newline/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(out, "cd/syscall 0x80/imm8")
# . . push args
68/push "cd/syscall 0x80/imm8"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(out, Newline)
# . . push args
68/push Newline/imm32
68/push "cd/syscall 0x80/imm8\n"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
@ -699,17 +683,9 @@ expected: # ed : (address exit-descriptor), f : fd or (address stream), s : (ad
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# write(f, " expected")
# write(f, " expected\n")
# . . push args
68/push " expected"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# write(f, Newline)
# . . push args
68/push Newline/imm32
68/push " expected\n"/imm32
ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 . # push *(EBP+12)
# . . call
e8/call write/disp32

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -810,15 +810,7 @@ test-scan-next-byte-skips-comment:
# initialize '_test-stream' to input with leading comment
# . write(_test-stream, comment)
# . . push args
68/push "#x"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push "#x\n"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
@ -928,15 +920,7 @@ test-scan-next-byte-skips-comment-and-whitespace:
# initialize '_test-stream' to input with leading comment and more whitespace after newline
# . write(_test-stream, comment)
# . . push args
68/push "#x"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push "#x\n"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
@ -1046,15 +1030,7 @@ test-scan-next-byte-skips-whitespace-and-comment:
# initialize '_test-stream' to input with leading whitespace and comment
# . write(_test-stream, comment)
# . . push args
68/push " #x"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push " #x\n"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
@ -1466,15 +1442,7 @@ test-skip-until-newline:
# initialize '_test-stream' to "abc\nde"
# . write(_test-stream, "abc")
# . . push args
68/push "abc"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-stream, Newline)
# . . push args
68/push Newline/imm32
68/push "abc\n"/imm32
68/push _test-stream/imm32
# . . call
e8/call write/disp32

Binary file not shown.

View File

@ -170,17 +170,9 @@ $convert:check0:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -241,17 +233,9 @@ $convert:check2:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -314,17 +298,9 @@ $convert:check2:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -676,47 +652,23 @@ test-convert-in-data-segment:
# 3 4/imm32
# . write(_test-input-stream, "== code")
# . . push args
68/push "== code"/imm32
68/push "== code\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, "== data\n")
# . . push args
68/push Newline/imm32
68/push "== data\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "== data")
# . write(_test-input-stream, "3 4/imm32\n")
# . . push args
68/push "== data"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "3 4/imm32")
# . . push args
68/push "3 4/imm32"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push "3 4/imm32\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
@ -748,17 +700,9 @@ test-convert-in-data-segment:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -848,81 +792,41 @@ test-convert-code-and-data-segments:
# 68/push 0x20/imm8
# == data
# 3 4/imm32
# . write(_test-input-stream, "== code")
# . write(_test-input-stream, "== code\n")
# . . push args
68/push "== code"/imm32
68/push "== code\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, "e8/call 20/disp32\n")
# . . push args
68/push Newline/imm32
68/push "e8/call 20/disp32\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "e8/call 20/disp32")
# . write(_test-input-stream, "68/push 0x20/imm8\n")
# . . push args
68/push "e8/call 20/disp32"/imm32
68/push "68/push 0x20/imm8\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . write(_test-input-stream, "== data\n")
# . . push args
68/push Newline/imm32
68/push "== data\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "68/push 0x20/imm8")
# . write(_test-input-stream, "3 4/imm32\n")
# . . push args
68/push "68/push 0x20/imm8"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "== data")
# . . push args
68/push "== data"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "3 4/imm32")
# . . push args
68/push "3 4/imm32"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
# . . discard args
81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
# . write(_test-input-stream, "\n")
# . . push args
68/push Newline/imm32
68/push "3 4/imm32\n"/imm32
68/push _test-input-stream/imm32
# . . call
e8/call write/disp32
@ -959,17 +863,9 @@ test-convert-code-and-data-segments:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -1080,17 +976,9 @@ convert-data: # line : (address stream byte), out : (address buffered-file) ->
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -1139,17 +1027,9 @@ $convert-data:loop:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -1329,17 +1209,9 @@ test-convert-data-passes-comments-through:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -1841,17 +1713,9 @@ test-convert-data-multiple-words:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -1943,17 +1807,9 @@ test-convert-data-trailing-comment:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -2497,17 +2353,9 @@ $emit-modrm:loop:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -2555,17 +2403,9 @@ $emit-modrm:loop:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -2824,17 +2664,9 @@ $emit-sib:loop:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -2882,17 +2714,9 @@ $emit-sib:loop:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -3104,17 +2928,9 @@ emit-disp: # line : (address stream byte), out : (address buffered-file) -> <vo
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -3163,17 +2979,9 @@ $emit-disp:loop:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -3341,17 +3149,9 @@ emit-imm: # line : (address stream byte), out : (address buffered-file) -> <voi
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -3400,17 +3200,9 @@ $emit-imm:loop:
#? e8/call flush/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -3758,17 +3550,9 @@ test-convert-instruction-handles-single-opcode:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -3860,17 +3644,9 @@ test-convert-instruction-handles-0f-opcode:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -3962,17 +3738,9 @@ test-convert-instruction-handles-f2-opcode:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4064,17 +3832,9 @@ test-convert-instruction-handles-f3-opcode:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4166,17 +3926,9 @@ test-convert-instruction-handles-f2-0f-opcode:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4268,17 +4020,9 @@ test-convert-instruction-handles-f3-0f-opcode:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4370,17 +4114,9 @@ test-convert-instruction-handles-unused-opcodes:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4472,17 +4208,9 @@ test-convert-instruction-handles-unused-second-opcodes:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4574,17 +4302,9 @@ test-convert-instruction-handles-unused-second-opcodes-2:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4676,17 +4396,9 @@ test-convert-instruction-emits-modrm-byte:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4778,17 +4490,9 @@ test-convert-instruction-emits-modrm-byte-from-subop:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4880,17 +4584,9 @@ test-convert-instruction-emits-modrm-byte-with-missing-mod:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -4982,17 +4678,9 @@ test-convert-instruction-emits-modrm-byte-with-missing-rm32:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5084,17 +4772,9 @@ test-convert-instruction-emits-modrm-byte-with-missing-r32:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5186,17 +4866,9 @@ test-convert-instruction-emits-sib-byte:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5288,17 +4960,9 @@ test-convert-instruction-emits-sib-byte-with-missing-base:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5390,17 +5054,9 @@ test-convert-instruction-emits-sib-byte-with-missing-index:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5492,17 +5148,9 @@ test-convert-instruction-emits-sib-byte-with-missing-scale:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5594,17 +5242,9 @@ test-convert-instruction-handles-disp32-operand:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5696,17 +5336,9 @@ test-convert-instruction-handles-disp16-operand:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5798,17 +5430,9 @@ test-convert-instruction-handles-disp8-operand:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -5900,17 +5524,9 @@ test-convert-instruction-handles-disp8-name:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -6002,17 +5618,9 @@ test-convert-instruction-handles-imm32-operand:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -6105,17 +5713,9 @@ test-convert-instruction-handles-imm16-operand:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -6208,17 +5808,9 @@ test-convert-instruction-handles-imm8-operand:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
@ -6934,17 +6526,9 @@ test-emit-non-number-with-all-hex-digits-and-metadata:
#? e8/call write-stream/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "$")
#? # . write(2/stderr, "$\n")
#? # . . push args
#? 68/push "$"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32
#? # . . discard args
#? 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP
#? # . write(2/stderr, "\n")
#? # . . push args
#? 68/push Newline/imm32
#? 68/push "$\n"/imm32
#? 68/push 2/imm32/stderr
#? # . . call
#? e8/call write/disp32