about summary refs log tree commit diff stats
path: root/html
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-11-18 12:50:01 -0800
committerKartik Agaram <vc@akkartik.com>2019-11-18 12:50:01 -0800
commit6488bfcf851023e1b8e84be6ebbb793f895f3d0f (patch)
tree6e279f6850a7f9c0ccf77c1d6549892c8d5fffb9 /html
parent442fdabe305fa35bf1649a072b9a7b3b87cd50e9 (diff)
downloadmu-6488bfcf851023e1b8e84be6ebbb793f895f3d0f.tar.gz
5753
Binaries are now identical again.
There's a little hack here that we should clean up at some point. But it
requires more thought.

Ordering compiler phases is hard. So far we're only at the start of the
slippery slope into that abyss.
Diffstat (limited to 'html')
-rw-r--r--html/apps/assort.subx.html12
-rw-r--r--html/apps/dquotes.subx.html2999
2 files changed, 1510 insertions, 1501 deletions
diff --git a/html/apps/assort.subx.html b/html/apps/assort.subx.html
index 75b3a55c..4e637061 100644
--- a/html/apps/assort.subx.html
+++ b/html/apps/assort.subx.html
@@ -473,13 +473,13 @@ if ('onhashchange' in window) {
 <span id="L459" class="LineNr">459 </span>    <span class="subxComment">#     clear-stream(line)</span>
 <span id="L460" class="LineNr">460 </span>    <span class="subxComment">#     read-line-buffered(in, line)</span>
 <span id="L461" class="LineNr">461 </span>    <span class="subxComment">#     if (line-&gt;write == 0) break             # end of file</span>
-<span id="L462" class="LineNr">462 </span>    <span class="subxComment">#     var word-slice = next-word(line)</span>
+<span id="L462" class="LineNr">462 </span>    <span class="subxComment">#     var word-slice = next-word-or-string(line)</span>
 <span id="L463" class="LineNr">463 </span>    <span class="subxComment">#     if slice-empty?(word-slice)             # whitespace</span>
 <span id="L464" class="LineNr">464 </span>    <span class="subxComment">#       continue</span>
 <span id="L465" class="LineNr">465 </span>    <span class="subxComment">#     if slice-starts-with?(word-slice, &quot;#&quot;)  # comment</span>
 <span id="L466" class="LineNr">466 </span>    <span class="subxComment">#       continue</span>
 <span id="L467" class="LineNr">467 </span>    <span class="subxComment">#     if slice-equal?(word-slice, &quot;==&quot;)</span>
-<span id="L468" class="LineNr">468 </span>    <span class="subxComment">#       var segment-name = next-word(line)</span>
+<span id="L468" class="LineNr">468 </span>    <span class="subxComment">#       var segment-name = next-word-or-string(line)</span>
 <span id="L469" class="LineNr">469 </span>    <span class="subxComment">#       segment-slot = leaky-get-or-insert-slice(table, segment-name, row-size=8)</span>
 <span id="L470" class="LineNr">470 </span>    <span class="subxComment">#       curr-segment = *segment-slot</span>
 <span id="L471" class="LineNr">471 </span>    <span class="subxComment">#       if curr-segment != 0</span>
@@ -539,12 +539,12 @@ if ('onhashchange' in window) {
 <span id="L525" class="LineNr">525 </span>    81          7/subop/compare     0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0/imm32           <span class="subxComment"># compare *ecx</span>
 <span id="L526" class="LineNr">526 </span>    0f 84/jump-if-equal  $read-segments:<span class="Constant">break</span>/disp32
 <span id="L527" class="Folded">527 </span><span class="Folded">+-- 33 lines: #?     # dump line -----------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L560" class="LineNr">560 </span>    <span class="subxComment"># next-word(line, word-slice)</span>
+<span id="L560" class="LineNr">560 </span>    <span class="subxComment"># next-word-or-string(line, word-slice)</span>
 <span id="L561" class="LineNr">561 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L562" class="LineNr">562 </span>    52/push-edx
 <span id="L563" class="LineNr">563 </span>    51/push-ecx
 <span id="L564" class="LineNr">564 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L565" class="LineNr">565 </span>    e8/call  <a href='../076next-word.subx.html#L10'>next-word</a>/disp32
+<span id="L565" class="LineNr">565 </span>    e8/call  <a href='../094next-word-or-string.subx.html#L8'>next-word-or-string</a>/disp32
 <span id="L566" class="LineNr">566 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L567" class="LineNr">567 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
 <span id="L568" class="LineNr">568 </span><span class="Constant">$read-segments:check1</span>:
@@ -586,12 +586,12 @@ if ('onhashchange' in window) {
 <span id="L667" class="LineNr">667 </span>    <span class="subxS1Comment"># . if (eax == 0) goto check3</span>
 <span id="L668" class="LineNr">668 </span>    3d/compare-eax-and  0/imm32
 <span id="L669" class="LineNr">669 </span>    0f 84/jump-if-equal  $read-segments:regular-line/disp32
-<span id="L670" class="LineNr">670 </span>    <span class="subxComment"># segment-name = next-word(line)</span>
+<span id="L670" class="LineNr">670 </span>    <span class="subxComment"># segment-name = next-word-or-string(line)</span>
 <span id="L671" class="LineNr">671 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L672" class="LineNr">672 </span>    52/push-edx
 <span id="L673" class="LineNr">673 </span>    51/push-ecx
 <span id="L674" class="LineNr">674 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L675" class="LineNr">675 </span>    e8/call  <a href='../076next-word.subx.html#L10'>next-word</a>/disp32
+<span id="L675" class="LineNr">675 </span>    e8/call  <a href='../094next-word-or-string.subx.html#L8'>next-word-or-string</a>/disp32
 <span id="L676" class="LineNr">676 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L677" class="LineNr">677 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
 <span id="L678" class="Folded">678 </span><span class="Folded">+-- 40 lines: #?     # dump segment name ---------------------------------------------------------------------------------------------------------------------</span>
diff --git a/html/apps/dquotes.subx.html b/html/apps/dquotes.subx.html
index 0b26ede2..6c3cb607 100644
--- a/html/apps/dquotes.subx.html
+++ b/html/apps/dquotes.subx.html
@@ -149,1627 +149,1636 @@ if ('onhashchange' in window) {
 <span id="L86" class="LineNr">  86 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L87" class="LineNr">  87 </span>    <span class="subxComment">#   var line : (stream byte 512)</span>
 <span id="L88" class="LineNr">  88 </span>    <span class="subxComment">#   var new-data-segment : (handle stream byte) = new-stream(Heap, Segment-size, 1)</span>
-<span id="L89" class="LineNr">  89 </span>    <span class="subxComment">#   write(new-data-segment, &quot;== data\n&quot;)</span>
-<span id="L90" class="LineNr">  90 </span>    <span class="subxComment">#   while true</span>
-<span id="L91" class="LineNr">  91 </span>    <span class="subxComment">#     clear-stream(line)</span>
-<span id="L92" class="LineNr">  92 </span>    <span class="subxComment">#     read-line-buffered(in, line)</span>
-<span id="L93" class="LineNr">  93 </span>    <span class="subxComment">#     if (line-&gt;write == 0) break               # end of file</span>
-<span id="L94" class="LineNr">  94 </span>    <span class="subxComment">#     while true</span>
-<span id="L95" class="LineNr">  95 </span>    <span class="subxComment">#       var word-slice = next-word-or-string(line)</span>
-<span id="L96" class="LineNr">  96 </span>    <span class="subxComment">#       if slice-empty?(word-slice)             # end of line</span>
-<span id="L97" class="LineNr">  97 </span>    <span class="subxComment">#         break</span>
-<span id="L98" class="LineNr">  98 </span>    <span class="subxComment">#       if slice-starts-with?(word-slice, &quot;#&quot;)  # comment</span>
-<span id="L99" class="LineNr">  99 </span>    <span class="subxComment">#         continue</span>
-<span id="L100" class="LineNr"> 100 </span>    <span class="subxComment">#       if slice-starts-with?(word-slice, '&quot;')  # string literal &lt;== what we're here for</span>
-<span id="L101" class="LineNr"> 101 </span>    <span class="subxComment">#         process-string-literal(word-slice, out, new-data-segment)</span>
-<span id="L102" class="LineNr"> 102 </span>    <span class="subxComment">#       else</span>
-<span id="L103" class="LineNr"> 103 </span>    <span class="subxComment">#         write-slice-buffered(out, word-slice)</span>
-<span id="L104" class="LineNr"> 104 </span>    <span class="subxComment">#       write(out, &quot; &quot;)</span>
-<span id="L105" class="LineNr"> 105 </span>    <span class="subxComment">#     write(out, &quot;\n\n&quot;)</span>
-<span id="L106" class="LineNr"> 106 </span>    <span class="subxComment">#   write-stream-data(out, new-data-segment)</span>
-<span id="L107" class="LineNr"> 107 </span>    <span class="subxComment">#   flush(out)</span>
-<span id="L108" class="LineNr"> 108 </span>    <span class="subxComment">#</span>
-<span id="L109" class="LineNr"> 109 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L110" class="LineNr"> 110 </span>    55/push-ebp
-<span id="L111" class="LineNr"> 111 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L112" class="LineNr"> 112 </span>    <span class="subxS1Comment"># . save registers</span>
-<span id="L113" class="LineNr"> 113 </span>    50/push-eax
-<span id="L114" class="LineNr"> 114 </span>    51/push-ecx
-<span id="L115" class="LineNr"> 115 </span>    52/push-edx
-<span id="L116" class="LineNr"> 116 </span>    53/push-ebx
-<span id="L117" class="LineNr"> 117 </span>    56/push-esi
-<span id="L118" class="LineNr"> 118 </span>    57/push-edi
-<span id="L119" class="LineNr"> 119 </span>    <span class="subxComment"># var line/ecx : (address stream byte) = stream(512)</span>
-<span id="L120" class="LineNr"> 120 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x200/imm32       <span class="subxComment"># subtract from esp</span>
-<span id="L121" class="LineNr"> 121 </span>    68/push  0x200/imm32/length
-<span id="L122" class="LineNr"> 122 </span>    68/push  0/imm32/read
-<span id="L123" class="LineNr"> 123 </span>    68/push  0/imm32/write
-<span id="L124" class="LineNr"> 124 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L125" class="LineNr"> 125 </span>    <span class="subxComment"># var word-slice/edx = {0, 0}</span>
-<span id="L126" class="LineNr"> 126 </span>    68/push  0/imm32/end
-<span id="L127" class="LineNr"> 127 </span>    68/push  0/imm32/start
-<span id="L128" class="LineNr"> 128 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
-<span id="L129" class="LineNr"> 129 </span>    <span class="subxComment"># new-data-segment/edi = new-stream(Heap, Segment-size, 1)</span>
-<span id="L130" class="LineNr"> 130 </span>    <span class="subxS1Comment"># . eax = new-stream(Heap, Segment-size, 1)</span>
-<span id="L131" class="LineNr"> 131 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L132" class="LineNr"> 132 </span>    68/push  1/imm32
-<span id="L133" class="LineNr"> 133 </span>    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar">Segment-size</span>/disp32               <span class="subxComment"># push *Segment-size</span>
-<span id="L134" class="LineNr"> 134 </span>    68/push  <span class="SpecialChar"><a href='../069allocate.subx.html#L22'>Heap</a></span>/imm32
-<span id="L135" class="LineNr"> 135 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L136" class="LineNr"> 136 </span>    e8/call  <a href='../070new-stream.subx.html#L8'>new-stream</a>/disp32
-<span id="L137" class="LineNr"> 137 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L138" class="LineNr"> 138 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L139" class="LineNr"> 139 </span>    <span class="subxS1Comment"># . edi = eax</span>
-<span id="L140" class="LineNr"> 140 </span>    89/copy                         3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to edi</span>
-<span id="L141" class="LineNr"> 141 </span>    <span class="subxComment"># write(new-data-segment, &quot;== data\n&quot;)</span>
-<span id="L142" class="LineNr"> 142 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L143" class="LineNr"> 143 </span>    68/push  <span class="Constant">&quot;== data\n&quot;</span>/imm32
-<span id="L144" class="LineNr"> 144 </span>    57/push-edi
-<span id="L145" class="LineNr"> 145 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L146" class="LineNr"> 146 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L147" class="LineNr"> 147 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L148" class="LineNr"> 148 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L149" class="LineNr"> 149 </span><span class="Constant">$subx-dquotes:line-loop</span>:
-<span id="L150" class="LineNr"> 150 </span>    <span class="subxComment"># clear-stream(line)</span>
+<span id="L89" class="LineNr">  89 </span>    <span class="subxComment">#</span>
+<span id="L90" class="LineNr">  90 </span>    <span class="subxComment">#   write(new-data-segment, &quot;== data\n&quot;)</span>
+<span id="L91" class="LineNr">  91 </span>    <span class="subxComment">#      # TODO: When it was originally written dquotes ran before assort, so</span>
+<span id="L92" class="LineNr">  92 </span>    <span class="subxComment">#      # it assumes lots of segment headers, and emits a new segment of its</span>
+<span id="L93" class="LineNr">  93 </span>    <span class="subxComment">#      # own. We've since had to reorder the phases (see the explanation</span>
+<span id="L94" class="LineNr">  94 </span>    <span class="subxComment">#      # for a.assort2 in ntranslate). We could clean up a.assort2 if we</span>
+<span id="L95" class="LineNr">  95 </span>    <span class="subxComment">#      # conditionally emit the previous line. But this would require</span>
+<span id="L96" class="LineNr">  96 </span>    <span class="subxComment">#      # teaching dquotes to parse segment headers, so maybe that's not</span>
+<span id="L97" class="LineNr">  97 </span>    <span class="subxComment">#      # best..</span>
+<span id="L98" class="LineNr">  98 </span>    <span class="subxComment">#</span>
+<span id="L99" class="LineNr">  99 </span>    <span class="subxComment">#   while true</span>
+<span id="L100" class="LineNr"> 100 </span>    <span class="subxComment">#     clear-stream(line)</span>
+<span id="L101" class="LineNr"> 101 </span>    <span class="subxComment">#     read-line-buffered(in, line)</span>
+<span id="L102" class="LineNr"> 102 </span>    <span class="subxComment">#     if (line-&gt;write == 0) break               # end of file</span>
+<span id="L103" class="LineNr"> 103 </span>    <span class="subxComment">#     while true</span>
+<span id="L104" class="LineNr"> 104 </span>    <span class="subxComment">#       var word-slice = next-word-or-string(line)</span>
+<span id="L105" class="LineNr"> 105 </span>    <span class="subxComment">#       if slice-empty?(word-slice)             # end of line</span>
+<span id="L106" class="LineNr"> 106 </span>    <span class="subxComment">#         break</span>
+<span id="L107" class="LineNr"> 107 </span>    <span class="subxComment">#       if slice-starts-with?(word-slice, &quot;#&quot;)  # comment</span>
+<span id="L108" class="LineNr"> 108 </span>    <span class="subxComment">#         continue</span>
+<span id="L109" class="LineNr"> 109 </span>    <span class="subxComment">#       if slice-starts-with?(word-slice, '&quot;')  # string literal &lt;== what we're here for</span>
+<span id="L110" class="LineNr"> 110 </span>    <span class="subxComment">#         process-string-literal(word-slice, out, new-data-segment)</span>
+<span id="L111" class="LineNr"> 111 </span>    <span class="subxComment">#       else</span>
+<span id="L112" class="LineNr"> 112 </span>    <span class="subxComment">#         write-slice-buffered(out, word-slice)</span>
+<span id="L113" class="LineNr"> 113 </span>    <span class="subxComment">#       write(out, &quot; &quot;)</span>
+<span id="L114" class="LineNr"> 114 </span>    <span class="subxComment">#     write(out, &quot;\n\n&quot;)</span>
+<span id="L115" class="LineNr"> 115 </span>    <span class="subxComment">#   write-stream-data(out, new-data-segment)</span>
+<span id="L116" class="LineNr"> 116 </span>    <span class="subxComment">#   flush(out)</span>
+<span id="L117" class="LineNr"> 117 </span>    <span class="subxComment">#</span>
+<span id="L118" class="LineNr"> 118 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L119" class="LineNr"> 119 </span>    55/push-ebp
+<span id="L120" class="LineNr"> 120 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L121" class="LineNr"> 121 </span>    <span class="subxS1Comment"># . save registers</span>
+<span id="L122" class="LineNr"> 122 </span>    50/push-eax
+<span id="L123" class="LineNr"> 123 </span>    51/push-ecx
+<span id="L124" class="LineNr"> 124 </span>    52/push-edx
+<span id="L125" class="LineNr"> 125 </span>    53/push-ebx
+<span id="L126" class="LineNr"> 126 </span>    56/push-esi
+<span id="L127" class="LineNr"> 127 </span>    57/push-edi
+<span id="L128" class="LineNr"> 128 </span>    <span class="subxComment"># var line/ecx : (address stream byte) = stream(512)</span>
+<span id="L129" class="LineNr"> 129 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x200/imm32       <span class="subxComment"># subtract from esp</span>
+<span id="L130" class="LineNr"> 130 </span>    68/push  0x200/imm32/length
+<span id="L131" class="LineNr"> 131 </span>    68/push  0/imm32/read
+<span id="L132" class="LineNr"> 132 </span>    68/push  0/imm32/write
+<span id="L133" class="LineNr"> 133 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L134" class="LineNr"> 134 </span>    <span class="subxComment"># var word-slice/edx = {0, 0}</span>
+<span id="L135" class="LineNr"> 135 </span>    68/push  0/imm32/end
+<span id="L136" class="LineNr"> 136 </span>    68/push  0/imm32/start
+<span id="L137" class="LineNr"> 137 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
+<span id="L138" class="LineNr"> 138 </span>    <span class="subxComment"># new-data-segment/edi = new-stream(Heap, Segment-size, 1)</span>
+<span id="L139" class="LineNr"> 139 </span>    <span class="subxS1Comment"># . eax = new-stream(Heap, Segment-size, 1)</span>
+<span id="L140" class="LineNr"> 140 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L141" class="LineNr"> 141 </span>    68/push  1/imm32
+<span id="L142" class="LineNr"> 142 </span>    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar">Segment-size</span>/disp32               <span class="subxComment"># push *Segment-size</span>
+<span id="L143" class="LineNr"> 143 </span>    68/push  <span class="SpecialChar"><a href='../069allocate.subx.html#L22'>Heap</a></span>/imm32
+<span id="L144" class="LineNr"> 144 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L145" class="LineNr"> 145 </span>    e8/call  <a href='../070new-stream.subx.html#L8'>new-stream</a>/disp32
+<span id="L146" class="LineNr"> 146 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L147" class="LineNr"> 147 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L148" class="LineNr"> 148 </span>    <span class="subxS1Comment"># . edi = eax</span>
+<span id="L149" class="LineNr"> 149 </span>    89/copy                         3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to edi</span>
+<span id="L150" class="LineNr"> 150 </span>    <span class="subxComment"># write(new-data-segment, &quot;== data\n&quot;)</span>
 <span id="L151" class="LineNr"> 151 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L152" class="LineNr"> 152 </span>    51/push-ecx
-<span id="L153" class="LineNr"> 153 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L154" class="LineNr"> 154 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L155" class="LineNr"> 155 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L156" class="LineNr"> 156 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L157" class="LineNr"> 157 </span>    <span class="subxComment"># read-line-buffered(in, line)</span>
-<span id="L158" class="LineNr"> 158 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L159" class="LineNr"> 159 </span>    51/push-ecx
-<span id="L160" class="LineNr"> 160 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L161" class="LineNr"> 161 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L162" class="LineNr"> 162 </span>    e8/call  <a href='../071read-line.subx.html#L9'>read-line-buffered</a>/disp32
-<span id="L163" class="LineNr"> 163 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L164" class="LineNr"> 164 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L165" class="LineNr"> 165 </span><span class="Constant">$subx-dquotes:check0</span>:
-<span id="L166" class="LineNr"> 166 </span>    <span class="subxComment"># if (line-&gt;write == 0) break</span>
-<span id="L167" class="LineNr"> 167 </span>    81          7/subop/compare     0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0/imm32           <span class="subxComment"># compare *ecx</span>
-<span id="L168" class="LineNr"> 168 </span>    0f 84/jump-if-equal  $subx-dquotes:<span class="Constant">break</span>/disp32
-<span id="L169" class="LineNr"> 169 </span><span class="Constant">$subx-dquotes:word-loop</span>:
-<span id="L170" class="LineNr"> 170 </span>    <span class="subxComment"># next-word-or-string(line, word-slice)</span>
-<span id="L171" class="LineNr"> 171 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L172" class="LineNr"> 172 </span>    52/push-edx
-<span id="L173" class="LineNr"> 173 </span>    51/push-ecx
-<span id="L174" class="LineNr"> 174 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L175" class="LineNr"> 175 </span>    e8/call  <a href='../094next-word-or-string.subx.html#L8'>next-word-or-string</a>/disp32
-<span id="L176" class="LineNr"> 176 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L177" class="LineNr"> 177 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L178" class="LineNr"> 178 </span><span class="Constant">$subx-dquotes:check1</span>:
-<span id="L179" class="LineNr"> 179 </span>    <span class="subxComment"># if (slice-empty?(word-slice)) break</span>
-<span id="L180" class="LineNr"> 180 </span>    <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span>
-<span id="L181" class="LineNr"> 181 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L182" class="LineNr"> 182 </span>    52/push-edx
+<span id="L152" class="LineNr"> 152 </span>    68/push  <span class="Constant">&quot;== data\n&quot;</span>/imm32
+<span id="L153" class="LineNr"> 153 </span>    57/push-edi
+<span id="L154" class="LineNr"> 154 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L155" class="LineNr"> 155 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L156" class="LineNr"> 156 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L157" class="LineNr"> 157 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L158" class="LineNr"> 158 </span><span class="Constant">$subx-dquotes:line-loop</span>:
+<span id="L159" class="LineNr"> 159 </span>    <span class="subxComment"># clear-stream(line)</span>
+<span id="L160" class="LineNr"> 160 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L161" class="LineNr"> 161 </span>    51/push-ecx
+<span id="L162" class="LineNr"> 162 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L163" class="LineNr"> 163 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L164" class="LineNr"> 164 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L165" class="LineNr"> 165 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L166" class="LineNr"> 166 </span>    <span class="subxComment"># read-line-buffered(in, line)</span>
+<span id="L167" class="LineNr"> 167 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L168" class="LineNr"> 168 </span>    51/push-ecx
+<span id="L169" class="LineNr"> 169 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L170" class="LineNr"> 170 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L171" class="LineNr"> 171 </span>    e8/call  <a href='../071read-line.subx.html#L9'>read-line-buffered</a>/disp32
+<span id="L172" class="LineNr"> 172 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L173" class="LineNr"> 173 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L174" class="LineNr"> 174 </span><span class="Constant">$subx-dquotes:check0</span>:
+<span id="L175" class="LineNr"> 175 </span>    <span class="subxComment"># if (line-&gt;write == 0) break</span>
+<span id="L176" class="LineNr"> 176 </span>    81          7/subop/compare     0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0/imm32           <span class="subxComment"># compare *ecx</span>
+<span id="L177" class="LineNr"> 177 </span>    0f 84/jump-if-equal  $subx-dquotes:<span class="Constant">break</span>/disp32
+<span id="L178" class="LineNr"> 178 </span><span class="Constant">$subx-dquotes:word-loop</span>:
+<span id="L179" class="LineNr"> 179 </span>    <span class="subxComment"># next-word-or-string(line, word-slice)</span>
+<span id="L180" class="LineNr"> 180 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L181" class="LineNr"> 181 </span>    52/push-edx
+<span id="L182" class="LineNr"> 182 </span>    51/push-ecx
 <span id="L183" class="LineNr"> 183 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L184" class="LineNr"> 184 </span>    e8/call  <a href='../072slice.subx.html#L9'>slice-empty?</a>/disp32
+<span id="L184" class="LineNr"> 184 </span>    e8/call  <a href='../094next-word-or-string.subx.html#L8'>next-word-or-string</a>/disp32
 <span id="L185" class="LineNr"> 185 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L186" class="LineNr"> 186 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L187" class="LineNr"> 187 </span>    <span class="subxS1Comment"># . if (eax != 0) break</span>
-<span id="L188" class="LineNr"> 188 </span>    3d/compare-eax-and  0/imm32
-<span id="L189" class="LineNr"> 189 </span>    0f 85/jump-if-not-equal  $subx-dquotes:next-line/disp32
-<span id="L190" class="LineNr"> 190 </span><span class="Constant">$subx-dquotes:check-for-comment</span>:
-<span id="L191" class="LineNr"> 191 </span>    <span class="subxComment"># if (slice-starts-with?(word-slice, &quot;#&quot;)) continue</span>
-<span id="L192" class="LineNr"> 192 </span>    <span class="subxS1Comment"># . start/esi = word-slice-&gt;start</span>
-<span id="L193" class="LineNr"> 193 </span>    8b/copy                         0/mod/indirect  2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *edx to esi</span>
-<span id="L194" class="LineNr"> 194 </span>    <span class="subxS1Comment"># . c/eax = *start</span>
-<span id="L195" class="LineNr"> 195 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
-<span id="L196" class="LineNr"> 196 </span>    8a/copy-byte                    0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *esi to AL</span>
-<span id="L197" class="LineNr"> 197 </span>    <span class="subxS1Comment"># . if (eax == '#') continue</span>
-<span id="L198" class="LineNr"> 198 </span>    3d/compare-eax-and  0x23/imm32/hash
-<span id="L199" class="LineNr"> 199 </span>    74/jump-if-equal  $subx-dquotes:word-loop/disp8
-<span id="L200" class="LineNr"> 200 </span><span class="Constant">$subx-dquotes:check-for-string-literal</span>:
-<span id="L201" class="LineNr"> 201 </span>    <span class="subxComment"># if (slice-starts-with?(word-slice, '&quot;')) continue</span>
-<span id="L202" class="LineNr"> 202 </span>    3d/compare-eax-and  0x22/imm32/dquote
-<span id="L203" class="LineNr"> 203 </span>    75/jump-if-not-equal  $subx-dquotes:regular-word/disp8
-<span id="L204" class="LineNr"> 204 </span><span class="Constant">$subx-dquotes:string-literal</span>:
-<span id="L205" class="LineNr"> 205 </span>    <span class="subxComment"># process-string-literal(word-slice, out, new-data-segment)</span>
-<span id="L206" class="LineNr"> 206 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L207" class="LineNr"> 207 </span>    57/push-edi
-<span id="L208" class="LineNr"> 208 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
-<span id="L209" class="LineNr"> 209 </span>    52/push-edx
-<span id="L210" class="LineNr"> 210 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L211" class="LineNr"> 211 </span>    e8/call  <a href='dquotes.subx.html#L281'>process-string-literal</a>/disp32
-<span id="L212" class="LineNr"> 212 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L213" class="LineNr"> 213 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L214" class="LineNr"> 214 </span>    <span class="subxComment"># continue</span>
-<span id="L215" class="LineNr"> 215 </span>    eb/jump  $subx-dquotes:<a href='../076next-word.subx.html#L10'>next-word</a>/disp8
-<span id="L216" class="LineNr"> 216 </span><span class="Constant">$subx-dquotes:regular-word</span>:
-<span id="L217" class="LineNr"> 217 </span>    <span class="subxComment"># write-slice-buffered(out, word-slice)</span>
-<span id="L218" class="LineNr"> 218 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L219" class="LineNr"> 219 </span>    52/push-edx
-<span id="L220" class="LineNr"> 220 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
-<span id="L221" class="LineNr"> 221 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L222" class="LineNr"> 222 </span>    e8/call  <a href='../072slice.subx.html#L878'>write-slice-buffered</a>/disp32
-<span id="L223" class="LineNr"> 223 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L224" class="LineNr"> 224 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L225" class="LineNr"> 225 </span>    <span class="subxComment"># fall through</span>
-<span id="L226" class="LineNr"> 226 </span><span class="Constant">$subx-dquotes:<a href='../076next-word.subx.html#L10'>next-word</a></span>:
-<span id="L227" class="LineNr"> 227 </span>    <span class="subxComment"># write-buffered(out, &quot; &quot;)</span>
-<span id="L228" class="LineNr"> 228 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L229" class="LineNr"> 229 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L94'>Space</a></span>/imm32
-<span id="L230" class="LineNr"> 230 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
-<span id="L231" class="LineNr"> 231 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L232" class="LineNr"> 232 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
-<span id="L233" class="LineNr"> 233 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L234" class="LineNr"> 234 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L235" class="LineNr"> 235 </span>    <span class="subxComment"># loop</span>
-<span id="L236" class="LineNr"> 236 </span>    eb/jump  $subx-dquotes:word-loop/disp8
-<span id="L237" class="LineNr"> 237 </span><span class="Constant">$subx-dquotes:next-line</span>:
-<span id="L238" class="LineNr"> 238 </span>    <span class="subxComment"># write-buffered(out, &quot;\n&quot;)</span>
-<span id="L239" class="LineNr"> 239 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L240" class="LineNr"> 240 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
-<span id="L241" class="LineNr"> 241 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
-<span id="L242" class="LineNr"> 242 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L243" class="LineNr"> 243 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
-<span id="L244" class="LineNr"> 244 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L245" class="LineNr"> 245 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L246" class="LineNr"> 246 </span>    <span class="subxComment"># loop</span>
-<span id="L247" class="LineNr"> 247 </span>    e9/jump  $subx-dquotes:line-loop/disp32
-<span id="L248" class="LineNr"> 248 </span><span class="Constant">$subx-dquotes:break</span>:
-<span id="L249" class="LineNr"> 249 </span>    <span class="subxComment"># write-stream-data(out, new-data-segment)</span>
-<span id="L250" class="LineNr"> 250 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L251" class="LineNr"> 251 </span>    57/push-edi
-<span id="L252" class="LineNr"> 252 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
-<span id="L253" class="LineNr"> 253 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L254" class="LineNr"> 254 </span>    e8/call  <a href='../074write-stream-data.subx.html#L11'>write-stream-data</a>/disp32
-<span id="L255" class="LineNr"> 255 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L256" class="LineNr"> 256 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L257" class="LineNr"> 257 </span>    <span class="subxComment"># flush(out)</span>
-<span id="L258" class="LineNr"> 258 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L259" class="LineNr"> 259 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
-<span id="L260" class="LineNr"> 260 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L261" class="LineNr"> 261 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L262" class="LineNr"> 262 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L263" class="LineNr"> 263 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L264" class="LineNr"> 264 </span><span class="Constant">$subx-dquotes:end</span>:
-<span id="L265" class="LineNr"> 265 </span>    <span class="subxS1Comment"># . reclaim locals</span>
-<span id="L266" class="LineNr"> 266 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x214/imm32       <span class="subxComment"># add to esp</span>
-<span id="L267" class="LineNr"> 267 </span>    <span class="subxS1Comment"># . restore registers</span>
-<span id="L268" class="LineNr"> 268 </span>    5f/pop-to-edi
-<span id="L269" class="LineNr"> 269 </span>    5e/pop-to-esi
-<span id="L270" class="LineNr"> 270 </span>    5b/pop-to-ebx
-<span id="L271" class="LineNr"> 271 </span>    5a/pop-to-edx
-<span id="L272" class="LineNr"> 272 </span>    59/pop-to-ecx
-<span id="L273" class="LineNr"> 273 </span>    58/pop-to-eax
-<span id="L274" class="LineNr"> 274 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L275" class="LineNr"> 275 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L276" class="LineNr"> 276 </span>    5d/pop-to-ebp
-<span id="L277" class="LineNr"> 277 </span>    c3/return
-<span id="L278" class="LineNr"> 278 </span>
-<span id="L279" class="LineNr"> 279 </span><span class="subxComment"># Write out 'string-literal' in a new format to 'out-segment', assign it a new</span>
-<span id="L280" class="LineNr"> 280 </span><span class="subxComment"># label, and write the new label out to 'out'.</span>
-<span id="L281" class="LineNr"> 281 </span><span class="subxFunction">process-string-literal</span>:  <span class="subxComment"># string-literal : (address slice), out : (address buffered-file), out-segment : (address stream)</span>
-<span id="L282" class="LineNr"> 282 </span>    <span class="subxComment"># pseudocode:</span>
-<span id="L283" class="LineNr"> 283 </span>    <span class="subxComment">#   print(out-segment, &quot;_string#{Next-string-literal}:\n&quot;)</span>
-<span id="L284" class="LineNr"> 284 </span>    <span class="subxComment">#   emit-string-literal-data(out-segment, string-literal)</span>
-<span id="L285" class="LineNr"> 285 </span>    <span class="subxComment">#   print(out, &quot;_string#{Next-string-literal}&quot;)</span>
-<span id="L286" class="LineNr"> 286 </span>    <span class="subxComment">#   emit-metadata(out, string-literal)</span>
-<span id="L287" class="LineNr"> 287 </span>    <span class="subxComment">#   ++ *Next-string-literal</span>
-<span id="L288" class="LineNr"> 288 </span>    <span class="subxComment">#</span>
-<span id="L289" class="LineNr"> 289 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L290" class="LineNr"> 290 </span>    55/push-ebp
-<span id="L291" class="LineNr"> 291 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L292" class="LineNr"> 292 </span>    <span class="subxS1Comment"># . save registers</span>
-<span id="L293" class="LineNr"> 293 </span>    51/push-ecx
-<span id="L294" class="LineNr"> 294 </span>    <span class="subxComment"># var int32-stream/ecx = stream(10)  # number of decimal digits a 32-bit number can have</span>
-<span id="L295" class="LineNr"> 295 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xa/imm32         <span class="subxComment"># subtract from esp</span>
-<span id="L296" class="LineNr"> 296 </span>    68/push  0xa/imm32/decimal-digits-in-32bit-number
-<span id="L297" class="LineNr"> 297 </span>    68/push  0/imm32/read
-<span id="L298" class="LineNr"> 298 </span>    68/push  0/imm32/write
-<span id="L299" class="LineNr"> 299 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L300" class="LineNr"> 300 </span>    <span class="subxComment"># print(out-segment, &quot;_string#{Next-string-literal}:\n&quot;)</span>
-<span id="L301" class="LineNr"> 301 </span>    <span class="subxS1Comment"># . write(out-segment, &quot;_string&quot;)</span>
-<span id="L302" class="LineNr"> 302 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L303" class="LineNr"> 303 </span>    68/push  <span class="Constant">&quot;_string&quot;</span>/imm32
-<span id="L304" class="LineNr"> 304 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
-<span id="L305" class="LineNr"> 305 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L306" class="LineNr"> 306 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L307" class="LineNr"> 307 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L308" class="LineNr"> 308 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L309" class="LineNr"> 309 </span>    <span class="subxS1Comment"># . print-int32-decimal(out-segment, *Next-string-literal)</span>
-<span id="L310" class="LineNr"> 310 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L311" class="LineNr"> 311 </span>    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar"><a href='dquotes.subx.html#L1887'>Next-string-literal</a></span>/disp32        <span class="subxComment"># push *Next-string-literal</span>
-<span id="L312" class="LineNr"> 312 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
-<span id="L313" class="LineNr"> 313 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L314" class="LineNr"> 314 </span>    e8/call  <a href='../075print-int-decimal.subx.html#L8'>print-int32-decimal</a>/disp32
-<span id="L315" class="LineNr"> 315 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L316" class="LineNr"> 316 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L317" class="LineNr"> 317 </span>    <span class="subxS1Comment"># . write(out-segment, &quot;:\n&quot;)</span>
-<span id="L318" class="LineNr"> 318 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L319" class="LineNr"> 319 </span>    68/push  <span class="Constant">&quot;:\n&quot;</span>/imm32
-<span id="L320" class="LineNr"> 320 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
-<span id="L321" class="LineNr"> 321 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L322" class="LineNr"> 322 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L323" class="LineNr"> 323 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L324" class="LineNr"> 324 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L325" class="LineNr"> 325 </span>    <span class="subxComment"># emit-string-literal-data(out-segment, string-literal)</span>
-<span id="L326" class="LineNr"> 326 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L327" class="LineNr"> 327 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L328" class="LineNr"> 328 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
-<span id="L329" class="LineNr"> 329 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L330" class="LineNr"> 330 </span>    e8/call  <a href='dquotes.subx.html#L840'>emit-string-literal-data</a>/disp32
-<span id="L331" class="LineNr"> 331 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L332" class="LineNr"> 332 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L333" class="LineNr"> 333 </span>    <span class="subxComment"># write(out-segment, &quot;\n&quot;)</span>
-<span id="L334" class="LineNr"> 334 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L335" class="LineNr"> 335 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
-<span id="L336" class="LineNr"> 336 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
-<span id="L337" class="LineNr"> 337 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L338" class="LineNr"> 338 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L339" class="LineNr"> 339 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L340" class="LineNr"> 340 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L341" class="LineNr"> 341 </span>    <span class="subxComment"># print(out, &quot;_string#{Next-string-literal}&quot;)</span>
-<span id="L342" class="LineNr"> 342 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;_string&quot;)</span>
+<span id="L186" class="LineNr"> 186 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L187" class="LineNr"> 187 </span><span class="Constant">$subx-dquotes:check1</span>:
+<span id="L188" class="LineNr"> 188 </span>    <span class="subxComment"># if (slice-empty?(word-slice)) break</span>
+<span id="L189" class="LineNr"> 189 </span>    <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span>
+<span id="L190" class="LineNr"> 190 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L191" class="LineNr"> 191 </span>    52/push-edx
+<span id="L192" class="LineNr"> 192 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L193" class="LineNr"> 193 </span>    e8/call  <a href='../072slice.subx.html#L9'>slice-empty?</a>/disp32
+<span id="L194" class="LineNr"> 194 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L195" class="LineNr"> 195 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L196" class="LineNr"> 196 </span>    <span class="subxS1Comment"># . if (eax != 0) break</span>
+<span id="L197" class="LineNr"> 197 </span>    3d/compare-eax-and  0/imm32
+<span id="L198" class="LineNr"> 198 </span>    0f 85/jump-if-not-equal  $subx-dquotes:next-line/disp32
+<span id="L199" class="LineNr"> 199 </span><span class="Constant">$subx-dquotes:check-for-comment</span>:
+<span id="L200" class="LineNr"> 200 </span>    <span class="subxComment"># if (slice-starts-with?(word-slice, &quot;#&quot;)) continue</span>
+<span id="L201" class="LineNr"> 201 </span>    <span class="subxS1Comment"># . start/esi = word-slice-&gt;start</span>
+<span id="L202" class="LineNr"> 202 </span>    8b/copy                         0/mod/indirect  2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *edx to esi</span>
+<span id="L203" class="LineNr"> 203 </span>    <span class="subxS1Comment"># . c/eax = *start</span>
+<span id="L204" class="LineNr"> 204 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
+<span id="L205" class="LineNr"> 205 </span>    8a/copy-byte                    0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *esi to AL</span>
+<span id="L206" class="LineNr"> 206 </span>    <span class="subxS1Comment"># . if (eax == '#') continue</span>
+<span id="L207" class="LineNr"> 207 </span>    3d/compare-eax-and  0x23/imm32/hash
+<span id="L208" class="LineNr"> 208 </span>    74/jump-if-equal  $subx-dquotes:word-loop/disp8
+<span id="L209" class="LineNr"> 209 </span><span class="Constant">$subx-dquotes:check-for-string-literal</span>:
+<span id="L210" class="LineNr"> 210 </span>    <span class="subxComment"># if (slice-starts-with?(word-slice, '&quot;')) continue</span>
+<span id="L211" class="LineNr"> 211 </span>    3d/compare-eax-and  0x22/imm32/dquote
+<span id="L212" class="LineNr"> 212 </span>    75/jump-if-not-equal  $subx-dquotes:regular-word/disp8
+<span id="L213" class="LineNr"> 213 </span><span class="Constant">$subx-dquotes:string-literal</span>:
+<span id="L214" class="LineNr"> 214 </span>    <span class="subxComment"># process-string-literal(word-slice, out, new-data-segment)</span>
+<span id="L215" class="LineNr"> 215 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L216" class="LineNr"> 216 </span>    57/push-edi
+<span id="L217" class="LineNr"> 217 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L218" class="LineNr"> 218 </span>    52/push-edx
+<span id="L219" class="LineNr"> 219 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L220" class="LineNr"> 220 </span>    e8/call  <a href='dquotes.subx.html#L290'>process-string-literal</a>/disp32
+<span id="L221" class="LineNr"> 221 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L222" class="LineNr"> 222 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L223" class="LineNr"> 223 </span>    <span class="subxComment"># continue</span>
+<span id="L224" class="LineNr"> 224 </span>    eb/jump  $subx-dquotes:<a href='../076next-word.subx.html#L10'>next-word</a>/disp8
+<span id="L225" class="LineNr"> 225 </span><span class="Constant">$subx-dquotes:regular-word</span>:
+<span id="L226" class="LineNr"> 226 </span>    <span class="subxComment"># write-slice-buffered(out, word-slice)</span>
+<span id="L227" class="LineNr"> 227 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L228" class="LineNr"> 228 </span>    52/push-edx
+<span id="L229" class="LineNr"> 229 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L230" class="LineNr"> 230 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L231" class="LineNr"> 231 </span>    e8/call  <a href='../072slice.subx.html#L878'>write-slice-buffered</a>/disp32
+<span id="L232" class="LineNr"> 232 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L233" class="LineNr"> 233 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L234" class="LineNr"> 234 </span>    <span class="subxComment"># fall through</span>
+<span id="L235" class="LineNr"> 235 </span><span class="Constant">$subx-dquotes:<a href='../076next-word.subx.html#L10'>next-word</a></span>:
+<span id="L236" class="LineNr"> 236 </span>    <span class="subxComment"># write-buffered(out, &quot; &quot;)</span>
+<span id="L237" class="LineNr"> 237 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L238" class="LineNr"> 238 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L94'>Space</a></span>/imm32
+<span id="L239" class="LineNr"> 239 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L240" class="LineNr"> 240 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L241" class="LineNr"> 241 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
+<span id="L242" class="LineNr"> 242 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L243" class="LineNr"> 243 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L244" class="LineNr"> 244 </span>    <span class="subxComment"># loop</span>
+<span id="L245" class="LineNr"> 245 </span>    eb/jump  $subx-dquotes:word-loop/disp8
+<span id="L246" class="LineNr"> 246 </span><span class="Constant">$subx-dquotes:next-line</span>:
+<span id="L247" class="LineNr"> 247 </span>    <span class="subxComment"># write-buffered(out, &quot;\n&quot;)</span>
+<span id="L248" class="LineNr"> 248 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L249" class="LineNr"> 249 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
+<span id="L250" class="LineNr"> 250 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L251" class="LineNr"> 251 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L252" class="LineNr"> 252 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
+<span id="L253" class="LineNr"> 253 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L254" class="LineNr"> 254 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L255" class="LineNr"> 255 </span>    <span class="subxComment"># loop</span>
+<span id="L256" class="LineNr"> 256 </span>    e9/jump  $subx-dquotes:line-loop/disp32
+<span id="L257" class="LineNr"> 257 </span><span class="Constant">$subx-dquotes:break</span>:
+<span id="L258" class="LineNr"> 258 </span>    <span class="subxComment"># write-stream-data(out, new-data-segment)</span>
+<span id="L259" class="LineNr"> 259 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L260" class="LineNr"> 260 </span>    57/push-edi
+<span id="L261" class="LineNr"> 261 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L262" class="LineNr"> 262 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L263" class="LineNr"> 263 </span>    e8/call  <a href='../074write-stream-data.subx.html#L11'>write-stream-data</a>/disp32
+<span id="L264" class="LineNr"> 264 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L265" class="LineNr"> 265 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L266" class="LineNr"> 266 </span>    <span class="subxComment"># flush(out)</span>
+<span id="L267" class="LineNr"> 267 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L268" class="LineNr"> 268 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L269" class="LineNr"> 269 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L270" class="LineNr"> 270 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
+<span id="L271" class="LineNr"> 271 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L272" class="LineNr"> 272 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L273" class="LineNr"> 273 </span><span class="Constant">$subx-dquotes:end</span>:
+<span id="L274" class="LineNr"> 274 </span>    <span class="subxS1Comment"># . reclaim locals</span>
+<span id="L275" class="LineNr"> 275 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x214/imm32       <span class="subxComment"># add to esp</span>
+<span id="L276" class="LineNr"> 276 </span>    <span class="subxS1Comment"># . restore registers</span>
+<span id="L277" class="LineNr"> 277 </span>    5f/pop-to-edi
+<span id="L278" class="LineNr"> 278 </span>    5e/pop-to-esi
+<span id="L279" class="LineNr"> 279 </span>    5b/pop-to-ebx
+<span id="L280" class="LineNr"> 280 </span>    5a/pop-to-edx
+<span id="L281" class="LineNr"> 281 </span>    59/pop-to-ecx
+<span id="L282" class="LineNr"> 282 </span>    58/pop-to-eax
+<span id="L283" class="LineNr"> 283 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L284" class="LineNr"> 284 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L285" class="LineNr"> 285 </span>    5d/pop-to-ebp
+<span id="L286" class="LineNr"> 286 </span>    c3/return
+<span id="L287" class="LineNr"> 287 </span>
+<span id="L288" class="LineNr"> 288 </span><span class="subxComment"># Write out 'string-literal' in a new format to 'out-segment', assign it a new</span>
+<span id="L289" class="LineNr"> 289 </span><span class="subxComment"># label, and write the new label out to 'out'.</span>
+<span id="L290" class="LineNr"> 290 </span><span class="subxFunction">process-string-literal</span>:  <span class="subxComment"># string-literal : (address slice), out : (address buffered-file), out-segment : (address stream)</span>
+<span id="L291" class="LineNr"> 291 </span>    <span class="subxComment"># pseudocode:</span>
+<span id="L292" class="LineNr"> 292 </span>    <span class="subxComment">#   print(out-segment, &quot;_string#{Next-string-literal}:\n&quot;)</span>
+<span id="L293" class="LineNr"> 293 </span>    <span class="subxComment">#   emit-string-literal-data(out-segment, string-literal)</span>
+<span id="L294" class="LineNr"> 294 </span>    <span class="subxComment">#   print(out, &quot;_string#{Next-string-literal}&quot;)</span>
+<span id="L295" class="LineNr"> 295 </span>    <span class="subxComment">#   emit-metadata(out, string-literal)</span>
+<span id="L296" class="LineNr"> 296 </span>    <span class="subxComment">#   ++ *Next-string-literal</span>
+<span id="L297" class="LineNr"> 297 </span>    <span class="subxComment">#</span>
+<span id="L298" class="LineNr"> 298 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L299" class="LineNr"> 299 </span>    55/push-ebp
+<span id="L300" class="LineNr"> 300 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L301" class="LineNr"> 301 </span>    <span class="subxS1Comment"># . save registers</span>
+<span id="L302" class="LineNr"> 302 </span>    51/push-ecx
+<span id="L303" class="LineNr"> 303 </span>    <span class="subxComment"># var int32-stream/ecx = stream(10)  # number of decimal digits a 32-bit number can have</span>
+<span id="L304" class="LineNr"> 304 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xa/imm32         <span class="subxComment"># subtract from esp</span>
+<span id="L305" class="LineNr"> 305 </span>    68/push  0xa/imm32/decimal-digits-in-32bit-number
+<span id="L306" class="LineNr"> 306 </span>    68/push  0/imm32/read
+<span id="L307" class="LineNr"> 307 </span>    68/push  0/imm32/write
+<span id="L308" class="LineNr"> 308 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L309" class="LineNr"> 309 </span>    <span class="subxComment"># print(out-segment, &quot;_string#{Next-string-literal}:\n&quot;)</span>
+<span id="L310" class="LineNr"> 310 </span>    <span class="subxS1Comment"># . write(out-segment, &quot;_string&quot;)</span>
+<span id="L311" class="LineNr"> 311 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L312" class="LineNr"> 312 </span>    68/push  <span class="Constant">&quot;_string&quot;</span>/imm32
+<span id="L313" class="LineNr"> 313 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
+<span id="L314" class="LineNr"> 314 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L315" class="LineNr"> 315 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L316" class="LineNr"> 316 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L317" class="LineNr"> 317 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L318" class="LineNr"> 318 </span>    <span class="subxS1Comment"># . print-int32-decimal(out-segment, *Next-string-literal)</span>
+<span id="L319" class="LineNr"> 319 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L320" class="LineNr"> 320 </span>    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar"><a href='dquotes.subx.html#L1896'>Next-string-literal</a></span>/disp32        <span class="subxComment"># push *Next-string-literal</span>
+<span id="L321" class="LineNr"> 321 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
+<span id="L322" class="LineNr"> 322 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L323" class="LineNr"> 323 </span>    e8/call  <a href='../075print-int-decimal.subx.html#L8'>print-int32-decimal</a>/disp32
+<span id="L324" class="LineNr"> 324 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L325" class="LineNr"> 325 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L326" class="LineNr"> 326 </span>    <span class="subxS1Comment"># . write(out-segment, &quot;:\n&quot;)</span>
+<span id="L327" class="LineNr"> 327 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L328" class="LineNr"> 328 </span>    68/push  <span class="Constant">&quot;:\n&quot;</span>/imm32
+<span id="L329" class="LineNr"> 329 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
+<span id="L330" class="LineNr"> 330 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L331" class="LineNr"> 331 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L332" class="LineNr"> 332 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L333" class="LineNr"> 333 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L334" class="LineNr"> 334 </span>    <span class="subxComment"># emit-string-literal-data(out-segment, string-literal)</span>
+<span id="L335" class="LineNr"> 335 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L336" class="LineNr"> 336 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L337" class="LineNr"> 337 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
+<span id="L338" class="LineNr"> 338 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L339" class="LineNr"> 339 </span>    e8/call  <a href='dquotes.subx.html#L849'>emit-string-literal-data</a>/disp32
+<span id="L340" class="LineNr"> 340 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L341" class="LineNr"> 341 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L342" class="LineNr"> 342 </span>    <span class="subxComment"># write(out-segment, &quot;\n&quot;)</span>
 <span id="L343" class="LineNr"> 343 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L344" class="LineNr"> 344 </span>    68/push  <span class="Constant">&quot;_string&quot;</span>/imm32
-<span id="L345" class="LineNr"> 345 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L344" class="LineNr"> 344 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
+<span id="L345" class="LineNr"> 345 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
 <span id="L346" class="LineNr"> 346 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L347" class="LineNr"> 347 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
+<span id="L347" class="LineNr"> 347 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
 <span id="L348" class="LineNr"> 348 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L349" class="LineNr"> 349 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L350" class="LineNr"> 350 </span>    <span class="subxS1Comment"># . print-int32-decimal(int32-stream, *Next-string-literal)</span>
-<span id="L351" class="LineNr"> 351 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L352" class="LineNr"> 352 </span>    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar"><a href='dquotes.subx.html#L1887'>Next-string-literal</a></span>/disp32        <span class="subxComment"># push *Next-string-literal</span>
-<span id="L353" class="LineNr"> 353 </span>    51/push-ecx
-<span id="L354" class="LineNr"> 354 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L355" class="LineNr"> 355 </span>    e8/call  <a href='../075print-int-decimal.subx.html#L8'>print-int32-decimal</a>/disp32
-<span id="L356" class="LineNr"> 356 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L357" class="LineNr"> 357 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L358" class="LineNr"> 358 </span>    <span class="subxS1Comment"># . write-stream-data(out, int32-stream)</span>
-<span id="L359" class="LineNr"> 359 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L360" class="LineNr"> 360 </span>    51/push-ecx
-<span id="L361" class="LineNr"> 361 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
-<span id="L362" class="LineNr"> 362 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L363" class="LineNr"> 363 </span>    e8/call  <a href='../074write-stream-data.subx.html#L11'>write-stream-data</a>/disp32
-<span id="L364" class="LineNr"> 364 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L365" class="LineNr"> 365 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L366" class="LineNr"> 366 </span>    <span class="subxComment"># emit-metadata(out, string-literal)</span>
-<span id="L367" class="LineNr"> 367 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L368" class="LineNr"> 368 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L369" class="LineNr"> 369 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
-<span id="L370" class="LineNr"> 370 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L371" class="LineNr"> 371 </span>    e8/call  <a href='dquotes.subx.html#L1373'>emit-metadata</a>/disp32
-<span id="L372" class="LineNr"> 372 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L373" class="LineNr"> 373 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L374" class="LineNr"> 374 </span>    <span class="subxComment"># ++ *Next-string-literal</span>
-<span id="L375" class="LineNr"> 375 </span>    ff          0/subop/increment   0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar"><a href='dquotes.subx.html#L1887'>Next-string-literal</a></span>/disp32        <span class="subxComment"># increment *Num-test-failures</span>
-<span id="L376" class="LineNr"> 376 </span><span class="Constant">$process-string-literal:end</span>:
-<span id="L377" class="LineNr"> 377 </span>    <span class="subxS1Comment"># . reclaim locals</span>
-<span id="L378" class="LineNr"> 378 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x16/imm32        <span class="subxComment"># add to esp</span>
-<span id="L379" class="LineNr"> 379 </span>    <span class="subxS1Comment"># . restore registers</span>
-<span id="L380" class="LineNr"> 380 </span>    59/pop-to-ecx
-<span id="L381" class="LineNr"> 381 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L382" class="LineNr"> 382 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L383" class="LineNr"> 383 </span>    5d/pop-to-ebp
-<span id="L384" class="LineNr"> 384 </span>    c3/return
-<span id="L385" class="LineNr"> 385 </span>
-<span id="L386" class="LineNr"> 386 </span><span class="subxTest">test-subx-dquotes-is-idempotent-by-default</span>:
-<span id="L387" class="LineNr"> 387 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L388" class="LineNr"> 388 </span>    55/push-ebp
-<span id="L389" class="LineNr"> 389 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L390" class="LineNr"> 390 </span>    <span class="subxComment"># setup</span>
-<span id="L391" class="LineNr"> 391 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
-<span id="L392" class="LineNr"> 392 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L393" class="LineNr"> 393 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L394" class="LineNr"> 394 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L395" class="LineNr"> 395 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L396" class="LineNr"> 396 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L397" class="LineNr"> 397 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L398" class="LineNr"> 398 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file-&gt;buffer)</span>
-<span id="L399" class="LineNr"> 399 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L400" class="LineNr"> 400 </span>    68/push  <a href='../061read-byte.subx.html#L317'>_test-input-buffered-file-&gt;buffer</a>/imm32
-<span id="L401" class="LineNr"> 401 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L402" class="LineNr"> 402 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L403" class="LineNr"> 403 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L404" class="LineNr"> 404 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L405" class="LineNr"> 405 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L406" class="LineNr"> 406 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L407" class="LineNr"> 407 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L408" class="LineNr"> 408 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L409" class="LineNr"> 409 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L410" class="LineNr"> 410 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L411" class="LineNr"> 411 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L412" class="LineNr"> 412 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
-<span id="L413" class="LineNr"> 413 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L414" class="LineNr"> 414 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
-<span id="L415" class="LineNr"> 415 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L416" class="LineNr"> 416 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L417" class="LineNr"> 417 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L418" class="LineNr"> 418 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L419" class="LineNr"> 419 </span>    <span class="subxComment"># initialize input (meta comments in parens)</span>
-<span id="L420" class="LineNr"> 420 </span>    <span class="subxComment">#   # comment 1</span>
-<span id="L421" class="LineNr"> 421 </span>    <span class="subxComment">#     # comment 2 indented</span>
-<span id="L422" class="LineNr"> 422 </span>    <span class="subxComment">#   == code 0x1  (new segment)</span>
-<span id="L423" class="LineNr"> 423 </span>    <span class="subxComment">#   # comment 3 inside a segment</span>
-<span id="L424" class="LineNr"> 424 </span>    <span class="subxComment">#   1</span>
-<span id="L425" class="LineNr"> 425 </span>    <span class="subxComment">#                         (empty line)</span>
-<span id="L426" class="LineNr"> 426 </span>    <span class="subxComment">#   2 3 # comment 4 inline with other contents</span>
-<span id="L427" class="LineNr"> 427 </span>    <span class="subxComment">#   == data 0x2  (new segment)</span>
-<span id="L428" class="LineNr"> 428 </span>    <span class="subxComment">#   4 5/imm32</span>
-<span id="L429" class="LineNr"> 429 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;# comment 1\n&quot;)</span>
-<span id="L430" class="LineNr"> 430 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L431" class="LineNr"> 431 </span>    68/push  <span class="Constant">&quot;# comment 1\n&quot;</span>/imm32
-<span id="L432" class="LineNr"> 432 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L433" class="LineNr"> 433 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L434" class="LineNr"> 434 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L435" class="LineNr"> 435 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L436" class="LineNr"> 436 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L437" class="LineNr"> 437 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;  # comment 2 indented\n&quot;)</span>
-<span id="L438" class="LineNr"> 438 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L439" class="LineNr"> 439 </span>    68/push  <span class="Constant">&quot;  # comment 2 indented\n&quot;</span>/imm32
-<span id="L440" class="LineNr"> 440 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L441" class="LineNr"> 441 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L442" class="LineNr"> 442 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L443" class="LineNr"> 443 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L444" class="LineNr"> 444 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L445" class="LineNr"> 445 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;== code 0x1\n&quot;)</span>
-<span id="L446" class="LineNr"> 446 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L447" class="LineNr"> 447 </span>    68/push  <span class="Constant">&quot;== code 0x1\n&quot;</span>/imm32
-<span id="L448" class="LineNr"> 448 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L449" class="LineNr"> 449 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L450" class="LineNr"> 450 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L451" class="LineNr"> 451 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L452" class="LineNr"> 452 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L453" class="LineNr"> 453 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;# comment 3 inside a segment\n&quot;)</span>
-<span id="L454" class="LineNr"> 454 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L455" class="LineNr"> 455 </span>    68/push  <span class="Constant">&quot;# comment 3 inside a segment\n&quot;</span>/imm32
-<span id="L456" class="LineNr"> 456 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L457" class="LineNr"> 457 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L458" class="LineNr"> 458 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L459" class="LineNr"> 459 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L460" class="LineNr"> 460 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L461" class="LineNr"> 461 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;1\n&quot;)</span>
-<span id="L462" class="LineNr"> 462 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L463" class="LineNr"> 463 </span>    68/push  <span class="Constant">&quot;1\n&quot;</span>/imm32
-<span id="L464" class="LineNr"> 464 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L465" class="LineNr"> 465 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L466" class="LineNr"> 466 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L467" class="LineNr"> 467 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L468" class="LineNr"> 468 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L469" class="LineNr"> 469 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;\n&quot;)  # empty line</span>
-<span id="L470" class="LineNr"> 470 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L471" class="LineNr"> 471 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
-<span id="L472" class="LineNr"> 472 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L473" class="LineNr"> 473 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L474" class="LineNr"> 474 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L475" class="LineNr"> 475 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L476" class="LineNr"> 476 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L477" class="LineNr"> 477 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;2 3 # comment 4 inline with other contents\n&quot;)</span>
-<span id="L478" class="LineNr"> 478 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L479" class="LineNr"> 479 </span>    68/push  <span class="Constant">&quot;2 3 # comment 4 inline with other contents\n&quot;</span>/imm32
-<span id="L480" class="LineNr"> 480 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L481" class="LineNr"> 481 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L482" class="LineNr"> 482 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L483" class="LineNr"> 483 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L484" class="LineNr"> 484 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L485" class="LineNr"> 485 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;== data 0x2\n&quot;)</span>
-<span id="L486" class="LineNr"> 486 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L487" class="LineNr"> 487 </span>    68/push  <span class="Constant">&quot;== data 0x2\n&quot;</span>/imm32
-<span id="L488" class="LineNr"> 488 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L489" class="LineNr"> 489 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L490" class="LineNr"> 490 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L491" class="LineNr"> 491 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L492" class="LineNr"> 492 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L493" class="LineNr"> 493 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;4 5/imm32\n&quot;)</span>
-<span id="L494" class="LineNr"> 494 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L495" class="LineNr"> 495 </span>    68/push  <span class="Constant">&quot;4 5/imm32\n&quot;</span>/imm32
-<span id="L496" class="LineNr"> 496 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L497" class="LineNr"> 497 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L498" class="LineNr"> 498 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L499" class="LineNr"> 499 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L500" class="LineNr"> 500 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L501" class="LineNr"> 501 </span>    <span class="subxComment"># subx-dquotes(_test-input-buffered-file, _test-output-buffered-file)</span>
-<span id="L502" class="LineNr"> 502 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L503" class="LineNr"> 503 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L504" class="LineNr"> 504 </span>    68/push  <a href='../061read-byte.subx.html#L314'>_test-input-buffered-file</a>/imm32
-<span id="L505" class="LineNr"> 505 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L506" class="LineNr"> 506 </span>    e8/call  <a href='dquotes.subx.html#L85'>subx-dquotes</a>/disp32
-<span id="L507" class="LineNr"> 507 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L508" class="LineNr"> 508 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L509" class="LineNr"> 509 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
-<span id="L510" class="LineNr"> 510 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L511" class="LineNr"> 511 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L512" class="LineNr"> 512 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L513" class="LineNr"> 513 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L514" class="LineNr"> 514 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L515" class="LineNr"> 515 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L516" class="LineNr"> 516 </span>    <span class="subxComment"># check output</span>
-<span id="L517" class="LineNr"> 517 </span>    <span class="subxComment">#     (comment dropped for now)</span>
-<span id="L518" class="LineNr"> 518 </span>    <span class="subxComment">#     (comment dropped for now)</span>
-<span id="L519" class="LineNr"> 519 </span>    <span class="subxComment">#   == code 0x1</span>
-<span id="L520" class="LineNr"> 520 </span>    <span class="subxComment">#     (comment dropped for now)</span>
-<span id="L521" class="LineNr"> 521 </span>    <span class="subxComment">#   1</span>
-<span id="L522" class="LineNr"> 522 </span>    <span class="subxComment">#     (comment dropped for now)</span>
-<span id="L523" class="LineNr"> 523 </span>    <span class="subxComment">#   2 3</span>
-<span id="L524" class="LineNr"> 524 </span>    <span class="subxComment">#   == data 0x2</span>
-<span id="L525" class="LineNr"> 525 </span>    <span class="subxComment">#   4 5/imm32</span>
-<span id="L526" class="LineNr"> 526 </span>    <span class="subxComment"># We don't care right now what exactly happens to comments. Trailing spaces are also minor details.</span>
-<span id="L527" class="Folded"> 527 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L553" class="LineNr"> 553 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;&quot;, msg)</span>
-<span id="L554" class="LineNr"> 554 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L555" class="LineNr"> 555 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/0&quot;</span>/imm32
-<span id="L556" class="LineNr"> 556 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
-<span id="L557" class="LineNr"> 557 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L558" class="LineNr"> 558 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L559" class="LineNr"> 559 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
-<span id="L560" class="LineNr"> 560 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L561" class="LineNr"> 561 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L350" class="LineNr"> 350 </span>    <span class="subxComment"># print(out, &quot;_string#{Next-string-literal}&quot;)</span>
+<span id="L351" class="LineNr"> 351 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;_string&quot;)</span>
+<span id="L352" class="LineNr"> 352 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L353" class="LineNr"> 353 </span>    68/push  <span class="Constant">&quot;_string&quot;</span>/imm32
+<span id="L354" class="LineNr"> 354 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L355" class="LineNr"> 355 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L356" class="LineNr"> 356 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
+<span id="L357" class="LineNr"> 357 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L358" class="LineNr"> 358 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L359" class="LineNr"> 359 </span>    <span class="subxS1Comment"># . print-int32-decimal(int32-stream, *Next-string-literal)</span>
+<span id="L360" class="LineNr"> 360 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L361" class="LineNr"> 361 </span>    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar"><a href='dquotes.subx.html#L1896'>Next-string-literal</a></span>/disp32        <span class="subxComment"># push *Next-string-literal</span>
+<span id="L362" class="LineNr"> 362 </span>    51/push-ecx
+<span id="L363" class="LineNr"> 363 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L364" class="LineNr"> 364 </span>    e8/call  <a href='../075print-int-decimal.subx.html#L8'>print-int32-decimal</a>/disp32
+<span id="L365" class="LineNr"> 365 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L366" class="LineNr"> 366 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L367" class="LineNr"> 367 </span>    <span class="subxS1Comment"># . write-stream-data(out, int32-stream)</span>
+<span id="L368" class="LineNr"> 368 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L369" class="LineNr"> 369 </span>    51/push-ecx
+<span id="L370" class="LineNr"> 370 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L371" class="LineNr"> 371 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L372" class="LineNr"> 372 </span>    e8/call  <a href='../074write-stream-data.subx.html#L11'>write-stream-data</a>/disp32
+<span id="L373" class="LineNr"> 373 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L374" class="LineNr"> 374 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L375" class="LineNr"> 375 </span>    <span class="subxComment"># emit-metadata(out, string-literal)</span>
+<span id="L376" class="LineNr"> 376 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L377" class="LineNr"> 377 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L378" class="LineNr"> 378 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
+<span id="L379" class="LineNr"> 379 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L380" class="LineNr"> 380 </span>    e8/call  <a href='dquotes.subx.html#L1382'>emit-metadata</a>/disp32
+<span id="L381" class="LineNr"> 381 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L382" class="LineNr"> 382 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L383" class="LineNr"> 383 </span>    <span class="subxComment"># ++ *Next-string-literal</span>
+<span id="L384" class="LineNr"> 384 </span>    ff          0/subop/increment   0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar"><a href='dquotes.subx.html#L1896'>Next-string-literal</a></span>/disp32        <span class="subxComment"># increment *Num-test-failures</span>
+<span id="L385" class="LineNr"> 385 </span><span class="Constant">$process-string-literal:end</span>:
+<span id="L386" class="LineNr"> 386 </span>    <span class="subxS1Comment"># . reclaim locals</span>
+<span id="L387" class="LineNr"> 387 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x16/imm32        <span class="subxComment"># add to esp</span>
+<span id="L388" class="LineNr"> 388 </span>    <span class="subxS1Comment"># . restore registers</span>
+<span id="L389" class="LineNr"> 389 </span>    59/pop-to-ecx
+<span id="L390" class="LineNr"> 390 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L391" class="LineNr"> 391 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L392" class="LineNr"> 392 </span>    5d/pop-to-ebp
+<span id="L393" class="LineNr"> 393 </span>    c3/return
+<span id="L394" class="LineNr"> 394 </span>
+<span id="L395" class="LineNr"> 395 </span><span class="subxTest">test-subx-dquotes-is-idempotent-by-default</span>:
+<span id="L396" class="LineNr"> 396 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L397" class="LineNr"> 397 </span>    55/push-ebp
+<span id="L398" class="LineNr"> 398 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L399" class="LineNr"> 399 </span>    <span class="subxComment"># setup</span>
+<span id="L400" class="LineNr"> 400 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
+<span id="L401" class="LineNr"> 401 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L402" class="LineNr"> 402 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L403" class="LineNr"> 403 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L404" class="LineNr"> 404 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L405" class="LineNr"> 405 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L406" class="LineNr"> 406 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L407" class="LineNr"> 407 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file-&gt;buffer)</span>
+<span id="L408" class="LineNr"> 408 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L409" class="LineNr"> 409 </span>    68/push  <a href='../061read-byte.subx.html#L317'>_test-input-buffered-file-&gt;buffer</a>/imm32
+<span id="L410" class="LineNr"> 410 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L411" class="LineNr"> 411 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L412" class="LineNr"> 412 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L413" class="LineNr"> 413 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L414" class="LineNr"> 414 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L415" class="LineNr"> 415 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L416" class="LineNr"> 416 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L417" class="LineNr"> 417 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L418" class="LineNr"> 418 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L419" class="LineNr"> 419 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L420" class="LineNr"> 420 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L421" class="LineNr"> 421 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
+<span id="L422" class="LineNr"> 422 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L423" class="LineNr"> 423 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
+<span id="L424" class="LineNr"> 424 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L425" class="LineNr"> 425 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L426" class="LineNr"> 426 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L427" class="LineNr"> 427 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L428" class="LineNr"> 428 </span>    <span class="subxComment"># initialize input (meta comments in parens)</span>
+<span id="L429" class="LineNr"> 429 </span>    <span class="subxComment">#   # comment 1</span>
+<span id="L430" class="LineNr"> 430 </span>    <span class="subxComment">#     # comment 2 indented</span>
+<span id="L431" class="LineNr"> 431 </span>    <span class="subxComment">#   == code 0x1  (new segment)</span>
+<span id="L432" class="LineNr"> 432 </span>    <span class="subxComment">#   # comment 3 inside a segment</span>
+<span id="L433" class="LineNr"> 433 </span>    <span class="subxComment">#   1</span>
+<span id="L434" class="LineNr"> 434 </span>    <span class="subxComment">#                         (empty line)</span>
+<span id="L435" class="LineNr"> 435 </span>    <span class="subxComment">#   2 3 # comment 4 inline with other contents</span>
+<span id="L436" class="LineNr"> 436 </span>    <span class="subxComment">#   == data 0x2  (new segment)</span>
+<span id="L437" class="LineNr"> 437 </span>    <span class="subxComment">#   4 5/imm32</span>
+<span id="L438" class="LineNr"> 438 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;# comment 1\n&quot;)</span>
+<span id="L439" class="LineNr"> 439 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L440" class="LineNr"> 440 </span>    68/push  <span class="Constant">&quot;# comment 1\n&quot;</span>/imm32
+<span id="L441" class="LineNr"> 441 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L442" class="LineNr"> 442 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L443" class="LineNr"> 443 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L444" class="LineNr"> 444 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L445" class="LineNr"> 445 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L446" class="LineNr"> 446 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;  # comment 2 indented\n&quot;)</span>
+<span id="L447" class="LineNr"> 447 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L448" class="LineNr"> 448 </span>    68/push  <span class="Constant">&quot;  # comment 2 indented\n&quot;</span>/imm32
+<span id="L449" class="LineNr"> 449 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L450" class="LineNr"> 450 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L451" class="LineNr"> 451 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L452" class="LineNr"> 452 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L453" class="LineNr"> 453 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L454" class="LineNr"> 454 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;== code 0x1\n&quot;)</span>
+<span id="L455" class="LineNr"> 455 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L456" class="LineNr"> 456 </span>    68/push  <span class="Constant">&quot;== code 0x1\n&quot;</span>/imm32
+<span id="L457" class="LineNr"> 457 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L458" class="LineNr"> 458 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L459" class="LineNr"> 459 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L460" class="LineNr"> 460 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L461" class="LineNr"> 461 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L462" class="LineNr"> 462 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;# comment 3 inside a segment\n&quot;)</span>
+<span id="L463" class="LineNr"> 463 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L464" class="LineNr"> 464 </span>    68/push  <span class="Constant">&quot;# comment 3 inside a segment\n&quot;</span>/imm32
+<span id="L465" class="LineNr"> 465 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L466" class="LineNr"> 466 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L467" class="LineNr"> 467 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L468" class="LineNr"> 468 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L469" class="LineNr"> 469 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L470" class="LineNr"> 470 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;1\n&quot;)</span>
+<span id="L471" class="LineNr"> 471 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L472" class="LineNr"> 472 </span>    68/push  <span class="Constant">&quot;1\n&quot;</span>/imm32
+<span id="L473" class="LineNr"> 473 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L474" class="LineNr"> 474 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L475" class="LineNr"> 475 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L476" class="LineNr"> 476 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L477" class="LineNr"> 477 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L478" class="LineNr"> 478 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;\n&quot;)  # empty line</span>
+<span id="L479" class="LineNr"> 479 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L480" class="LineNr"> 480 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
+<span id="L481" class="LineNr"> 481 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L482" class="LineNr"> 482 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L483" class="LineNr"> 483 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L484" class="LineNr"> 484 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L485" class="LineNr"> 485 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L486" class="LineNr"> 486 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;2 3 # comment 4 inline with other contents\n&quot;)</span>
+<span id="L487" class="LineNr"> 487 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L488" class="LineNr"> 488 </span>    68/push  <span class="Constant">&quot;2 3 # comment 4 inline with other contents\n&quot;</span>/imm32
+<span id="L489" class="LineNr"> 489 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L490" class="LineNr"> 490 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L491" class="LineNr"> 491 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L492" class="LineNr"> 492 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L493" class="LineNr"> 493 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L494" class="LineNr"> 494 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;== data 0x2\n&quot;)</span>
+<span id="L495" class="LineNr"> 495 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L496" class="LineNr"> 496 </span>    68/push  <span class="Constant">&quot;== data 0x2\n&quot;</span>/imm32
+<span id="L497" class="LineNr"> 497 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L498" class="LineNr"> 498 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L499" class="LineNr"> 499 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L500" class="LineNr"> 500 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L501" class="LineNr"> 501 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L502" class="LineNr"> 502 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;4 5/imm32\n&quot;)</span>
+<span id="L503" class="LineNr"> 503 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L504" class="LineNr"> 504 </span>    68/push  <span class="Constant">&quot;4 5/imm32\n&quot;</span>/imm32
+<span id="L505" class="LineNr"> 505 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L506" class="LineNr"> 506 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L507" class="LineNr"> 507 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L508" class="LineNr"> 508 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L509" class="LineNr"> 509 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L510" class="LineNr"> 510 </span>    <span class="subxComment"># subx-dquotes(_test-input-buffered-file, _test-output-buffered-file)</span>
+<span id="L511" class="LineNr"> 511 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L512" class="LineNr"> 512 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L513" class="LineNr"> 513 </span>    68/push  <a href='../061read-byte.subx.html#L314'>_test-input-buffered-file</a>/imm32
+<span id="L514" class="LineNr"> 514 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L515" class="LineNr"> 515 </span>    e8/call  <a href='dquotes.subx.html#L85'>subx-dquotes</a>/disp32
+<span id="L516" class="LineNr"> 516 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L517" class="LineNr"> 517 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L518" class="LineNr"> 518 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
+<span id="L519" class="LineNr"> 519 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L520" class="LineNr"> 520 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L521" class="LineNr"> 521 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L522" class="LineNr"> 522 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
+<span id="L523" class="LineNr"> 523 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L524" class="LineNr"> 524 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L525" class="LineNr"> 525 </span>    <span class="subxComment"># check output</span>
+<span id="L526" class="LineNr"> 526 </span>    <span class="subxComment">#     (comment dropped for now)</span>
+<span id="L527" class="LineNr"> 527 </span>    <span class="subxComment">#     (comment dropped for now)</span>
+<span id="L528" class="LineNr"> 528 </span>    <span class="subxComment">#   == code 0x1</span>
+<span id="L529" class="LineNr"> 529 </span>    <span class="subxComment">#     (comment dropped for now)</span>
+<span id="L530" class="LineNr"> 530 </span>    <span class="subxComment">#   1</span>
+<span id="L531" class="LineNr"> 531 </span>    <span class="subxComment">#     (comment dropped for now)</span>
+<span id="L532" class="LineNr"> 532 </span>    <span class="subxComment">#   2 3</span>
+<span id="L533" class="LineNr"> 533 </span>    <span class="subxComment">#   == data 0x2</span>
+<span id="L534" class="LineNr"> 534 </span>    <span class="subxComment">#   4 5/imm32</span>
+<span id="L535" class="LineNr"> 535 </span>    <span class="subxComment"># We don't care right now what exactly happens to comments. Trailing spaces are also minor details.</span>
+<span id="L536" class="Folded"> 536 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
 <span id="L562" class="LineNr"> 562 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;&quot;, msg)</span>
 <span id="L563" class="LineNr"> 563 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L564" class="LineNr"> 564 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/1&quot;</span>/imm32
+<span id="L564" class="LineNr"> 564 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/0&quot;</span>/imm32
 <span id="L565" class="LineNr"> 565 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
 <span id="L566" class="LineNr"> 566 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L567" class="LineNr"> 567 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L568" class="LineNr"> 568 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L569" class="LineNr"> 569 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L570" class="LineNr"> 570 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L571" class="LineNr"> 571 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;== code 0x1 &quot;, msg)</span>
+<span id="L571" class="LineNr"> 571 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;&quot;, msg)</span>
 <span id="L572" class="LineNr"> 572 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L573" class="LineNr"> 573 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/2&quot;</span>/imm32
-<span id="L574" class="LineNr"> 574 </span>    68/push  <span class="Constant">&quot;== code 0x1 &quot;</span>/imm32
+<span id="L573" class="LineNr"> 573 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/1&quot;</span>/imm32
+<span id="L574" class="LineNr"> 574 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
 <span id="L575" class="LineNr"> 575 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L576" class="LineNr"> 576 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L577" class="LineNr"> 577 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L578" class="LineNr"> 578 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L579" class="LineNr"> 579 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L580" class="LineNr"> 580 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;&quot;, msg)</span>
+<span id="L580" class="LineNr"> 580 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;== code 0x1 &quot;, msg)</span>
 <span id="L581" class="LineNr"> 581 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L582" class="LineNr"> 582 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/3&quot;</span>/imm32
-<span id="L583" class="LineNr"> 583 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
+<span id="L582" class="LineNr"> 582 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/2&quot;</span>/imm32
+<span id="L583" class="LineNr"> 583 </span>    68/push  <span class="Constant">&quot;== code 0x1 &quot;</span>/imm32
 <span id="L584" class="LineNr"> 584 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L585" class="LineNr"> 585 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L586" class="LineNr"> 586 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L587" class="LineNr"> 587 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L588" class="LineNr"> 588 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L589" class="LineNr"> 589 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;1 &quot;, msg)</span>
+<span id="L589" class="LineNr"> 589 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;&quot;, msg)</span>
 <span id="L590" class="LineNr"> 590 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L591" class="LineNr"> 591 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/4&quot;</span>/imm32
-<span id="L592" class="LineNr"> 592 </span>    68/push  <span class="Constant">&quot;1 &quot;</span>/imm32
+<span id="L591" class="LineNr"> 591 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/3&quot;</span>/imm32
+<span id="L592" class="LineNr"> 592 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
 <span id="L593" class="LineNr"> 593 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L594" class="LineNr"> 594 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L595" class="LineNr"> 595 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L596" class="LineNr"> 596 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L597" class="LineNr"> 597 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L598" class="LineNr"> 598 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;&quot;, msg)</span>
+<span id="L598" class="LineNr"> 598 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;1 &quot;, msg)</span>
 <span id="L599" class="LineNr"> 599 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L600" class="LineNr"> 600 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/5&quot;</span>/imm32
-<span id="L601" class="LineNr"> 601 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
+<span id="L600" class="LineNr"> 600 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/4&quot;</span>/imm32
+<span id="L601" class="LineNr"> 601 </span>    68/push  <span class="Constant">&quot;1 &quot;</span>/imm32
 <span id="L602" class="LineNr"> 602 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L603" class="LineNr"> 603 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L604" class="LineNr"> 604 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L605" class="LineNr"> 605 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L606" class="LineNr"> 606 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L607" class="LineNr"> 607 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;2 3 &quot;, msg)</span>
+<span id="L607" class="LineNr"> 607 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;&quot;, msg)</span>
 <span id="L608" class="LineNr"> 608 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L609" class="LineNr"> 609 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/6&quot;</span>/imm32
-<span id="L610" class="LineNr"> 610 </span>    68/push  <span class="Constant">&quot;2 3 &quot;</span>/imm32
+<span id="L609" class="LineNr"> 609 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/5&quot;</span>/imm32
+<span id="L610" class="LineNr"> 610 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
 <span id="L611" class="LineNr"> 611 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L612" class="LineNr"> 612 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L613" class="LineNr"> 613 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L614" class="LineNr"> 614 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L615" class="LineNr"> 615 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L616" class="LineNr"> 616 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;== data 0x2 &quot;, msg)</span>
+<span id="L616" class="LineNr"> 616 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;2 3 &quot;, msg)</span>
 <span id="L617" class="LineNr"> 617 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L618" class="LineNr"> 618 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/7&quot;</span>/imm32
-<span id="L619" class="LineNr"> 619 </span>    68/push  <span class="Constant">&quot;== data 0x2 &quot;</span>/imm32
+<span id="L618" class="LineNr"> 618 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/6&quot;</span>/imm32
+<span id="L619" class="LineNr"> 619 </span>    68/push  <span class="Constant">&quot;2 3 &quot;</span>/imm32
 <span id="L620" class="LineNr"> 620 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L621" class="LineNr"> 621 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L622" class="LineNr"> 622 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L623" class="LineNr"> 623 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L624" class="LineNr"> 624 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L625" class="LineNr"> 625 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;4 5/imm32 &quot;, msg)</span>
+<span id="L625" class="LineNr"> 625 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;== data 0x2 &quot;, msg)</span>
 <span id="L626" class="LineNr"> 626 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L627" class="LineNr"> 627 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L386'>test-subx-dquotes-is-idempotent-by-default</a>/8&quot;</span>/imm32
-<span id="L628" class="LineNr"> 628 </span>    68/push  <span class="Constant">&quot;4 5/imm32 &quot;</span>/imm32
+<span id="L627" class="LineNr"> 627 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/7&quot;</span>/imm32
+<span id="L628" class="LineNr"> 628 </span>    68/push  <span class="Constant">&quot;== data 0x2 &quot;</span>/imm32
 <span id="L629" class="LineNr"> 629 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L630" class="LineNr"> 630 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L631" class="LineNr"> 631 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L632" class="LineNr"> 632 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L633" class="LineNr"> 633 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L634" class="LineNr"> 634 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L635" class="LineNr"> 635 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L636" class="LineNr"> 636 </span>    5d/pop-to-ebp
-<span id="L637" class="LineNr"> 637 </span>    c3/return
-<span id="L638" class="LineNr"> 638 </span>
-<span id="L639" class="LineNr"> 639 </span><span class="subxTest">test-subx-dquotes-processes-string-literals</span>:
-<span id="L640" class="LineNr"> 640 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L641" class="LineNr"> 641 </span>    55/push-ebp
-<span id="L642" class="LineNr"> 642 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L643" class="LineNr"> 643 </span>    <span class="subxComment"># setup</span>
-<span id="L644" class="LineNr"> 644 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
-<span id="L645" class="LineNr"> 645 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L646" class="LineNr"> 646 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L647" class="LineNr"> 647 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L648" class="LineNr"> 648 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L649" class="LineNr"> 649 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L650" class="LineNr"> 650 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L651" class="LineNr"> 651 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file-&gt;buffer)</span>
-<span id="L652" class="LineNr"> 652 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L653" class="LineNr"> 653 </span>    68/push  <a href='../061read-byte.subx.html#L317'>_test-input-buffered-file-&gt;buffer</a>/imm32
-<span id="L654" class="LineNr"> 654 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L655" class="LineNr"> 655 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L656" class="LineNr"> 656 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L657" class="LineNr"> 657 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L658" class="LineNr"> 658 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L659" class="LineNr"> 659 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L660" class="LineNr"> 660 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L661" class="LineNr"> 661 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L662" class="LineNr"> 662 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L663" class="LineNr"> 663 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L664" class="LineNr"> 664 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L665" class="LineNr"> 665 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
-<span id="L666" class="LineNr"> 666 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L667" class="LineNr"> 667 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
-<span id="L668" class="LineNr"> 668 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L669" class="LineNr"> 669 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L670" class="LineNr"> 670 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L671" class="LineNr"> 671 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L672" class="LineNr"> 672 </span>    <span class="subxComment"># initialize input (meta comments in parens)</span>
-<span id="L673" class="LineNr"> 673 </span>    <span class="subxComment">#   == code  (new segment)</span>
-<span id="L674" class="LineNr"> 674 </span>    <span class="subxComment">#   1 &quot;a&quot;/x</span>
-<span id="L675" class="LineNr"> 675 </span>    <span class="subxComment">#   2 &quot;bc&quot;/y</span>
-<span id="L676" class="LineNr"> 676 </span>    68/push  <span class="Constant">&quot;== code 0x1\n&quot;</span>/imm32
-<span id="L677" class="LineNr"> 677 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L678" class="LineNr"> 678 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L679" class="LineNr"> 679 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L680" class="LineNr"> 680 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L681" class="LineNr"> 681 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L682" class="LineNr"> 682 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;1 \&quot;a\&quot;/x\n&quot;)</span>
-<span id="L683" class="LineNr"> 683 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L684" class="LineNr"> 684 </span>    68/push  <span class="Constant">&quot;1 \&quot;</span>a\<span class="Constant">&quot;/x\n&quot;</span>/imm32
-<span id="L685" class="LineNr"> 685 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L686" class="LineNr"> 686 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L687" class="LineNr"> 687 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L688" class="LineNr"> 688 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L689" class="LineNr"> 689 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L690" class="LineNr"> 690 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;2 \&quot;bc\&quot;/y\n&quot;)</span>
-<span id="L691" class="LineNr"> 691 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L692" class="LineNr"> 692 </span>    68/push  <span class="Constant">&quot;2 \&quot;</span>bc\<span class="Constant">&quot;/y\n&quot;</span>/imm32
-<span id="L693" class="LineNr"> 693 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
-<span id="L694" class="LineNr"> 694 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L695" class="LineNr"> 695 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L696" class="LineNr"> 696 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L697" class="LineNr"> 697 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L698" class="LineNr"> 698 </span>    <span class="subxComment"># subx-dquotes(_test-input-buffered-file, _test-output-buffered-file)</span>
-<span id="L699" class="LineNr"> 699 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L700" class="LineNr"> 700 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L701" class="LineNr"> 701 </span>    68/push  <a href='../061read-byte.subx.html#L314'>_test-input-buffered-file</a>/imm32
-<span id="L702" class="LineNr"> 702 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L703" class="LineNr"> 703 </span>    e8/call  <a href='dquotes.subx.html#L85'>subx-dquotes</a>/disp32
-<span id="L704" class="LineNr"> 704 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L705" class="LineNr"> 705 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L706" class="LineNr"> 706 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
-<span id="L707" class="LineNr"> 707 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L708" class="LineNr"> 708 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L709" class="LineNr"> 709 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L710" class="LineNr"> 710 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L711" class="LineNr"> 711 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L712" class="LineNr"> 712 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L713" class="LineNr"> 713 </span>    <span class="subxComment"># check output</span>
-<span id="L714" class="LineNr"> 714 </span>    <span class="subxComment">#   == code 0x1</span>
-<span id="L715" class="LineNr"> 715 </span>    <span class="subxComment">#   1 _string1/x</span>
-<span id="L716" class="LineNr"> 716 </span>    <span class="subxComment">#   2 _string2/y</span>
-<span id="L717" class="LineNr"> 717 </span>    <span class="subxComment">#   == data</span>
-<span id="L718" class="LineNr"> 718 </span>    <span class="subxComment">#   _string1:</span>
-<span id="L719" class="LineNr"> 719 </span>    <span class="subxComment">#   1/imm32 61/a</span>
-<span id="L720" class="LineNr"> 720 </span>    <span class="subxComment">#   _string2:</span>
-<span id="L721" class="LineNr"> 721 </span>    <span class="subxComment">#   2/imm32 62/b 63/c</span>
-<span id="L722" class="LineNr"> 722 </span>    <span class="subxComment"># We don't care right now what exactly happens to comments. Trailing spaces are also minor details.</span>
-<span id="L723" class="LineNr"> 723 </span>    <span class="subxComment">#</span>
-<span id="L724" class="LineNr"> 724 </span>    <span class="subxComment"># Open question: how to make this check more robust.</span>
-<span id="L725" class="LineNr"> 725 </span>    <span class="subxComment"># We don't actually care what the auto-generated string variables are</span>
-<span id="L726" class="LineNr"> 726 </span>    <span class="subxComment"># called. We just want to make sure instructions using string literals</span>
-<span id="L727" class="LineNr"> 727 </span>    <span class="subxComment"># switch to a string variable with the right value.</span>
-<span id="L728" class="LineNr"> 728 </span>    <span class="subxComment"># (Modifying string literals completely off the radar for now.)</span>
-<span id="L729" class="Folded"> 729 </span><span class="Folded">+-- 33 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L762" class="LineNr"> 762 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;== code 0x1 &quot;, msg)</span>
-<span id="L763" class="LineNr"> 763 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L764" class="LineNr"> 764 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L639'>test-subx-dquotes-processes-string-literals</a>/0&quot;</span>/imm32
-<span id="L765" class="LineNr"> 765 </span>    68/push  <span class="Constant">&quot;== code 0x1 &quot;</span>/imm32
-<span id="L766" class="LineNr"> 766 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L767" class="LineNr"> 767 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L768" class="LineNr"> 768 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
-<span id="L769" class="LineNr"> 769 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L770" class="LineNr"> 770 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L771" class="LineNr"> 771 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;1 _string1/x &quot;, msg)</span>
+<span id="L634" class="LineNr"> 634 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;4 5/imm32 &quot;, msg)</span>
+<span id="L635" class="LineNr"> 635 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L636" class="LineNr"> 636 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L395'>test-subx-dquotes-is-idempotent-by-default</a>/8&quot;</span>/imm32
+<span id="L637" class="LineNr"> 637 </span>    68/push  <span class="Constant">&quot;4 5/imm32 &quot;</span>/imm32
+<span id="L638" class="LineNr"> 638 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L639" class="LineNr"> 639 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L640" class="LineNr"> 640 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
+<span id="L641" class="LineNr"> 641 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L642" class="LineNr"> 642 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L643" class="LineNr"> 643 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L644" class="LineNr"> 644 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L645" class="LineNr"> 645 </span>    5d/pop-to-ebp
+<span id="L646" class="LineNr"> 646 </span>    c3/return
+<span id="L647" class="LineNr"> 647 </span>
+<span id="L648" class="LineNr"> 648 </span><span class="subxTest">test-subx-dquotes-processes-string-literals</span>:
+<span id="L649" class="LineNr"> 649 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L650" class="LineNr"> 650 </span>    55/push-ebp
+<span id="L651" class="LineNr"> 651 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L652" class="LineNr"> 652 </span>    <span class="subxComment"># setup</span>
+<span id="L653" class="LineNr"> 653 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
+<span id="L654" class="LineNr"> 654 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L655" class="LineNr"> 655 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L656" class="LineNr"> 656 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L657" class="LineNr"> 657 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L658" class="LineNr"> 658 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L659" class="LineNr"> 659 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L660" class="LineNr"> 660 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-buffered-file-&gt;buffer)</span>
+<span id="L661" class="LineNr"> 661 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L662" class="LineNr"> 662 </span>    68/push  <a href='../061read-byte.subx.html#L317'>_test-input-buffered-file-&gt;buffer</a>/imm32
+<span id="L663" class="LineNr"> 663 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L664" class="LineNr"> 664 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L665" class="LineNr"> 665 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L666" class="LineNr"> 666 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L667" class="LineNr"> 667 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L668" class="LineNr"> 668 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L669" class="LineNr"> 669 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L670" class="LineNr"> 670 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L671" class="LineNr"> 671 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L672" class="LineNr"> 672 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L673" class="LineNr"> 673 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L674" class="LineNr"> 674 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
+<span id="L675" class="LineNr"> 675 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L676" class="LineNr"> 676 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
+<span id="L677" class="LineNr"> 677 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L678" class="LineNr"> 678 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L679" class="LineNr"> 679 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L680" class="LineNr"> 680 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L681" class="LineNr"> 681 </span>    <span class="subxComment"># initialize input (meta comments in parens)</span>
+<span id="L682" class="LineNr"> 682 </span>    <span class="subxComment">#   == code  (new segment)</span>
+<span id="L683" class="LineNr"> 683 </span>    <span class="subxComment">#   1 &quot;a&quot;/x</span>
+<span id="L684" class="LineNr"> 684 </span>    <span class="subxComment">#   2 &quot;bc&quot;/y</span>
+<span id="L685" class="LineNr"> 685 </span>    68/push  <span class="Constant">&quot;== code 0x1\n&quot;</span>/imm32
+<span id="L686" class="LineNr"> 686 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L687" class="LineNr"> 687 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L688" class="LineNr"> 688 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L689" class="LineNr"> 689 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L690" class="LineNr"> 690 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L691" class="LineNr"> 691 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;1 \&quot;a\&quot;/x\n&quot;)</span>
+<span id="L692" class="LineNr"> 692 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L693" class="LineNr"> 693 </span>    68/push  <span class="Constant">&quot;1 \&quot;</span>a\<span class="Constant">&quot;/x\n&quot;</span>/imm32
+<span id="L694" class="LineNr"> 694 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L695" class="LineNr"> 695 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L696" class="LineNr"> 696 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L697" class="LineNr"> 697 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L698" class="LineNr"> 698 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L699" class="LineNr"> 699 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;2 \&quot;bc\&quot;/y\n&quot;)</span>
+<span id="L700" class="LineNr"> 700 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L701" class="LineNr"> 701 </span>    68/push  <span class="Constant">&quot;2 \&quot;</span>bc\<span class="Constant">&quot;/y\n&quot;</span>/imm32
+<span id="L702" class="LineNr"> 702 </span>    68/push  <a href='../061read-byte.subx.html#L288'>_test-input-stream</a>/imm32
+<span id="L703" class="LineNr"> 703 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L704" class="LineNr"> 704 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L705" class="LineNr"> 705 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L706" class="LineNr"> 706 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L707" class="LineNr"> 707 </span>    <span class="subxComment"># subx-dquotes(_test-input-buffered-file, _test-output-buffered-file)</span>
+<span id="L708" class="LineNr"> 708 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L709" class="LineNr"> 709 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L710" class="LineNr"> 710 </span>    68/push  <a href='../061read-byte.subx.html#L314'>_test-input-buffered-file</a>/imm32
+<span id="L711" class="LineNr"> 711 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L712" class="LineNr"> 712 </span>    e8/call  <a href='dquotes.subx.html#L85'>subx-dquotes</a>/disp32
+<span id="L713" class="LineNr"> 713 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L714" class="LineNr"> 714 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L715" class="LineNr"> 715 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
+<span id="L716" class="LineNr"> 716 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L717" class="LineNr"> 717 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L718" class="LineNr"> 718 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L719" class="LineNr"> 719 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
+<span id="L720" class="LineNr"> 720 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L721" class="LineNr"> 721 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L722" class="LineNr"> 722 </span>    <span class="subxComment"># check output</span>
+<span id="L723" class="LineNr"> 723 </span>    <span class="subxComment">#   == code 0x1</span>
+<span id="L724" class="LineNr"> 724 </span>    <span class="subxComment">#   1 _string1/x</span>
+<span id="L725" class="LineNr"> 725 </span>    <span class="subxComment">#   2 _string2/y</span>
+<span id="L726" class="LineNr"> 726 </span>    <span class="subxComment">#   == data</span>
+<span id="L727" class="LineNr"> 727 </span>    <span class="subxComment">#   _string1:</span>
+<span id="L728" class="LineNr"> 728 </span>    <span class="subxComment">#   1/imm32 61/a</span>
+<span id="L729" class="LineNr"> 729 </span>    <span class="subxComment">#   _string2:</span>
+<span id="L730" class="LineNr"> 730 </span>    <span class="subxComment">#   2/imm32 62/b 63/c</span>
+<span id="L731" class="LineNr"> 731 </span>    <span class="subxComment"># We don't care right now what exactly happens to comments. Trailing spaces are also minor details.</span>
+<span id="L732" class="LineNr"> 732 </span>    <span class="subxComment">#</span>
+<span id="L733" class="LineNr"> 733 </span>    <span class="subxComment"># Open question: how to make this check more robust.</span>
+<span id="L734" class="LineNr"> 734 </span>    <span class="subxComment"># We don't actually care what the auto-generated string variables are</span>
+<span id="L735" class="LineNr"> 735 </span>    <span class="subxComment"># called. We just want to make sure instructions using string literals</span>
+<span id="L736" class="LineNr"> 736 </span>    <span class="subxComment"># switch to a string variable with the right value.</span>
+<span id="L737" class="LineNr"> 737 </span>    <span class="subxComment"># (Modifying string literals completely off the radar for now.)</span>
+<span id="L738" class="Folded"> 738 </span><span class="Folded">+-- 33 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L771" class="LineNr"> 771 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;== code 0x1 &quot;, msg)</span>
 <span id="L772" class="LineNr"> 772 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L773" class="LineNr"> 773 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L639'>test-subx-dquotes-processes-string-literals</a>/1&quot;</span>/imm32
-<span id="L774" class="LineNr"> 774 </span>    68/push  <span class="Constant">&quot;1 _string1/x &quot;</span>/imm32
+<span id="L773" class="LineNr"> 773 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L648'>test-subx-dquotes-processes-string-literals</a>/0&quot;</span>/imm32
+<span id="L774" class="LineNr"> 774 </span>    68/push  <span class="Constant">&quot;== code 0x1 &quot;</span>/imm32
 <span id="L775" class="LineNr"> 775 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L776" class="LineNr"> 776 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L777" class="LineNr"> 777 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L778" class="LineNr"> 778 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L779" class="LineNr"> 779 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L780" class="LineNr"> 780 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;2 _string2/y &quot;, msg)</span>
+<span id="L780" class="LineNr"> 780 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;1 _string1/x &quot;, msg)</span>
 <span id="L781" class="LineNr"> 781 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L782" class="LineNr"> 782 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L639'>test-subx-dquotes-processes-string-literals</a>/2&quot;</span>/imm32
-<span id="L783" class="LineNr"> 783 </span>    68/push  <span class="Constant">&quot;2 _string2/y &quot;</span>/imm32
+<span id="L782" class="LineNr"> 782 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L648'>test-subx-dquotes-processes-string-literals</a>/1&quot;</span>/imm32
+<span id="L783" class="LineNr"> 783 </span>    68/push  <span class="Constant">&quot;1 _string1/x &quot;</span>/imm32
 <span id="L784" class="LineNr"> 784 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L785" class="LineNr"> 785 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L786" class="LineNr"> 786 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L787" class="LineNr"> 787 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L788" class="LineNr"> 788 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L789" class="LineNr"> 789 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;== data&quot;, msg)</span>
+<span id="L789" class="LineNr"> 789 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;2 _string2/y &quot;, msg)</span>
 <span id="L790" class="LineNr"> 790 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L791" class="LineNr"> 791 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L639'>test-subx-dquotes-processes-string-literals</a>/3&quot;</span>/imm32
-<span id="L792" class="LineNr"> 792 </span>    68/push  <span class="Constant">&quot;== data&quot;</span>/imm32
+<span id="L791" class="LineNr"> 791 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L648'>test-subx-dquotes-processes-string-literals</a>/2&quot;</span>/imm32
+<span id="L792" class="LineNr"> 792 </span>    68/push  <span class="Constant">&quot;2 _string2/y &quot;</span>/imm32
 <span id="L793" class="LineNr"> 793 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L794" class="LineNr"> 794 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L795" class="LineNr"> 795 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L796" class="LineNr"> 796 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L797" class="LineNr"> 797 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L798" class="LineNr"> 798 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;_string1: &quot;, msg)</span>
+<span id="L798" class="LineNr"> 798 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;== data&quot;, msg)</span>
 <span id="L799" class="LineNr"> 799 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L800" class="LineNr"> 800 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L639'>test-subx-dquotes-processes-string-literals</a>/4&quot;</span>/imm32
-<span id="L801" class="LineNr"> 801 </span>    68/push  <span class="Constant">&quot;_string1:&quot;</span>/imm32
+<span id="L800" class="LineNr"> 800 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L648'>test-subx-dquotes-processes-string-literals</a>/3&quot;</span>/imm32
+<span id="L801" class="LineNr"> 801 </span>    68/push  <span class="Constant">&quot;== data&quot;</span>/imm32
 <span id="L802" class="LineNr"> 802 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L803" class="LineNr"> 803 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L804" class="LineNr"> 804 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L805" class="LineNr"> 805 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L806" class="LineNr"> 806 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L807" class="LineNr"> 807 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;1/imm32 61/a &quot;, msg)</span>
+<span id="L807" class="LineNr"> 807 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;_string1: &quot;, msg)</span>
 <span id="L808" class="LineNr"> 808 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L809" class="LineNr"> 809 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L639'>test-subx-dquotes-processes-string-literals</a>/5&quot;</span>/imm32
-<span id="L810" class="LineNr"> 810 </span>    68/push  <span class="Constant">&quot;0x00000001/imm32 61/a &quot;</span>/imm32
+<span id="L809" class="LineNr"> 809 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L648'>test-subx-dquotes-processes-string-literals</a>/4&quot;</span>/imm32
+<span id="L810" class="LineNr"> 810 </span>    68/push  <span class="Constant">&quot;_string1:&quot;</span>/imm32
 <span id="L811" class="LineNr"> 811 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L812" class="LineNr"> 812 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L813" class="LineNr"> 813 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L814" class="LineNr"> 814 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L815" class="LineNr"> 815 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L816" class="LineNr"> 816 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;_string2: &quot;, msg)</span>
+<span id="L816" class="LineNr"> 816 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;1/imm32 61/a &quot;, msg)</span>
 <span id="L817" class="LineNr"> 817 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L818" class="LineNr"> 818 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L639'>test-subx-dquotes-processes-string-literals</a>/6&quot;</span>/imm32
-<span id="L819" class="LineNr"> 819 </span>    68/push  <span class="Constant">&quot;_string2:&quot;</span>/imm32
+<span id="L818" class="LineNr"> 818 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L648'>test-subx-dquotes-processes-string-literals</a>/5&quot;</span>/imm32
+<span id="L819" class="LineNr"> 819 </span>    68/push  <span class="Constant">&quot;0x00000001/imm32 61/a &quot;</span>/imm32
 <span id="L820" class="LineNr"> 820 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L821" class="LineNr"> 821 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L822" class="LineNr"> 822 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L823" class="LineNr"> 823 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L824" class="LineNr"> 824 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L825" class="LineNr"> 825 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;2/imm32 62/b 63/c &quot;, msg)</span>
+<span id="L825" class="LineNr"> 825 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;_string2: &quot;, msg)</span>
 <span id="L826" class="LineNr"> 826 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L827" class="LineNr"> 827 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L639'>test-subx-dquotes-processes-string-literals</a>/7&quot;</span>/imm32
-<span id="L828" class="LineNr"> 828 </span>    68/push  <span class="Constant">&quot;0x00000002/imm32 62/b 63/c &quot;</span>/imm32
+<span id="L827" class="LineNr"> 827 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L648'>test-subx-dquotes-processes-string-literals</a>/6&quot;</span>/imm32
+<span id="L828" class="LineNr"> 828 </span>    68/push  <span class="Constant">&quot;_string2:&quot;</span>/imm32
 <span id="L829" class="LineNr"> 829 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
 <span id="L830" class="LineNr"> 830 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L831" class="LineNr"> 831 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
 <span id="L832" class="LineNr"> 832 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L833" class="LineNr"> 833 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L834" class="LineNr"> 834 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L835" class="LineNr"> 835 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L836" class="LineNr"> 836 </span>    5d/pop-to-ebp
-<span id="L837" class="LineNr"> 837 </span>    c3/return
-<span id="L838" class="LineNr"> 838 </span>
-<span id="L839" class="LineNr"> 839 </span><span class="subxComment"># generate the data segment contents byte by byte for a given slice</span>
-<span id="L840" class="LineNr"> 840 </span><span class="subxFunction">emit-string-literal-data</span>:  <span class="subxComment"># out : (address stream), word : (address slice)</span>
-<span id="L841" class="LineNr"> 841 </span>    <span class="subxComment"># pseudocode</span>
-<span id="L842" class="LineNr"> 842 </span>    <span class="subxComment">#   len = string-length-at-start-of-slice(word-&gt;start, word-&gt;end)</span>
-<span id="L843" class="LineNr"> 843 </span>    <span class="subxComment">#   print(out, &quot;#{len}/imm32 &quot;)</span>
-<span id="L844" class="LineNr"> 844 </span>    <span class="subxComment">#   curr = word-&gt;start</span>
-<span id="L845" class="LineNr"> 845 </span>    <span class="subxComment">#   ++curr  # skip '&quot;'</span>
-<span id="L846" class="LineNr"> 846 </span>    <span class="subxComment">#   idx = 0</span>
-<span id="L847" class="LineNr"> 847 </span>    <span class="subxComment">#   while true</span>
-<span id="L848" class="LineNr"> 848 </span>    <span class="subxComment">#     if (curr &gt;= word-&gt;end) break</span>
-<span id="L849" class="LineNr"> 849 </span>    <span class="subxComment">#     c = *curr</span>
-<span id="L850" class="LineNr"> 850 </span>    <span class="subxComment">#     if (c == '&quot;') break</span>
-<span id="L851" class="LineNr"> 851 </span>    <span class="subxComment">#     if (c == '\') {</span>
-<span id="L852" class="LineNr"> 852 </span>    <span class="subxComment">#       ++curr</span>
-<span id="L853" class="LineNr"> 853 </span>    <span class="subxComment">#       c = *curr</span>
-<span id="L854" class="LineNr"> 854 </span>    <span class="subxComment">#       if (c == 'n')</span>
-<span id="L855" class="LineNr"> 855 </span>    <span class="subxComment">#         c = newline</span>
-<span id="L856" class="LineNr"> 856 </span>    <span class="subxComment">#     }</span>
-<span id="L857" class="LineNr"> 857 </span>    <span class="subxComment">#     append-byte-hex(out, c)</span>
-<span id="L858" class="LineNr"> 858 </span>    <span class="subxComment">#     if c is alphanumeric:</span>
-<span id="L859" class="LineNr"> 859 </span>    <span class="subxComment">#       write(out, &quot;/&quot;)</span>
-<span id="L860" class="LineNr"> 860 </span>    <span class="subxComment">#       append-byte(out, c)</span>
-<span id="L861" class="LineNr"> 861 </span>    <span class="subxComment">#     write(out, &quot; &quot;)</span>
-<span id="L862" class="LineNr"> 862 </span>    <span class="subxComment">#     ++curr</span>
-<span id="L863" class="LineNr"> 863 </span>    <span class="subxComment">#     ++idx</span>
-<span id="L864" class="LineNr"> 864 </span>    <span class="subxComment">#     if idx &gt;= 0x40</span>
-<span id="L865" class="LineNr"> 865 </span>    <span class="subxComment">#       idx = 0</span>
-<span id="L866" class="LineNr"> 866 </span>    <span class="subxComment">#       write(out, &quot;\n&quot;)</span>
-<span id="L867" class="LineNr"> 867 </span>    <span class="subxComment">#</span>
-<span id="L868" class="LineNr"> 868 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L869" class="LineNr"> 869 </span>    55/push-ebp
-<span id="L870" class="LineNr"> 870 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L871" class="LineNr"> 871 </span>    <span class="subxS1Comment"># . save registers</span>
-<span id="L872" class="LineNr"> 872 </span>    50/push-eax
-<span id="L873" class="LineNr"> 873 </span>    51/push-ecx
-<span id="L874" class="LineNr"> 874 </span>    52/push-edx
-<span id="L875" class="LineNr"> 875 </span>    53/push-ebx
-<span id="L876" class="LineNr"> 876 </span>    56/push-esi
-<span id="L877" class="LineNr"> 877 </span>    <span class="subxComment"># esi = word</span>
-<span id="L878" class="LineNr"> 878 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+12) to esi</span>
-<span id="L879" class="LineNr"> 879 </span>    <span class="subxComment"># idx/ebx = 0</span>
-<span id="L880" class="LineNr"> 880 </span>    31/xor                          3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ebx</span>
-<span id="L881" class="LineNr"> 881 </span>    <span class="subxComment"># curr/edx = word-&gt;start</span>
-<span id="L882" class="LineNr"> 882 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
-<span id="L883" class="LineNr"> 883 </span>    <span class="subxComment"># max/esi = word-&gt;end</span>
-<span id="L884" class="LineNr"> 884 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to esi</span>
-<span id="L885" class="LineNr"> 885 </span><span class="Constant">$emit-string-literal-data:emit-length</span>:
-<span id="L886" class="LineNr"> 886 </span>    <span class="subxComment"># len/eax = string-length-at-start-of-slice(word-&gt;start, word-&gt;end)</span>
-<span id="L887" class="LineNr"> 887 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L888" class="LineNr"> 888 </span>    56/push-esi
-<span id="L889" class="LineNr"> 889 </span>    52/push-edx
-<span id="L890" class="LineNr"> 890 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L891" class="LineNr"> 891 </span>    e8/call  <a href='dquotes.subx.html#L1772'>string-length-at-start-of-slice</a>/disp32
-<span id="L892" class="LineNr"> 892 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L893" class="LineNr"> 893 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L894" class="LineNr"> 894 </span>    <span class="subxComment"># print(out, &quot;#{len}/imm32 &quot;)</span>
-<span id="L895" class="LineNr"> 895 </span>    <span class="subxS1Comment"># . print-int32(out, len)</span>
+<span id="L834" class="LineNr"> 834 </span>    <span class="subxS1Comment"># . check-next-stream-line-equal(_test-output-stream, &quot;2/imm32 62/b 63/c &quot;, msg)</span>
+<span id="L835" class="LineNr"> 835 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L836" class="LineNr"> 836 </span>    68/push  <span class="Constant">&quot;F - <a href='dquotes.subx.html#L648'>test-subx-dquotes-processes-string-literals</a>/7&quot;</span>/imm32
+<span id="L837" class="LineNr"> 837 </span>    68/push  <span class="Constant">&quot;0x00000002/imm32 62/b 63/c &quot;</span>/imm32
+<span id="L838" class="LineNr"> 838 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L839" class="LineNr"> 839 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L840" class="LineNr"> 840 </span>    e8/call  <a href='../058stream-equal.subx.html#L563'>check-next-stream-line-equal</a>/disp32
+<span id="L841" class="LineNr"> 841 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L842" class="LineNr"> 842 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L843" class="LineNr"> 843 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L844" class="LineNr"> 844 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L845" class="LineNr"> 845 </span>    5d/pop-to-ebp
+<span id="L846" class="LineNr"> 846 </span>    c3/return
+<span id="L847" class="LineNr"> 847 </span>
+<span id="L848" class="LineNr"> 848 </span><span class="subxComment"># generate the data segment contents byte by byte for a given slice</span>
+<span id="L849" class="LineNr"> 849 </span><span class="subxFunction">emit-string-literal-data</span>:  <span class="subxComment"># out : (address stream), word : (address slice)</span>
+<span id="L850" class="LineNr"> 850 </span>    <span class="subxComment"># pseudocode</span>
+<span id="L851" class="LineNr"> 851 </span>    <span class="subxComment">#   len = string-length-at-start-of-slice(word-&gt;start, word-&gt;end)</span>
+<span id="L852" class="LineNr"> 852 </span>    <span class="subxComment">#   print(out, &quot;#{len}/imm32 &quot;)</span>
+<span id="L853" class="LineNr"> 853 </span>    <span class="subxComment">#   curr = word-&gt;start</span>
+<span id="L854" class="LineNr"> 854 </span>    <span class="subxComment">#   ++curr  # skip '&quot;'</span>
+<span id="L855" class="LineNr"> 855 </span>    <span class="subxComment">#   idx = 0</span>
+<span id="L856" class="LineNr"> 856 </span>    <span class="subxComment">#   while true</span>
+<span id="L857" class="LineNr"> 857 </span>    <span class="subxComment">#     if (curr &gt;= word-&gt;end) break</span>
+<span id="L858" class="LineNr"> 858 </span>    <span class="subxComment">#     c = *curr</span>
+<span id="L859" class="LineNr"> 859 </span>    <span class="subxComment">#     if (c == '&quot;') break</span>
+<span id="L860" class="LineNr"> 860 </span>    <span class="subxComment">#     if (c == '\') {</span>
+<span id="L861" class="LineNr"> 861 </span>    <span class="subxComment">#       ++curr</span>
+<span id="L862" class="LineNr"> 862 </span>    <span class="subxComment">#       c = *curr</span>
+<span id="L863" class="LineNr"> 863 </span>    <span class="subxComment">#       if (c == 'n')</span>
+<span id="L864" class="LineNr"> 864 </span>    <span class="subxComment">#         c = newline</span>
+<span id="L865" class="LineNr"> 865 </span>    <span class="subxComment">#     }</span>
+<span id="L866" class="LineNr"> 866 </span>    <span class="subxComment">#     append-byte-hex(out, c)</span>
+<span id="L867" class="LineNr"> 867 </span>    <span class="subxComment">#     if c is alphanumeric:</span>
+<span id="L868" class="LineNr"> 868 </span>    <span class="subxComment">#       write(out, &quot;/&quot;)</span>
+<span id="L869" class="LineNr"> 869 </span>    <span class="subxComment">#       append-byte(out, c)</span>
+<span id="L870" class="LineNr"> 870 </span>    <span class="subxComment">#     write(out, &quot; &quot;)</span>
+<span id="L871" class="LineNr"> 871 </span>    <span class="subxComment">#     ++curr</span>
+<span id="L872" class="LineNr"> 872 </span>    <span class="subxComment">#     ++idx</span>
+<span id="L873" class="LineNr"> 873 </span>    <span class="subxComment">#     if idx &gt;= 0x40</span>
+<span id="L874" class="LineNr"> 874 </span>    <span class="subxComment">#       idx = 0</span>
+<span id="L875" class="LineNr"> 875 </span>    <span class="subxComment">#       write(out, &quot;\n&quot;)</span>
+<span id="L876" class="LineNr"> 876 </span>    <span class="subxComment">#</span>
+<span id="L877" class="LineNr"> 877 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L878" class="LineNr"> 878 </span>    55/push-ebp
+<span id="L879" class="LineNr"> 879 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L880" class="LineNr"> 880 </span>    <span class="subxS1Comment"># . save registers</span>
+<span id="L881" class="LineNr"> 881 </span>    50/push-eax
+<span id="L882" class="LineNr"> 882 </span>    51/push-ecx
+<span id="L883" class="LineNr"> 883 </span>    52/push-edx
+<span id="L884" class="LineNr"> 884 </span>    53/push-ebx
+<span id="L885" class="LineNr"> 885 </span>    56/push-esi
+<span id="L886" class="LineNr"> 886 </span>    <span class="subxComment"># esi = word</span>
+<span id="L887" class="LineNr"> 887 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+12) to esi</span>
+<span id="L888" class="LineNr"> 888 </span>    <span class="subxComment"># idx/ebx = 0</span>
+<span id="L889" class="LineNr"> 889 </span>    31/xor                          3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ebx</span>
+<span id="L890" class="LineNr"> 890 </span>    <span class="subxComment"># curr/edx = word-&gt;start</span>
+<span id="L891" class="LineNr"> 891 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to edx</span>
+<span id="L892" class="LineNr"> 892 </span>    <span class="subxComment"># max/esi = word-&gt;end</span>
+<span id="L893" class="LineNr"> 893 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to esi</span>
+<span id="L894" class="LineNr"> 894 </span><span class="Constant">$emit-string-literal-data:emit-length</span>:
+<span id="L895" class="LineNr"> 895 </span>    <span class="subxComment"># len/eax = string-length-at-start-of-slice(word-&gt;start, word-&gt;end)</span>
 <span id="L896" class="LineNr"> 896 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L897" class="LineNr"> 897 </span>    50/push-eax
-<span id="L898" class="LineNr"> 898 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L897" class="LineNr"> 897 </span>    56/push-esi
+<span id="L898" class="LineNr"> 898 </span>    52/push-edx
 <span id="L899" class="LineNr"> 899 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L900" class="LineNr"> 900 </span>    e8/call  <a href='../066print-int.subx.html#L177'>print-int32</a>/disp32
+<span id="L900" class="LineNr"> 900 </span>    e8/call  <a href='dquotes.subx.html#L1781'>string-length-at-start-of-slice</a>/disp32
 <span id="L901" class="LineNr"> 901 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L902" class="LineNr"> 902 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L903" class="LineNr"> 903 </span>    <span class="subxS1Comment"># . write(out, &quot;/imm32 &quot;)</span>
-<span id="L904" class="LineNr"> 904 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L905" class="LineNr"> 905 </span>    68/push  <span class="Constant">&quot;/imm32 &quot;</span>/imm32
-<span id="L906" class="LineNr"> 906 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L907" class="LineNr"> 907 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L908" class="LineNr"> 908 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L909" class="LineNr"> 909 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L910" class="LineNr"> 910 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L911" class="LineNr"> 911 </span><span class="Constant">$emit-string-literal-data:loop-init</span>:
-<span id="L912" class="LineNr"> 912 </span>    <span class="subxComment"># ++curr  # skip initial '&quot;'</span>
-<span id="L913" class="LineNr"> 913 </span>    42/increment-edx
-<span id="L914" class="LineNr"> 914 </span>    <span class="subxComment"># c/ecx = 0</span>
-<span id="L915" class="LineNr"> 915 </span>    31/xor                          3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ecx</span>
-<span id="L916" class="LineNr"> 916 </span><span class="Constant">$emit-string-literal-data:loop</span>:
-<span id="L917" class="LineNr"> 917 </span>    <span class="subxComment"># if (curr &gt;= max) break</span>
-<span id="L918" class="LineNr"> 918 </span>    39/compare                      3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare edx with esi</span>
-<span id="L919" class="LineNr"> 919 </span>    0f 83/jump-if-greater-or-equal-unsigned  $emit-string-literal-data:end/disp32
-<span id="L920" class="LineNr"> 920 </span>    <span class="subxComment"># CL = *curr</span>
-<span id="L921" class="LineNr"> 921 </span>    8a/copy-byte                    0/mod/indirect  2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/CL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *edx to CL</span>
-<span id="L922" class="LineNr"> 922 </span>    <span class="subxComment"># if (c == '&quot;') break</span>
-<span id="L923" class="LineNr"> 923 </span>    81          7/subop/compare     3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x22/imm32/dquote <span class="subxComment"># compare ecx</span>
-<span id="L924" class="LineNr"> 924 </span>    0f 84/jump-if-equal  $emit-string-literal-data:end/disp32
-<span id="L925" class="LineNr"> 925 </span>    <span class="subxComment"># if (c != '\') goto emit</span>
-<span id="L926" class="LineNr"> 926 </span>    81          7/subop/compare     3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x5c/imm32/backslash  <span class="subxComment"># compare ecx</span>
-<span id="L927" class="LineNr"> 927 </span>    75/jump-if-not-equal  $emit-string-literal-data:<a href='../079emit.subx.html#L10'>emit</a>/disp8
-<span id="L928" class="LineNr"> 928 </span>    <span class="subxComment"># ++curr</span>
-<span id="L929" class="LineNr"> 929 </span>    42/increment-edx
-<span id="L930" class="LineNr"> 930 </span>    <span class="subxComment"># if (curr &gt;= max) break</span>
-<span id="L931" class="LineNr"> 931 </span>    39/compare                      3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare edx with esi</span>
-<span id="L932" class="LineNr"> 932 </span>    0f 83/jump-if-greater-or-equal-unsigned  $emit-string-literal-data:end/disp32
-<span id="L933" class="LineNr"> 933 </span>    <span class="subxComment"># c = *curr</span>
-<span id="L934" class="LineNr"> 934 </span>    8a/copy-byte                    0/mod/indirect  2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/CL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *edx to CL</span>
-<span id="L935" class="LineNr"> 935 </span>    <span class="subxComment"># if (c == 'n') c = newline</span>
-<span id="L936" class="LineNr"> 936 </span>    81          7/subop/compare     3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x6e/imm32/n      <span class="subxComment"># compare ecx</span>
-<span id="L937" class="LineNr"> 937 </span>    75/jump-if-not-equal  $emit-string-literal-data:<a href='../079emit.subx.html#L10'>emit</a>/disp8
-<span id="L938" class="LineNr"> 938 </span>    b9/copy-to-ecx  0x0a/imm32/newline
-<span id="L939" class="LineNr"> 939 </span><span class="Constant">$emit-string-literal-data:<a href='../079emit.subx.html#L10'>emit</a></span>:
-<span id="L940" class="LineNr"> 940 </span>    <span class="subxComment"># append-byte-hex(out, CL)</span>
-<span id="L941" class="LineNr"> 941 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L942" class="LineNr"> 942 </span>    51/push-ecx
-<span id="L943" class="LineNr"> 943 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L944" class="LineNr"> 944 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L945" class="LineNr"> 945 </span>    e8/call  <a href='../066print-int.subx.html#L20'>append-byte-hex</a>/disp32
-<span id="L946" class="LineNr"> 946 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L947" class="LineNr"> 947 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L948" class="LineNr"> 948 </span>    <span class="subxComment"># if (is-alphanumeric?(*curr)) print(out, &quot;/#{*curr}&quot;)</span>
-<span id="L949" class="LineNr"> 949 </span>    <span class="subxS1Comment"># . eax = is-alphanumeric?(CL)</span>
+<span id="L903" class="LineNr"> 903 </span>    <span class="subxComment"># print(out, &quot;#{len}/imm32 &quot;)</span>
+<span id="L904" class="LineNr"> 904 </span>    <span class="subxS1Comment"># . print-int32(out, len)</span>
+<span id="L905" class="LineNr"> 905 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L906" class="LineNr"> 906 </span>    50/push-eax
+<span id="L907" class="LineNr"> 907 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L908" class="LineNr"> 908 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L909" class="LineNr"> 909 </span>    e8/call  <a href='../066print-int.subx.html#L177'>print-int32</a>/disp32
+<span id="L910" class="LineNr"> 910 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L911" class="LineNr"> 911 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L912" class="LineNr"> 912 </span>    <span class="subxS1Comment"># . write(out, &quot;/imm32 &quot;)</span>
+<span id="L913" class="LineNr"> 913 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L914" class="LineNr"> 914 </span>    68/push  <span class="Constant">&quot;/imm32 &quot;</span>/imm32
+<span id="L915" class="LineNr"> 915 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L916" class="LineNr"> 916 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L917" class="LineNr"> 917 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L918" class="LineNr"> 918 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L919" class="LineNr"> 919 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L920" class="LineNr"> 920 </span><span class="Constant">$emit-string-literal-data:loop-init</span>:
+<span id="L921" class="LineNr"> 921 </span>    <span class="subxComment"># ++curr  # skip initial '&quot;'</span>
+<span id="L922" class="LineNr"> 922 </span>    42/increment-edx
+<span id="L923" class="LineNr"> 923 </span>    <span class="subxComment"># c/ecx = 0</span>
+<span id="L924" class="LineNr"> 924 </span>    31/xor                          3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ecx</span>
+<span id="L925" class="LineNr"> 925 </span><span class="Constant">$emit-string-literal-data:loop</span>:
+<span id="L926" class="LineNr"> 926 </span>    <span class="subxComment"># if (curr &gt;= max) break</span>
+<span id="L927" class="LineNr"> 927 </span>    39/compare                      3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare edx with esi</span>
+<span id="L928" class="LineNr"> 928 </span>    0f 83/jump-if-greater-or-equal-unsigned  $emit-string-literal-data:end/disp32
+<span id="L929" class="LineNr"> 929 </span>    <span class="subxComment"># CL = *curr</span>
+<span id="L930" class="LineNr"> 930 </span>    8a/copy-byte                    0/mod/indirect  2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/CL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *edx to CL</span>
+<span id="L931" class="LineNr"> 931 </span>    <span class="subxComment"># if (c == '&quot;') break</span>
+<span id="L932" class="LineNr"> 932 </span>    81          7/subop/compare     3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x22/imm32/dquote <span class="subxComment"># compare ecx</span>
+<span id="L933" class="LineNr"> 933 </span>    0f 84/jump-if-equal  $emit-string-literal-data:end/disp32
+<span id="L934" class="LineNr"> 934 </span>    <span class="subxComment"># if (c != '\') goto emit</span>
+<span id="L935" class="LineNr"> 935 </span>    81          7/subop/compare     3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x5c/imm32/backslash  <span class="subxComment"># compare ecx</span>
+<span id="L936" class="LineNr"> 936 </span>    75/jump-if-not-equal  $emit-string-literal-data:<a href='../079emit.subx.html#L10'>emit</a>/disp8
+<span id="L937" class="LineNr"> 937 </span>    <span class="subxComment"># ++curr</span>
+<span id="L938" class="LineNr"> 938 </span>    42/increment-edx
+<span id="L939" class="LineNr"> 939 </span>    <span class="subxComment"># if (curr &gt;= max) break</span>
+<span id="L940" class="LineNr"> 940 </span>    39/compare                      3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare edx with esi</span>
+<span id="L941" class="LineNr"> 941 </span>    0f 83/jump-if-greater-or-equal-unsigned  $emit-string-literal-data:end/disp32
+<span id="L942" class="LineNr"> 942 </span>    <span class="subxComment"># c = *curr</span>
+<span id="L943" class="LineNr"> 943 </span>    8a/copy-byte                    0/mod/indirect  2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/CL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *edx to CL</span>
+<span id="L944" class="LineNr"> 944 </span>    <span class="subxComment"># if (c == 'n') c = newline</span>
+<span id="L945" class="LineNr"> 945 </span>    81          7/subop/compare     3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x6e/imm32/n      <span class="subxComment"># compare ecx</span>
+<span id="L946" class="LineNr"> 946 </span>    75/jump-if-not-equal  $emit-string-literal-data:<a href='../079emit.subx.html#L10'>emit</a>/disp8
+<span id="L947" class="LineNr"> 947 </span>    b9/copy-to-ecx  0x0a/imm32/newline
+<span id="L948" class="LineNr"> 948 </span><span class="Constant">$emit-string-literal-data:<a href='../079emit.subx.html#L10'>emit</a></span>:
+<span id="L949" class="LineNr"> 949 </span>    <span class="subxComment"># append-byte-hex(out, CL)</span>
 <span id="L950" class="LineNr"> 950 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L951" class="LineNr"> 951 </span>    51/push-ecx
-<span id="L952" class="LineNr"> 952 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L953" class="LineNr"> 953 </span>    e8/call  <a href='dquotes.subx.html#L1015'>is-alphanumeric?</a>/disp32
-<span id="L954" class="LineNr"> 954 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L955" class="LineNr"> 955 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L956" class="LineNr"> 956 </span>    <span class="subxS1Comment"># . if (eax == 0) goto char-done</span>
-<span id="L957" class="LineNr"> 957 </span>    3d/compare-eax-and  0/imm32
-<span id="L958" class="LineNr"> 958 </span>    74/jump-if-equal  $emit-string-literal-data:char-done/disp8
-<span id="L959" class="LineNr"> 959 </span>    <span class="subxS1Comment"># . write(out, &quot;/&quot;)</span>
-<span id="L960" class="LineNr"> 960 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L961" class="LineNr"> 961 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L101'>Slash</a></span>/imm32
-<span id="L962" class="LineNr"> 962 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L963" class="LineNr"> 963 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L964" class="LineNr"> 964 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L965" class="LineNr"> 965 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L966" class="LineNr"> 966 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L967" class="LineNr"> 967 </span>    <span class="subxS1Comment"># . append-byte(out, *curr)</span>
-<span id="L968" class="LineNr"> 968 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L969" class="LineNr"> 969 </span>    51/push-ecx
-<span id="L970" class="LineNr"> 970 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L971" class="LineNr"> 971 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L972" class="LineNr"> 972 </span>    e8/call  <a href='../064write-byte.subx.html#L208'>append-byte</a>/disp32
-<span id="L973" class="LineNr"> 973 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L974" class="LineNr"> 974 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L975" class="LineNr"> 975 </span><span class="Constant">$emit-string-literal-data:char-done</span>:
-<span id="L976" class="LineNr"> 976 </span>    <span class="subxComment"># write(out, &quot; &quot;)</span>
+<span id="L952" class="LineNr"> 952 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L953" class="LineNr"> 953 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L954" class="LineNr"> 954 </span>    e8/call  <a href='../066print-int.subx.html#L20'>append-byte-hex</a>/disp32
+<span id="L955" class="LineNr"> 955 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L956" class="LineNr"> 956 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L957" class="LineNr"> 957 </span>    <span class="subxComment"># if (is-alphanumeric?(*curr)) print(out, &quot;/#{*curr}&quot;)</span>
+<span id="L958" class="LineNr"> 958 </span>    <span class="subxS1Comment"># . eax = is-alphanumeric?(CL)</span>
+<span id="L959" class="LineNr"> 959 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L960" class="LineNr"> 960 </span>    51/push-ecx
+<span id="L961" class="LineNr"> 961 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L962" class="LineNr"> 962 </span>    e8/call  <a href='dquotes.subx.html#L1024'>is-alphanumeric?</a>/disp32
+<span id="L963" class="LineNr"> 963 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L964" class="LineNr"> 964 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L965" class="LineNr"> 965 </span>    <span class="subxS1Comment"># . if (eax == 0) goto char-done</span>
+<span id="L966" class="LineNr"> 966 </span>    3d/compare-eax-and  0/imm32
+<span id="L967" class="LineNr"> 967 </span>    74/jump-if-equal  $emit-string-literal-data:char-done/disp8
+<span id="L968" class="LineNr"> 968 </span>    <span class="subxS1Comment"># . write(out, &quot;/&quot;)</span>
+<span id="L969" class="LineNr"> 969 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L970" class="LineNr"> 970 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L101'>Slash</a></span>/imm32
+<span id="L971" class="LineNr"> 971 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L972" class="LineNr"> 972 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L973" class="LineNr"> 973 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L974" class="LineNr"> 974 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L975" class="LineNr"> 975 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L976" class="LineNr"> 976 </span>    <span class="subxS1Comment"># . append-byte(out, *curr)</span>
 <span id="L977" class="LineNr"> 977 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L978" class="LineNr"> 978 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L94'>Space</a></span>/imm32
+<span id="L978" class="LineNr"> 978 </span>    51/push-ecx
 <span id="L979" class="LineNr"> 979 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
 <span id="L980" class="LineNr"> 980 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L981" class="LineNr"> 981 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L981" class="LineNr"> 981 </span>    e8/call  <a href='../064write-byte.subx.html#L208'>append-byte</a>/disp32
 <span id="L982" class="LineNr"> 982 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L983" class="LineNr"> 983 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L984" class="LineNr"> 984 </span>    <span class="subxComment"># ++curr</span>
-<span id="L985" class="LineNr"> 985 </span>    42/increment-edx
-<span id="L986" class="LineNr"> 986 </span>    <span class="subxComment"># ++ idx</span>
-<span id="L987" class="LineNr"> 987 </span>    43/increment-ebx
-<span id="L988" class="LineNr"> 988 </span>    <span class="subxComment"># if (idx &lt; 0x40) continue</span>
-<span id="L989" class="LineNr"> 989 </span>    81          7/subop/compare     3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x40/imm32        <span class="subxComment"># compare ebx</span>
-<span id="L990" class="LineNr"> 990 </span>    7c/jump-if-lesser  $emit-string-literal-data:next-char/disp8
-<span id="L991" class="LineNr"> 991 </span>    <span class="subxComment"># idx = 0</span>
-<span id="L992" class="LineNr"> 992 </span>    31/xor                          3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ebx</span>
-<span id="L993" class="LineNr"> 993 </span>    <span class="subxComment"># write(out, &quot;\n&quot;)</span>
-<span id="L994" class="LineNr"> 994 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L995" class="LineNr"> 995 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
-<span id="L996" class="LineNr"> 996 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L997" class="LineNr"> 997 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L998" class="LineNr"> 998 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
-<span id="L999" class="LineNr"> 999 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1000" class="LineNr">1000 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1001" class="LineNr">1001 </span><span class="Constant">$emit-string-literal-data:next-char</span>:
-<span id="L1002" class="LineNr">1002 </span>    e9/jump $emit-string-literal-data:<span class="Constant">loop</span>/disp32
-<span id="L1003" class="LineNr">1003 </span><span class="Constant">$emit-string-literal-data:end</span>:
-<span id="L1004" class="LineNr">1004 </span>    <span class="subxS1Comment"># . restore registers</span>
-<span id="L1005" class="LineNr">1005 </span>    5e/pop-to-esi
-<span id="L1006" class="LineNr">1006 </span>    5b/pop-to-ebx
-<span id="L1007" class="LineNr">1007 </span>    5a/pop-to-edx
-<span id="L1008" class="LineNr">1008 </span>    59/pop-to-ecx
-<span id="L1009" class="LineNr">1009 </span>    58/pop-to-eax
-<span id="L1010" class="LineNr">1010 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1011" class="LineNr">1011 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1012" class="LineNr">1012 </span>    5d/pop-to-ebp
-<span id="L1013" class="LineNr">1013 </span>    c3/return
-<span id="L1014" class="LineNr">1014 </span>
-<span id="L1015" class="LineNr">1015 </span><span class="subxFunction">is-alphanumeric?</span>:  <span class="subxComment"># c : int -&gt; eax : boolean</span>
-<span id="L1016" class="LineNr">1016 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1017" class="LineNr">1017 </span>    55/push-ebp
-<span id="L1018" class="LineNr">1018 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1019" class="LineNr">1019 </span>    <span class="subxComment"># eax = c</span>
-<span id="L1020" class="LineNr">1020 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to eax</span>
-<span id="L1021" class="LineNr">1021 </span>    <span class="subxComment"># if (eax &lt; '0') return false</span>
-<span id="L1022" class="LineNr">1022 </span>    3d/compare-eax-with  0x30/imm32/0
-<span id="L1023" class="LineNr">1023 </span>    7c/jump-if-lesser  $is-alphanumeric?:false/disp8
-<span id="L1024" class="LineNr">1024 </span>    <span class="subxComment"># if (eax &lt;= '9') return true</span>
-<span id="L1025" class="LineNr">1025 </span>    3d/compare-eax-with  0x39/imm32/9
-<span id="L1026" class="LineNr">1026 </span>    7e/jump-if-lesser-or-equal  $is-alphanumeric?:true/disp8
-<span id="L1027" class="LineNr">1027 </span>    <span class="subxComment"># if (eax &lt; 'A') return false</span>
-<span id="L1028" class="LineNr">1028 </span>    3d/compare-eax-with  0x41/imm32/A
-<span id="L1029" class="LineNr">1029 </span>    7c/jump-if-lesser  $is-alphanumeric?:false/disp8
-<span id="L1030" class="LineNr">1030 </span>    <span class="subxComment"># if (eax &lt;= 'Z') return true</span>
-<span id="L1031" class="LineNr">1031 </span>    3d/compare-eax-with  0x5a/imm32/Z
-<span id="L1032" class="LineNr">1032 </span>    7e/jump-if-lesser-or-equal  $is-alphanumeric?:true/disp8
-<span id="L1033" class="LineNr">1033 </span>    <span class="subxComment"># if (eax &lt; 'a') return false</span>
-<span id="L1034" class="LineNr">1034 </span>    3d/compare-eax-with  0x61/imm32/a
-<span id="L1035" class="LineNr">1035 </span>    7c/jump-if-lesser  $is-alphanumeric?:false/disp8
-<span id="L1036" class="LineNr">1036 </span>    <span class="subxComment"># if (eax &lt;= 'z') return true</span>
-<span id="L1037" class="LineNr">1037 </span>    3d/compare-eax-with  0x7a/imm32/z
-<span id="L1038" class="LineNr">1038 </span>    7e/jump-if-lesser-or-equal  $is-alphanumeric?:true/disp8
-<span id="L1039" class="LineNr">1039 </span>    <span class="subxComment"># return false</span>
-<span id="L1040" class="LineNr">1040 </span><span class="Constant">$is-alphanumeric?:false</span>:
-<span id="L1041" class="LineNr">1041 </span>    b8/copy-to-eax  0/imm32/false
-<span id="L1042" class="LineNr">1042 </span>    eb/jump  $is-alphanumeric?:end/disp8
-<span id="L1043" class="LineNr">1043 </span><span class="Constant">$is-alphanumeric?:true</span>:
-<span id="L1044" class="LineNr">1044 </span>    b8/copy-to-eax  1/imm32/true
-<span id="L1045" class="LineNr">1045 </span><span class="Constant">$is-alphanumeric?:end</span>:
-<span id="L1046" class="LineNr">1046 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1047" class="LineNr">1047 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1048" class="LineNr">1048 </span>    5d/pop-to-ebp
-<span id="L1049" class="LineNr">1049 </span>    c3/return
-<span id="L1050" class="LineNr">1050 </span>
-<span id="L1051" class="LineNr">1051 </span><span class="subxTest">test-emit-string-literal-data</span>:
-<span id="L1052" class="LineNr">1052 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1053" class="LineNr">1053 </span>    55/push-ebp
-<span id="L1054" class="LineNr">1054 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1055" class="LineNr">1055 </span>    <span class="subxComment"># setup</span>
-<span id="L1056" class="LineNr">1056 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1057" class="LineNr">1057 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1058" class="LineNr">1058 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1059" class="LineNr">1059 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1060" class="LineNr">1060 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1061" class="LineNr">1061 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1062" class="LineNr">1062 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1063" class="LineNr">1063 </span>    <span class="subxComment"># var slice/ecx = '&quot;abc&quot;/d'</span>
-<span id="L1064" class="LineNr">1064 </span>    68/push  <a href='dquotes.subx.html#L1893'>_test-slice-abc-limit</a>/imm32
-<span id="L1065" class="LineNr">1065 </span>    68/push  <a href='dquotes.subx.html#L1890'>_test-slice-abc</a>/imm32
-<span id="L1066" class="LineNr">1066 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1067" class="LineNr">1067 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
-<span id="L1068" class="LineNr">1068 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1069" class="LineNr">1069 </span>    51/push-ecx
-<span id="L1070" class="LineNr">1070 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1071" class="LineNr">1071 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1072" class="LineNr">1072 </span>    e8/call  <a href='dquotes.subx.html#L840'>emit-string-literal-data</a>/disp32
-<span id="L1073" class="LineNr">1073 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1074" class="LineNr">1074 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1075" class="Folded">1075 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L1101" class="LineNr">1101 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;3/imm32 61/a 62/b 63/c &quot;, msg)</span>
-<span id="L1102" class="LineNr">1102 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1103" class="LineNr">1103 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data&quot;</span>/imm32
-<span id="L1104" class="LineNr">1104 </span>    68/push  <span class="Constant">&quot;0x00000003/imm32 61/a 62/b 63/c &quot;</span>/imm32
-<span id="L1105" class="LineNr">1105 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1106" class="LineNr">1106 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1107" class="LineNr">1107 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
-<span id="L1108" class="LineNr">1108 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1109" class="LineNr">1109 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1110" class="LineNr">1110 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1111" class="LineNr">1111 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1112" class="LineNr">1112 </span>    5d/pop-to-ebp
-<span id="L1113" class="LineNr">1113 </span>    c3/return
-<span id="L1114" class="LineNr">1114 </span>
-<span id="L1115" class="LineNr">1115 </span><span class="subxTest">test-emit-string-literal-data-empty</span>:
-<span id="L1116" class="LineNr">1116 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1117" class="LineNr">1117 </span>    55/push-ebp
-<span id="L1118" class="LineNr">1118 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1119" class="LineNr">1119 </span>    <span class="subxComment"># setup</span>
-<span id="L1120" class="LineNr">1120 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1121" class="LineNr">1121 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1122" class="LineNr">1122 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1123" class="LineNr">1123 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1124" class="LineNr">1124 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1125" class="LineNr">1125 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1126" class="LineNr">1126 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1127" class="LineNr">1127 </span>    <span class="subxComment"># var slice/ecx = '&quot;&quot;'</span>
-<span id="L1128" class="LineNr">1128 </span>    68/push  0/imm32/end
-<span id="L1129" class="LineNr">1129 </span>    68/push  0/imm32/start
-<span id="L1130" class="LineNr">1130 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1131" class="LineNr">1131 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
-<span id="L1132" class="LineNr">1132 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1133" class="LineNr">1133 </span>    51/push-ecx
-<span id="L1134" class="LineNr">1134 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1135" class="LineNr">1135 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1136" class="LineNr">1136 </span>    e8/call  <a href='dquotes.subx.html#L840'>emit-string-literal-data</a>/disp32
-<span id="L1137" class="LineNr">1137 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1138" class="LineNr">1138 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1139" class="Folded">1139 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L1165" class="LineNr">1165 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;0/imm32 &quot;, msg)</span>
-<span id="L1166" class="LineNr">1166 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1167" class="LineNr">1167 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data-empty&quot;</span>/imm32
-<span id="L1168" class="LineNr">1168 </span>    68/push  <span class="Constant">&quot;0x00000000/imm32 &quot;</span>/imm32
-<span id="L1169" class="LineNr">1169 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1170" class="LineNr">1170 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1171" class="LineNr">1171 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
-<span id="L1172" class="LineNr">1172 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1173" class="LineNr">1173 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1174" class="LineNr">1174 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1175" class="LineNr">1175 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1176" class="LineNr">1176 </span>    5d/pop-to-ebp
-<span id="L1177" class="LineNr">1177 </span>    c3/return
-<span id="L1178" class="LineNr">1178 </span>
-<span id="L1179" class="LineNr">1179 </span><span class="subxComment"># just to keep things simple</span>
-<span id="L1180" class="LineNr">1180 </span><span class="subxTest">test-emit-string-literal-data-no-metadata-for-non-alphanumerics</span>:
-<span id="L1181" class="LineNr">1181 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1182" class="LineNr">1182 </span>    55/push-ebp
-<span id="L1183" class="LineNr">1183 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1184" class="LineNr">1184 </span>    <span class="subxComment"># setup</span>
-<span id="L1185" class="LineNr">1185 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1186" class="LineNr">1186 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1187" class="LineNr">1187 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1188" class="LineNr">1188 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1189" class="LineNr">1189 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1190" class="LineNr">1190 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1191" class="LineNr">1191 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1192" class="LineNr">1192 </span>    <span class="subxComment"># var slice/ecx = '&quot;a b&quot;'</span>
-<span id="L1193" class="LineNr">1193 </span>    68/push  <a href='dquotes.subx.html#L1897'>_test-slice-a-space-b-limit</a>/imm32
-<span id="L1194" class="LineNr">1194 </span>    68/push  <a href='dquotes.subx.html#L1895'>_test-slice-a-space-b</a>/imm32
-<span id="L1195" class="LineNr">1195 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1196" class="LineNr">1196 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
-<span id="L1197" class="LineNr">1197 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1198" class="LineNr">1198 </span>    51/push-ecx
-<span id="L1199" class="LineNr">1199 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1200" class="LineNr">1200 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1201" class="LineNr">1201 </span>    e8/call  <a href='dquotes.subx.html#L840'>emit-string-literal-data</a>/disp32
-<span id="L1202" class="LineNr">1202 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1203" class="LineNr">1203 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1204" class="Folded">1204 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L1230" class="LineNr">1230 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;3/imm32 61/a 20 62/b &quot;, msg)  # ideally we'd like to say '20/space' but that requires managing names for codepoints</span>
-<span id="L1231" class="LineNr">1231 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1232" class="LineNr">1232 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data-no-metadata-for-non-alphanumerics&quot;</span>/imm32
-<span id="L1233" class="LineNr">1233 </span>    68/push  <span class="Constant">&quot;0x00000003/imm32 61/a 20 62/b &quot;</span>/imm32
-<span id="L1234" class="LineNr">1234 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1235" class="LineNr">1235 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1236" class="LineNr">1236 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
-<span id="L1237" class="LineNr">1237 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1238" class="LineNr">1238 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1239" class="LineNr">1239 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1240" class="LineNr">1240 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1241" class="LineNr">1241 </span>    5d/pop-to-ebp
-<span id="L1242" class="LineNr">1242 </span>    c3/return
-<span id="L1243" class="LineNr">1243 </span>
-<span id="L1244" class="LineNr">1244 </span><span class="subxTest">test-emit-string-literal-data-handles-escape-sequences</span>:
-<span id="L1245" class="LineNr">1245 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1246" class="LineNr">1246 </span>    55/push-ebp
-<span id="L1247" class="LineNr">1247 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1248" class="LineNr">1248 </span>    <span class="subxComment"># setup</span>
-<span id="L1249" class="LineNr">1249 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1250" class="LineNr">1250 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1251" class="LineNr">1251 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1252" class="LineNr">1252 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1253" class="LineNr">1253 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1254" class="LineNr">1254 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1255" class="LineNr">1255 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1256" class="LineNr">1256 </span>    <span class="subxComment"># var slice/ecx = '&quot;a\&quot;b&quot;'</span>
-<span id="L1257" class="LineNr">1257 </span>    68/push  <a href='dquotes.subx.html#L1901'>_test-slice-a-dquote-b-limit</a>/imm32
-<span id="L1258" class="LineNr">1258 </span>    68/push  <a href='dquotes.subx.html#L1899'>_test-slice-a-dquote-b</a>/imm32
-<span id="L1259" class="LineNr">1259 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1260" class="LineNr">1260 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
-<span id="L1261" class="LineNr">1261 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1262" class="LineNr">1262 </span>    51/push-ecx
-<span id="L1263" class="LineNr">1263 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1264" class="LineNr">1264 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1265" class="LineNr">1265 </span>    e8/call  <a href='dquotes.subx.html#L840'>emit-string-literal-data</a>/disp32
-<span id="L1266" class="LineNr">1266 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1267" class="LineNr">1267 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1268" class="Folded">1268 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L1294" class="LineNr">1294 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;3/imm32 61/a 22 62/b &quot;, msg)</span>
-<span id="L1295" class="LineNr">1295 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1296" class="LineNr">1296 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data-handles-escape-sequences&quot;</span>/imm32
-<span id="L1297" class="LineNr">1297 </span>    68/push  <span class="Constant">&quot;0x00000003/imm32 61/a 22 62/b &quot;</span>/imm32
-<span id="L1298" class="LineNr">1298 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1299" class="LineNr">1299 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1300" class="LineNr">1300 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
-<span id="L1301" class="LineNr">1301 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1302" class="LineNr">1302 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1303" class="LineNr">1303 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1304" class="LineNr">1304 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1305" class="LineNr">1305 </span>    5d/pop-to-ebp
-<span id="L1306" class="LineNr">1306 </span>    c3/return
-<span id="L1307" class="LineNr">1307 </span>
-<span id="L1308" class="LineNr">1308 </span><span class="subxTest">test-emit-string-literal-data-handles-newline-escape</span>:
-<span id="L1309" class="LineNr">1309 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1310" class="LineNr">1310 </span>    55/push-ebp
-<span id="L1311" class="LineNr">1311 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1312" class="LineNr">1312 </span>    <span class="subxComment"># setup</span>
-<span id="L1313" class="LineNr">1313 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1314" class="LineNr">1314 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1315" class="LineNr">1315 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1316" class="LineNr">1316 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1317" class="LineNr">1317 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1318" class="LineNr">1318 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1319" class="LineNr">1319 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1320" class="LineNr">1320 </span>    <span class="subxComment"># var slice/ecx = '&quot;a\nb&quot;'</span>
-<span id="L1321" class="LineNr">1321 </span>    68/push  <a href='dquotes.subx.html#L1905'>_test-slice-a-newline-b-limit</a>/imm32
-<span id="L1322" class="LineNr">1322 </span>    68/push  <a href='dquotes.subx.html#L1903'>_test-slice-a-newline-b</a>/imm32
-<span id="L1323" class="LineNr">1323 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1324" class="LineNr">1324 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
-<span id="L1325" class="LineNr">1325 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1326" class="LineNr">1326 </span>    51/push-ecx
-<span id="L1327" class="LineNr">1327 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1328" class="LineNr">1328 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1329" class="LineNr">1329 </span>    e8/call  <a href='dquotes.subx.html#L840'>emit-string-literal-data</a>/disp32
-<span id="L1330" class="LineNr">1330 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1331" class="LineNr">1331 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1332" class="Folded">1332 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L1358" class="LineNr">1358 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;3/imm32 61/a 0a 62/b &quot;, msg)</span>
-<span id="L1359" class="LineNr">1359 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1360" class="LineNr">1360 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data-handles-newline-escape&quot;</span>/imm32
-<span id="L1361" class="LineNr">1361 </span>    68/push  <span class="Constant">&quot;0x00000003/imm32 61/a 0a 62/b &quot;</span>/imm32
-<span id="L1362" class="LineNr">1362 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1363" class="LineNr">1363 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1364" class="LineNr">1364 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
-<span id="L1365" class="LineNr">1365 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1366" class="LineNr">1366 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1367" class="LineNr">1367 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1368" class="LineNr">1368 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1369" class="LineNr">1369 </span>    5d/pop-to-ebp
-<span id="L1370" class="LineNr">1370 </span>    c3/return
-<span id="L1371" class="LineNr">1371 </span>
-<span id="L1372" class="LineNr">1372 </span><span class="subxComment"># emit everything from a word except the initial datum</span>
-<span id="L1373" class="LineNr">1373 </span><span class="subxFunction">emit-metadata</span>:  <span class="subxComment"># out : (address buffered-file), word : (address slice)</span>
-<span id="L1374" class="LineNr">1374 </span>    <span class="subxComment"># pseudocode</span>
-<span id="L1375" class="LineNr">1375 </span>    <span class="subxComment">#   var slice = {0, word-&gt;end}</span>
-<span id="L1376" class="LineNr">1376 </span>    <span class="subxComment">#   curr = word-&gt;start</span>
-<span id="L1377" class="LineNr">1377 </span>    <span class="subxComment">#   if *curr == '&quot;'</span>
-<span id="L1378" class="LineNr">1378 </span>    <span class="subxComment">#     curr = skip-string-in-slice(curr, word-&gt;end)</span>
-<span id="L1379" class="LineNr">1379 </span>    <span class="subxComment">#   else</span>
-<span id="L1380" class="LineNr">1380 </span>    <span class="subxComment">#     while true</span>
-<span id="L1381" class="LineNr">1381 </span>    <span class="subxComment">#       if curr == word-&gt;end</span>
-<span id="L1382" class="LineNr">1382 </span>    <span class="subxComment">#         return</span>
-<span id="L1383" class="LineNr">1383 </span>    <span class="subxComment">#       if *curr == '/'</span>
-<span id="L1384" class="LineNr">1384 </span>    <span class="subxComment">#         break</span>
-<span id="L1385" class="LineNr">1385 </span>    <span class="subxComment">#       ++curr</span>
-<span id="L1386" class="LineNr">1386 </span>    <span class="subxComment">#   slice-&gt;start = curr</span>
-<span id="L1387" class="LineNr">1387 </span>    <span class="subxComment">#   write-slice-buffered(out, slice)</span>
-<span id="L1388" class="LineNr">1388 </span>    <span class="subxComment">#</span>
-<span id="L1389" class="LineNr">1389 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1390" class="LineNr">1390 </span>    55/push-ebp
-<span id="L1391" class="LineNr">1391 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1392" class="LineNr">1392 </span>    <span class="subxS1Comment"># . save registers</span>
-<span id="L1393" class="LineNr">1393 </span>    50/push-eax
-<span id="L1394" class="LineNr">1394 </span>    51/push-ecx
-<span id="L1395" class="LineNr">1395 </span>    52/push-edx
-<span id="L1396" class="LineNr">1396 </span>    53/push-ebx
-<span id="L1397" class="LineNr">1397 </span>    56/push-esi
-<span id="L1398" class="LineNr">1398 </span>    <span class="subxComment"># esi = word</span>
-<span id="L1399" class="LineNr">1399 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+12) to esi</span>
-<span id="L1400" class="LineNr">1400 </span>    <span class="subxComment"># curr/ecx = word-&gt;start</span>
-<span id="L1401" class="LineNr">1401 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to ecx</span>
-<span id="L1402" class="LineNr">1402 </span>    <span class="subxComment"># end/edx = word-&gt;end</span>
-<span id="L1403" class="LineNr">1403 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to edx</span>
-<span id="L1404" class="LineNr">1404 </span>    <span class="subxComment"># var slice/ebx = {0, end}</span>
-<span id="L1405" class="LineNr">1405 </span>    52/push-edx
-<span id="L1406" class="LineNr">1406 </span>    68/push  0/imm32
-<span id="L1407" class="LineNr">1407 </span>    89/copy                         3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebx</span>
-<span id="L1408" class="LineNr">1408 </span>    <span class="subxComment"># eax = 0</span>
-<span id="L1409" class="LineNr">1409 </span>    b8/copy-to-eax  0/imm32
-<span id="L1410" class="LineNr">1410 </span><span class="Constant">$emit-metadata:check-for-string-literal</span>:
-<span id="L1411" class="LineNr">1411 </span>    <span class="subxH1Comment"># -  if (*curr == '&quot;') curr = skip-string-in-slice(curr, end)</span>
-<span id="L1412" class="LineNr">1412 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
-<span id="L1413" class="LineNr">1413 </span>    3d/compare-eax-and  0x22/imm32/dquote
-<span id="L1414" class="LineNr">1414 </span>    75/jump-if-not-equal  $emit-metadata:skip-datum-loop/disp8
-<span id="L1415" class="LineNr">1415 </span><span class="Constant">$emit-metadata:skip-string-literal</span>:
-<span id="L1416" class="LineNr">1416 </span>    <span class="subxS1Comment"># . eax = skip-string-in-slice(curr, end)</span>
-<span id="L1417" class="LineNr">1417 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1418" class="LineNr">1418 </span>    52/push-edx
-<span id="L1419" class="LineNr">1419 </span>    51/push-ecx
-<span id="L1420" class="LineNr">1420 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1421" class="LineNr">1421 </span>    e8/call  <a href='../073next-token.subx.html#L1411'>skip-string-in-slice</a>/disp32
-<span id="L1422" class="LineNr">1422 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1423" class="LineNr">1423 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1424" class="LineNr">1424 </span>    <span class="subxS1Comment"># . curr = eax</span>
-<span id="L1425" class="LineNr">1425 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to ecx</span>
-<span id="L1426" class="LineNr">1426 </span>    eb/jump  $emit-metadata:<a href='../079emit.subx.html#L10'>emit</a>/disp8
-<span id="L1427" class="LineNr">1427 </span><span class="Constant">$emit-metadata:skip-datum-loop</span>:
-<span id="L1428" class="LineNr">1428 </span>    <span class="subxH1Comment"># - otherwise scan for '/'</span>
-<span id="L1429" class="LineNr">1429 </span>    <span class="subxComment"># if (curr == end) return</span>
-<span id="L1430" class="LineNr">1430 </span>    39/compare                      3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx and edx</span>
-<span id="L1431" class="LineNr">1431 </span>    74/jump-if-equal  $emit-metadata:end/disp8
-<span id="L1432" class="LineNr">1432 </span>    <span class="subxComment"># if (*curr == '/') break</span>
-<span id="L1433" class="LineNr">1433 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
-<span id="L1434" class="LineNr">1434 </span>    3d/compare-eax-and  0x2f/imm32/slash
-<span id="L1435" class="LineNr">1435 </span>    74/jump-if-equal  $emit-metadata:<a href='../079emit.subx.html#L10'>emit</a>/disp8
-<span id="L1436" class="LineNr">1436 </span>    <span class="subxComment"># ++curr</span>
-<span id="L1437" class="LineNr">1437 </span>    41/increment-ecx
-<span id="L1438" class="LineNr">1438 </span>    eb/jump  $emit-metadata:skip-datum-loop/disp8
-<span id="L1439" class="LineNr">1439 </span><span class="Constant">$emit-metadata:<a href='../079emit.subx.html#L10'>emit</a></span>:
-<span id="L1440" class="LineNr">1440 </span>    <span class="subxComment"># slice-&gt;start = ecx</span>
-<span id="L1441" class="LineNr">1441 </span>    89/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx to *ebx</span>
-<span id="L1442" class="LineNr">1442 </span>    <span class="subxComment"># write-slice-buffered(out, slice)</span>
-<span id="L1443" class="LineNr">1443 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1444" class="LineNr">1444 </span>    53/push-ebx
-<span id="L1445" class="LineNr">1445 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
-<span id="L1446" class="LineNr">1446 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1447" class="LineNr">1447 </span>    e8/call  <a href='../072slice.subx.html#L878'>write-slice-buffered</a>/disp32
-<span id="L1448" class="LineNr">1448 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1449" class="LineNr">1449 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/imm32     <span class="Normal"> . </span>                   <span class="subxComment"># add to esp</span>
-<span id="L1450" class="LineNr">1450 </span><span class="Constant">$emit-metadata:end</span>:
-<span id="L1451" class="LineNr">1451 </span>    <span class="subxS1Comment"># . reclaim locals</span>
-<span id="L1452" class="LineNr">1452 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/imm32     <span class="Normal"> . </span>                   <span class="subxComment"># add to esp</span>
-<span id="L1453" class="LineNr">1453 </span>    <span class="subxS1Comment"># . restore registers</span>
-<span id="L1454" class="LineNr">1454 </span>    5e/pop-to-esi
-<span id="L1455" class="LineNr">1455 </span>    5b/pop-to-ebx
-<span id="L1456" class="LineNr">1456 </span>    5a/pop-to-edx
-<span id="L1457" class="LineNr">1457 </span>    59/pop-to-ecx
-<span id="L1458" class="LineNr">1458 </span>    58/pop-to-eax
-<span id="L1459" class="LineNr">1459 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1460" class="LineNr">1460 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1461" class="LineNr">1461 </span>    5d/pop-to-ebp
-<span id="L1462" class="LineNr">1462 </span>    c3/return
-<span id="L1463" class="LineNr">1463 </span>
-<span id="L1464" class="LineNr">1464 </span><span class="subxTest">test-emit-metadata</span>:
-<span id="L1465" class="LineNr">1465 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1466" class="LineNr">1466 </span>    55/push-ebp
-<span id="L1467" class="LineNr">1467 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1468" class="LineNr">1468 </span>    <span class="subxComment"># setup</span>
-<span id="L1469" class="LineNr">1469 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1470" class="LineNr">1470 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1471" class="LineNr">1471 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1472" class="LineNr">1472 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1473" class="LineNr">1473 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1474" class="LineNr">1474 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1475" class="LineNr">1475 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1476" class="LineNr">1476 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
-<span id="L1477" class="LineNr">1477 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1478" class="LineNr">1478 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
-<span id="L1479" class="LineNr">1479 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1480" class="LineNr">1480 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1481" class="LineNr">1481 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1482" class="LineNr">1482 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1483" class="LineNr">1483 </span>    <span class="subxComment"># (eax..ecx) = &quot;abc/def&quot;</span>
-<span id="L1484" class="LineNr">1484 </span>    b8/copy-to-eax  <span class="Constant">&quot;abc/def&quot;</span>/imm32
-<span id="L1485" class="LineNr">1485 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
-<span id="L1486" class="LineNr">1486 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
-<span id="L1487" class="LineNr">1487 </span>    05/add-to-eax  4/imm32
-<span id="L1488" class="LineNr">1488 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
-<span id="L1489" class="LineNr">1489 </span>    51/push-ecx
-<span id="L1490" class="LineNr">1490 </span>    50/push-eax
-<span id="L1491" class="LineNr">1491 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1492" class="LineNr">1492 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
-<span id="L1493" class="LineNr">1493 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1494" class="LineNr">1494 </span>    51/push-ecx
-<span id="L1495" class="LineNr">1495 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1496" class="LineNr">1496 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1497" class="LineNr">1497 </span>    e8/call  <a href='dquotes.subx.html#L1373'>emit-metadata</a>/disp32
-<span id="L1498" class="LineNr">1498 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1499" class="LineNr">1499 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1500" class="LineNr">1500 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
-<span id="L1501" class="LineNr">1501 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1502" class="LineNr">1502 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1503" class="LineNr">1503 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1504" class="LineNr">1504 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L1505" class="LineNr">1505 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1506" class="LineNr">1506 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1507" class="LineNr">1507 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;/def&quot;, msg)  # important that there's no leading space</span>
-<span id="L1508" class="LineNr">1508 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1509" class="LineNr">1509 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata&quot;</span>/imm32
-<span id="L1510" class="LineNr">1510 </span>    68/push  <span class="Constant">&quot;/def&quot;</span>/imm32
-<span id="L1511" class="LineNr">1511 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L984" class="LineNr"> 984 </span><span class="Constant">$emit-string-literal-data:char-done</span>:
+<span id="L985" class="LineNr"> 985 </span>    <span class="subxComment"># write(out, &quot; &quot;)</span>
+<span id="L986" class="LineNr"> 986 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L987" class="LineNr"> 987 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L94'>Space</a></span>/imm32
+<span id="L988" class="LineNr"> 988 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L989" class="LineNr"> 989 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L990" class="LineNr"> 990 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L991" class="LineNr"> 991 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L992" class="LineNr"> 992 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L993" class="LineNr"> 993 </span>    <span class="subxComment"># ++curr</span>
+<span id="L994" class="LineNr"> 994 </span>    42/increment-edx
+<span id="L995" class="LineNr"> 995 </span>    <span class="subxComment"># ++ idx</span>
+<span id="L996" class="LineNr"> 996 </span>    43/increment-ebx
+<span id="L997" class="LineNr"> 997 </span>    <span class="subxComment"># if (idx &lt; 0x40) continue</span>
+<span id="L998" class="LineNr"> 998 </span>    81          7/subop/compare     3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x40/imm32        <span class="subxComment"># compare ebx</span>
+<span id="L999" class="LineNr"> 999 </span>    7c/jump-if-lesser  $emit-string-literal-data:next-char/disp8
+<span id="L1000" class="LineNr">1000 </span>    <span class="subxComment"># idx = 0</span>
+<span id="L1001" class="LineNr">1001 </span>    31/xor                          3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ebx</span>
+<span id="L1002" class="LineNr">1002 </span>    <span class="subxComment"># write(out, &quot;\n&quot;)</span>
+<span id="L1003" class="LineNr">1003 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1004" class="LineNr">1004 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
+<span id="L1005" class="LineNr">1005 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L1006" class="LineNr">1006 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1007" class="LineNr">1007 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
+<span id="L1008" class="LineNr">1008 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1009" class="LineNr">1009 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1010" class="LineNr">1010 </span><span class="Constant">$emit-string-literal-data:next-char</span>:
+<span id="L1011" class="LineNr">1011 </span>    e9/jump $emit-string-literal-data:<span class="Constant">loop</span>/disp32
+<span id="L1012" class="LineNr">1012 </span><span class="Constant">$emit-string-literal-data:end</span>:
+<span id="L1013" class="LineNr">1013 </span>    <span class="subxS1Comment"># . restore registers</span>
+<span id="L1014" class="LineNr">1014 </span>    5e/pop-to-esi
+<span id="L1015" class="LineNr">1015 </span>    5b/pop-to-ebx
+<span id="L1016" class="LineNr">1016 </span>    5a/pop-to-edx
+<span id="L1017" class="LineNr">1017 </span>    59/pop-to-ecx
+<span id="L1018" class="LineNr">1018 </span>    58/pop-to-eax
+<span id="L1019" class="LineNr">1019 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1020" class="LineNr">1020 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1021" class="LineNr">1021 </span>    5d/pop-to-ebp
+<span id="L1022" class="LineNr">1022 </span>    c3/return
+<span id="L1023" class="LineNr">1023 </span>
+<span id="L1024" class="LineNr">1024 </span><span class="subxFunction">is-alphanumeric?</span>:  <span class="subxComment"># c : int -&gt; eax : boolean</span>
+<span id="L1025" class="LineNr">1025 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1026" class="LineNr">1026 </span>    55/push-ebp
+<span id="L1027" class="LineNr">1027 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1028" class="LineNr">1028 </span>    <span class="subxComment"># eax = c</span>
+<span id="L1029" class="LineNr">1029 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to eax</span>
+<span id="L1030" class="LineNr">1030 </span>    <span class="subxComment"># if (eax &lt; '0') return false</span>
+<span id="L1031" class="LineNr">1031 </span>    3d/compare-eax-with  0x30/imm32/0
+<span id="L1032" class="LineNr">1032 </span>    7c/jump-if-lesser  $is-alphanumeric?:false/disp8
+<span id="L1033" class="LineNr">1033 </span>    <span class="subxComment"># if (eax &lt;= '9') return true</span>
+<span id="L1034" class="LineNr">1034 </span>    3d/compare-eax-with  0x39/imm32/9
+<span id="L1035" class="LineNr">1035 </span>    7e/jump-if-lesser-or-equal  $is-alphanumeric?:true/disp8
+<span id="L1036" class="LineNr">1036 </span>    <span class="subxComment"># if (eax &lt; 'A') return false</span>
+<span id="L1037" class="LineNr">1037 </span>    3d/compare-eax-with  0x41/imm32/A
+<span id="L1038" class="LineNr">1038 </span>    7c/jump-if-lesser  $is-alphanumeric?:false/disp8
+<span id="L1039" class="LineNr">1039 </span>    <span class="subxComment"># if (eax &lt;= 'Z') return true</span>
+<span id="L1040" class="LineNr">1040 </span>    3d/compare-eax-with  0x5a/imm32/Z
+<span id="L1041" class="LineNr">1041 </span>    7e/jump-if-lesser-or-equal  $is-alphanumeric?:true/disp8
+<span id="L1042" class="LineNr">1042 </span>    <span class="subxComment"># if (eax &lt; 'a') return false</span>
+<span id="L1043" class="LineNr">1043 </span>    3d/compare-eax-with  0x61/imm32/a
+<span id="L1044" class="LineNr">1044 </span>    7c/jump-if-lesser  $is-alphanumeric?:false/disp8
+<span id="L1045" class="LineNr">1045 </span>    <span class="subxComment"># if (eax &lt;= 'z') return true</span>
+<span id="L1046" class="LineNr">1046 </span>    3d/compare-eax-with  0x7a/imm32/z
+<span id="L1047" class="LineNr">1047 </span>    7e/jump-if-lesser-or-equal  $is-alphanumeric?:true/disp8
+<span id="L1048" class="LineNr">1048 </span>    <span class="subxComment"># return false</span>
+<span id="L1049" class="LineNr">1049 </span><span class="Constant">$is-alphanumeric?:false</span>:
+<span id="L1050" class="LineNr">1050 </span>    b8/copy-to-eax  0/imm32/false
+<span id="L1051" class="LineNr">1051 </span>    eb/jump  $is-alphanumeric?:end/disp8
+<span id="L1052" class="LineNr">1052 </span><span class="Constant">$is-alphanumeric?:true</span>:
+<span id="L1053" class="LineNr">1053 </span>    b8/copy-to-eax  1/imm32/true
+<span id="L1054" class="LineNr">1054 </span><span class="Constant">$is-alphanumeric?:end</span>:
+<span id="L1055" class="LineNr">1055 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1056" class="LineNr">1056 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1057" class="LineNr">1057 </span>    5d/pop-to-ebp
+<span id="L1058" class="LineNr">1058 </span>    c3/return
+<span id="L1059" class="LineNr">1059 </span>
+<span id="L1060" class="LineNr">1060 </span><span class="subxTest">test-emit-string-literal-data</span>:
+<span id="L1061" class="LineNr">1061 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1062" class="LineNr">1062 </span>    55/push-ebp
+<span id="L1063" class="LineNr">1063 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1064" class="LineNr">1064 </span>    <span class="subxComment"># setup</span>
+<span id="L1065" class="LineNr">1065 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1066" class="LineNr">1066 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1067" class="LineNr">1067 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1068" class="LineNr">1068 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1069" class="LineNr">1069 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1070" class="LineNr">1070 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1071" class="LineNr">1071 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1072" class="LineNr">1072 </span>    <span class="subxComment"># var slice/ecx = '&quot;abc&quot;/d'</span>
+<span id="L1073" class="LineNr">1073 </span>    68/push  <a href='dquotes.subx.html#L1902'>_test-slice-abc-limit</a>/imm32
+<span id="L1074" class="LineNr">1074 </span>    68/push  <a href='dquotes.subx.html#L1899'>_test-slice-abc</a>/imm32
+<span id="L1075" class="LineNr">1075 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1076" class="LineNr">1076 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
+<span id="L1077" class="LineNr">1077 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1078" class="LineNr">1078 </span>    51/push-ecx
+<span id="L1079" class="LineNr">1079 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1080" class="LineNr">1080 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1081" class="LineNr">1081 </span>    e8/call  <a href='dquotes.subx.html#L849'>emit-string-literal-data</a>/disp32
+<span id="L1082" class="LineNr">1082 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1083" class="LineNr">1083 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1084" class="Folded">1084 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L1110" class="LineNr">1110 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;3/imm32 61/a 62/b 63/c &quot;, msg)</span>
+<span id="L1111" class="LineNr">1111 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1112" class="LineNr">1112 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data&quot;</span>/imm32
+<span id="L1113" class="LineNr">1113 </span>    68/push  <span class="Constant">&quot;0x00000003/imm32 61/a 62/b 63/c &quot;</span>/imm32
+<span id="L1114" class="LineNr">1114 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1115" class="LineNr">1115 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1116" class="LineNr">1116 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1117" class="LineNr">1117 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1118" class="LineNr">1118 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1119" class="LineNr">1119 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1120" class="LineNr">1120 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1121" class="LineNr">1121 </span>    5d/pop-to-ebp
+<span id="L1122" class="LineNr">1122 </span>    c3/return
+<span id="L1123" class="LineNr">1123 </span>
+<span id="L1124" class="LineNr">1124 </span><span class="subxTest">test-emit-string-literal-data-empty</span>:
+<span id="L1125" class="LineNr">1125 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1126" class="LineNr">1126 </span>    55/push-ebp
+<span id="L1127" class="LineNr">1127 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1128" class="LineNr">1128 </span>    <span class="subxComment"># setup</span>
+<span id="L1129" class="LineNr">1129 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1130" class="LineNr">1130 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1131" class="LineNr">1131 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1132" class="LineNr">1132 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1133" class="LineNr">1133 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1134" class="LineNr">1134 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1135" class="LineNr">1135 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1136" class="LineNr">1136 </span>    <span class="subxComment"># var slice/ecx = '&quot;&quot;'</span>
+<span id="L1137" class="LineNr">1137 </span>    68/push  0/imm32/end
+<span id="L1138" class="LineNr">1138 </span>    68/push  0/imm32/start
+<span id="L1139" class="LineNr">1139 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1140" class="LineNr">1140 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
+<span id="L1141" class="LineNr">1141 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1142" class="LineNr">1142 </span>    51/push-ecx
+<span id="L1143" class="LineNr">1143 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1144" class="LineNr">1144 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1145" class="LineNr">1145 </span>    e8/call  <a href='dquotes.subx.html#L849'>emit-string-literal-data</a>/disp32
+<span id="L1146" class="LineNr">1146 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1147" class="LineNr">1147 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1148" class="Folded">1148 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L1174" class="LineNr">1174 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;0/imm32 &quot;, msg)</span>
+<span id="L1175" class="LineNr">1175 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1176" class="LineNr">1176 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data-empty&quot;</span>/imm32
+<span id="L1177" class="LineNr">1177 </span>    68/push  <span class="Constant">&quot;0x00000000/imm32 &quot;</span>/imm32
+<span id="L1178" class="LineNr">1178 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1179" class="LineNr">1179 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1180" class="LineNr">1180 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1181" class="LineNr">1181 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1182" class="LineNr">1182 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1183" class="LineNr">1183 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1184" class="LineNr">1184 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1185" class="LineNr">1185 </span>    5d/pop-to-ebp
+<span id="L1186" class="LineNr">1186 </span>    c3/return
+<span id="L1187" class="LineNr">1187 </span>
+<span id="L1188" class="LineNr">1188 </span><span class="subxComment"># just to keep things simple</span>
+<span id="L1189" class="LineNr">1189 </span><span class="subxTest">test-emit-string-literal-data-no-metadata-for-non-alphanumerics</span>:
+<span id="L1190" class="LineNr">1190 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1191" class="LineNr">1191 </span>    55/push-ebp
+<span id="L1192" class="LineNr">1192 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1193" class="LineNr">1193 </span>    <span class="subxComment"># setup</span>
+<span id="L1194" class="LineNr">1194 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1195" class="LineNr">1195 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1196" class="LineNr">1196 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1197" class="LineNr">1197 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1198" class="LineNr">1198 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1199" class="LineNr">1199 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1200" class="LineNr">1200 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1201" class="LineNr">1201 </span>    <span class="subxComment"># var slice/ecx = '&quot;a b&quot;'</span>
+<span id="L1202" class="LineNr">1202 </span>    68/push  <a href='dquotes.subx.html#L1906'>_test-slice-a-space-b-limit</a>/imm32
+<span id="L1203" class="LineNr">1203 </span>    68/push  <a href='dquotes.subx.html#L1904'>_test-slice-a-space-b</a>/imm32
+<span id="L1204" class="LineNr">1204 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1205" class="LineNr">1205 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
+<span id="L1206" class="LineNr">1206 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1207" class="LineNr">1207 </span>    51/push-ecx
+<span id="L1208" class="LineNr">1208 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1209" class="LineNr">1209 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1210" class="LineNr">1210 </span>    e8/call  <a href='dquotes.subx.html#L849'>emit-string-literal-data</a>/disp32
+<span id="L1211" class="LineNr">1211 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1212" class="LineNr">1212 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1213" class="Folded">1213 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L1239" class="LineNr">1239 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;3/imm32 61/a 20 62/b &quot;, msg)  # ideally we'd like to say '20/space' but that requires managing names for codepoints</span>
+<span id="L1240" class="LineNr">1240 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1241" class="LineNr">1241 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data-no-metadata-for-non-alphanumerics&quot;</span>/imm32
+<span id="L1242" class="LineNr">1242 </span>    68/push  <span class="Constant">&quot;0x00000003/imm32 61/a 20 62/b &quot;</span>/imm32
+<span id="L1243" class="LineNr">1243 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1244" class="LineNr">1244 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1245" class="LineNr">1245 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1246" class="LineNr">1246 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1247" class="LineNr">1247 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1248" class="LineNr">1248 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1249" class="LineNr">1249 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1250" class="LineNr">1250 </span>    5d/pop-to-ebp
+<span id="L1251" class="LineNr">1251 </span>    c3/return
+<span id="L1252" class="LineNr">1252 </span>
+<span id="L1253" class="LineNr">1253 </span><span class="subxTest">test-emit-string-literal-data-handles-escape-sequences</span>:
+<span id="L1254" class="LineNr">1254 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1255" class="LineNr">1255 </span>    55/push-ebp
+<span id="L1256" class="LineNr">1256 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1257" class="LineNr">1257 </span>    <span class="subxComment"># setup</span>
+<span id="L1258" class="LineNr">1258 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1259" class="LineNr">1259 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1260" class="LineNr">1260 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1261" class="LineNr">1261 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1262" class="LineNr">1262 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1263" class="LineNr">1263 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1264" class="LineNr">1264 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1265" class="LineNr">1265 </span>    <span class="subxComment"># var slice/ecx = '&quot;a\&quot;b&quot;'</span>
+<span id="L1266" class="LineNr">1266 </span>    68/push  <a href='dquotes.subx.html#L1910'>_test-slice-a-dquote-b-limit</a>/imm32
+<span id="L1267" class="LineNr">1267 </span>    68/push  <a href='dquotes.subx.html#L1908'>_test-slice-a-dquote-b</a>/imm32
+<span id="L1268" class="LineNr">1268 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1269" class="LineNr">1269 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
+<span id="L1270" class="LineNr">1270 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1271" class="LineNr">1271 </span>    51/push-ecx
+<span id="L1272" class="LineNr">1272 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1273" class="LineNr">1273 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1274" class="LineNr">1274 </span>    e8/call  <a href='dquotes.subx.html#L849'>emit-string-literal-data</a>/disp32
+<span id="L1275" class="LineNr">1275 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1276" class="LineNr">1276 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1277" class="Folded">1277 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L1303" class="LineNr">1303 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;3/imm32 61/a 22 62/b &quot;, msg)</span>
+<span id="L1304" class="LineNr">1304 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1305" class="LineNr">1305 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data-handles-escape-sequences&quot;</span>/imm32
+<span id="L1306" class="LineNr">1306 </span>    68/push  <span class="Constant">&quot;0x00000003/imm32 61/a 22 62/b &quot;</span>/imm32
+<span id="L1307" class="LineNr">1307 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1308" class="LineNr">1308 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1309" class="LineNr">1309 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1310" class="LineNr">1310 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1311" class="LineNr">1311 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1312" class="LineNr">1312 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1313" class="LineNr">1313 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1314" class="LineNr">1314 </span>    5d/pop-to-ebp
+<span id="L1315" class="LineNr">1315 </span>    c3/return
+<span id="L1316" class="LineNr">1316 </span>
+<span id="L1317" class="LineNr">1317 </span><span class="subxTest">test-emit-string-literal-data-handles-newline-escape</span>:
+<span id="L1318" class="LineNr">1318 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1319" class="LineNr">1319 </span>    55/push-ebp
+<span id="L1320" class="LineNr">1320 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1321" class="LineNr">1321 </span>    <span class="subxComment"># setup</span>
+<span id="L1322" class="LineNr">1322 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1323" class="LineNr">1323 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1324" class="LineNr">1324 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1325" class="LineNr">1325 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1326" class="LineNr">1326 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1327" class="LineNr">1327 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1328" class="LineNr">1328 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1329" class="LineNr">1329 </span>    <span class="subxComment"># var slice/ecx = '&quot;a\nb&quot;'</span>
+<span id="L1330" class="LineNr">1330 </span>    68/push  <a href='dquotes.subx.html#L1914'>_test-slice-a-newline-b-limit</a>/imm32
+<span id="L1331" class="LineNr">1331 </span>    68/push  <a href='dquotes.subx.html#L1912'>_test-slice-a-newline-b</a>/imm32
+<span id="L1332" class="LineNr">1332 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1333" class="LineNr">1333 </span>    <span class="subxComment"># emit-string-literal-data(_test-output-stream, slice)</span>
+<span id="L1334" class="LineNr">1334 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1335" class="LineNr">1335 </span>    51/push-ecx
+<span id="L1336" class="LineNr">1336 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1337" class="LineNr">1337 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1338" class="LineNr">1338 </span>    e8/call  <a href='dquotes.subx.html#L849'>emit-string-literal-data</a>/disp32
+<span id="L1339" class="LineNr">1339 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1340" class="LineNr">1340 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1341" class="Folded">1341 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L1367" class="LineNr">1367 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;3/imm32 61/a 0a 62/b &quot;, msg)</span>
+<span id="L1368" class="LineNr">1368 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1369" class="LineNr">1369 </span>    68/push  <span class="Constant">&quot;F - test-emit-string-literal-data-handles-newline-escape&quot;</span>/imm32
+<span id="L1370" class="LineNr">1370 </span>    68/push  <span class="Constant">&quot;0x00000003/imm32 61/a 0a 62/b &quot;</span>/imm32
+<span id="L1371" class="LineNr">1371 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1372" class="LineNr">1372 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1373" class="LineNr">1373 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1374" class="LineNr">1374 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1375" class="LineNr">1375 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1376" class="LineNr">1376 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1377" class="LineNr">1377 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1378" class="LineNr">1378 </span>    5d/pop-to-ebp
+<span id="L1379" class="LineNr">1379 </span>    c3/return
+<span id="L1380" class="LineNr">1380 </span>
+<span id="L1381" class="LineNr">1381 </span><span class="subxComment"># emit everything from a word except the initial datum</span>
+<span id="L1382" class="LineNr">1382 </span><span class="subxFunction">emit-metadata</span>:  <span class="subxComment"># out : (address buffered-file), word : (address slice)</span>
+<span id="L1383" class="LineNr">1383 </span>    <span class="subxComment"># pseudocode</span>
+<span id="L1384" class="LineNr">1384 </span>    <span class="subxComment">#   var slice = {0, word-&gt;end}</span>
+<span id="L1385" class="LineNr">1385 </span>    <span class="subxComment">#   curr = word-&gt;start</span>
+<span id="L1386" class="LineNr">1386 </span>    <span class="subxComment">#   if *curr == '&quot;'</span>
+<span id="L1387" class="LineNr">1387 </span>    <span class="subxComment">#     curr = skip-string-in-slice(curr, word-&gt;end)</span>
+<span id="L1388" class="LineNr">1388 </span>    <span class="subxComment">#   else</span>
+<span id="L1389" class="LineNr">1389 </span>    <span class="subxComment">#     while true</span>
+<span id="L1390" class="LineNr">1390 </span>    <span class="subxComment">#       if curr == word-&gt;end</span>
+<span id="L1391" class="LineNr">1391 </span>    <span class="subxComment">#         return</span>
+<span id="L1392" class="LineNr">1392 </span>    <span class="subxComment">#       if *curr == '/'</span>
+<span id="L1393" class="LineNr">1393 </span>    <span class="subxComment">#         break</span>
+<span id="L1394" class="LineNr">1394 </span>    <span class="subxComment">#       ++curr</span>
+<span id="L1395" class="LineNr">1395 </span>    <span class="subxComment">#   slice-&gt;start = curr</span>
+<span id="L1396" class="LineNr">1396 </span>    <span class="subxComment">#   write-slice-buffered(out, slice)</span>
+<span id="L1397" class="LineNr">1397 </span>    <span class="subxComment">#</span>
+<span id="L1398" class="LineNr">1398 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1399" class="LineNr">1399 </span>    55/push-ebp
+<span id="L1400" class="LineNr">1400 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1401" class="LineNr">1401 </span>    <span class="subxS1Comment"># . save registers</span>
+<span id="L1402" class="LineNr">1402 </span>    50/push-eax
+<span id="L1403" class="LineNr">1403 </span>    51/push-ecx
+<span id="L1404" class="LineNr">1404 </span>    52/push-edx
+<span id="L1405" class="LineNr">1405 </span>    53/push-ebx
+<span id="L1406" class="LineNr">1406 </span>    56/push-esi
+<span id="L1407" class="LineNr">1407 </span>    <span class="subxComment"># esi = word</span>
+<span id="L1408" class="LineNr">1408 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+12) to esi</span>
+<span id="L1409" class="LineNr">1409 </span>    <span class="subxComment"># curr/ecx = word-&gt;start</span>
+<span id="L1410" class="LineNr">1410 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to ecx</span>
+<span id="L1411" class="LineNr">1411 </span>    <span class="subxComment"># end/edx = word-&gt;end</span>
+<span id="L1412" class="LineNr">1412 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to edx</span>
+<span id="L1413" class="LineNr">1413 </span>    <span class="subxComment"># var slice/ebx = {0, end}</span>
+<span id="L1414" class="LineNr">1414 </span>    52/push-edx
+<span id="L1415" class="LineNr">1415 </span>    68/push  0/imm32
+<span id="L1416" class="LineNr">1416 </span>    89/copy                         3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebx</span>
+<span id="L1417" class="LineNr">1417 </span>    <span class="subxComment"># eax = 0</span>
+<span id="L1418" class="LineNr">1418 </span>    b8/copy-to-eax  0/imm32
+<span id="L1419" class="LineNr">1419 </span><span class="Constant">$emit-metadata:check-for-string-literal</span>:
+<span id="L1420" class="LineNr">1420 </span>    <span class="subxH1Comment"># -  if (*curr == '&quot;') curr = skip-string-in-slice(curr, end)</span>
+<span id="L1421" class="LineNr">1421 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
+<span id="L1422" class="LineNr">1422 </span>    3d/compare-eax-and  0x22/imm32/dquote
+<span id="L1423" class="LineNr">1423 </span>    75/jump-if-not-equal  $emit-metadata:skip-datum-loop/disp8
+<span id="L1424" class="LineNr">1424 </span><span class="Constant">$emit-metadata:skip-string-literal</span>:
+<span id="L1425" class="LineNr">1425 </span>    <span class="subxS1Comment"># . eax = skip-string-in-slice(curr, end)</span>
+<span id="L1426" class="LineNr">1426 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1427" class="LineNr">1427 </span>    52/push-edx
+<span id="L1428" class="LineNr">1428 </span>    51/push-ecx
+<span id="L1429" class="LineNr">1429 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1430" class="LineNr">1430 </span>    e8/call  <a href='../073next-token.subx.html#L1411'>skip-string-in-slice</a>/disp32
+<span id="L1431" class="LineNr">1431 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1432" class="LineNr">1432 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1433" class="LineNr">1433 </span>    <span class="subxS1Comment"># . curr = eax</span>
+<span id="L1434" class="LineNr">1434 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to ecx</span>
+<span id="L1435" class="LineNr">1435 </span>    eb/jump  $emit-metadata:<a href='../079emit.subx.html#L10'>emit</a>/disp8
+<span id="L1436" class="LineNr">1436 </span><span class="Constant">$emit-metadata:skip-datum-loop</span>:
+<span id="L1437" class="LineNr">1437 </span>    <span class="subxH1Comment"># - otherwise scan for '/'</span>
+<span id="L1438" class="LineNr">1438 </span>    <span class="subxComment"># if (curr == end) return</span>
+<span id="L1439" class="LineNr">1439 </span>    39/compare                      3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx and edx</span>
+<span id="L1440" class="LineNr">1440 </span>    74/jump-if-equal  $emit-metadata:end/disp8
+<span id="L1441" class="LineNr">1441 </span>    <span class="subxComment"># if (*curr == '/') break</span>
+<span id="L1442" class="LineNr">1442 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
+<span id="L1443" class="LineNr">1443 </span>    3d/compare-eax-and  0x2f/imm32/slash
+<span id="L1444" class="LineNr">1444 </span>    74/jump-if-equal  $emit-metadata:<a href='../079emit.subx.html#L10'>emit</a>/disp8
+<span id="L1445" class="LineNr">1445 </span>    <span class="subxComment"># ++curr</span>
+<span id="L1446" class="LineNr">1446 </span>    41/increment-ecx
+<span id="L1447" class="LineNr">1447 </span>    eb/jump  $emit-metadata:skip-datum-loop/disp8
+<span id="L1448" class="LineNr">1448 </span><span class="Constant">$emit-metadata:<a href='../079emit.subx.html#L10'>emit</a></span>:
+<span id="L1449" class="LineNr">1449 </span>    <span class="subxComment"># slice-&gt;start = ecx</span>
+<span id="L1450" class="LineNr">1450 </span>    89/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx to *ebx</span>
+<span id="L1451" class="LineNr">1451 </span>    <span class="subxComment"># write-slice-buffered(out, slice)</span>
+<span id="L1452" class="LineNr">1452 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1453" class="LineNr">1453 </span>    53/push-ebx
+<span id="L1454" class="LineNr">1454 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
+<span id="L1455" class="LineNr">1455 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1456" class="LineNr">1456 </span>    e8/call  <a href='../072slice.subx.html#L878'>write-slice-buffered</a>/disp32
+<span id="L1457" class="LineNr">1457 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1458" class="LineNr">1458 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/imm32     <span class="Normal"> . </span>                   <span class="subxComment"># add to esp</span>
+<span id="L1459" class="LineNr">1459 </span><span class="Constant">$emit-metadata:end</span>:
+<span id="L1460" class="LineNr">1460 </span>    <span class="subxS1Comment"># . reclaim locals</span>
+<span id="L1461" class="LineNr">1461 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/imm32     <span class="Normal"> . </span>                   <span class="subxComment"># add to esp</span>
+<span id="L1462" class="LineNr">1462 </span>    <span class="subxS1Comment"># . restore registers</span>
+<span id="L1463" class="LineNr">1463 </span>    5e/pop-to-esi
+<span id="L1464" class="LineNr">1464 </span>    5b/pop-to-ebx
+<span id="L1465" class="LineNr">1465 </span>    5a/pop-to-edx
+<span id="L1466" class="LineNr">1466 </span>    59/pop-to-ecx
+<span id="L1467" class="LineNr">1467 </span>    58/pop-to-eax
+<span id="L1468" class="LineNr">1468 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1469" class="LineNr">1469 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1470" class="LineNr">1470 </span>    5d/pop-to-ebp
+<span id="L1471" class="LineNr">1471 </span>    c3/return
+<span id="L1472" class="LineNr">1472 </span>
+<span id="L1473" class="LineNr">1473 </span><span class="subxTest">test-emit-metadata</span>:
+<span id="L1474" class="LineNr">1474 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1475" class="LineNr">1475 </span>    55/push-ebp
+<span id="L1476" class="LineNr">1476 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1477" class="LineNr">1477 </span>    <span class="subxComment"># setup</span>
+<span id="L1478" class="LineNr">1478 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1479" class="LineNr">1479 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1480" class="LineNr">1480 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1481" class="LineNr">1481 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1482" class="LineNr">1482 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1483" class="LineNr">1483 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1484" class="LineNr">1484 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1485" class="LineNr">1485 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
+<span id="L1486" class="LineNr">1486 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1487" class="LineNr">1487 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
+<span id="L1488" class="LineNr">1488 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1489" class="LineNr">1489 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1490" class="LineNr">1490 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1491" class="LineNr">1491 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1492" class="LineNr">1492 </span>    <span class="subxComment"># (eax..ecx) = &quot;abc/def&quot;</span>
+<span id="L1493" class="LineNr">1493 </span>    b8/copy-to-eax  <span class="Constant">&quot;abc/def&quot;</span>/imm32
+<span id="L1494" class="LineNr">1494 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
+<span id="L1495" class="LineNr">1495 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
+<span id="L1496" class="LineNr">1496 </span>    05/add-to-eax  4/imm32
+<span id="L1497" class="LineNr">1497 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
+<span id="L1498" class="LineNr">1498 </span>    51/push-ecx
+<span id="L1499" class="LineNr">1499 </span>    50/push-eax
+<span id="L1500" class="LineNr">1500 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1501" class="LineNr">1501 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
+<span id="L1502" class="LineNr">1502 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1503" class="LineNr">1503 </span>    51/push-ecx
+<span id="L1504" class="LineNr">1504 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L1505" class="LineNr">1505 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1506" class="LineNr">1506 </span>    e8/call  <a href='dquotes.subx.html#L1382'>emit-metadata</a>/disp32
+<span id="L1507" class="LineNr">1507 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1508" class="LineNr">1508 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1509" class="LineNr">1509 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
+<span id="L1510" class="LineNr">1510 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1511" class="LineNr">1511 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
 <span id="L1512" class="LineNr">1512 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1513" class="LineNr">1513 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1513" class="LineNr">1513 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
 <span id="L1514" class="LineNr">1514 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1515" class="LineNr">1515 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1516" class="LineNr">1516 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1517" class="LineNr">1517 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1518" class="LineNr">1518 </span>    5d/pop-to-ebp
-<span id="L1519" class="LineNr">1519 </span>    c3/return
-<span id="L1520" class="LineNr">1520 </span>
-<span id="L1521" class="LineNr">1521 </span><span class="subxTest">test-emit-metadata-none</span>:
-<span id="L1522" class="LineNr">1522 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1523" class="LineNr">1523 </span>    55/push-ebp
-<span id="L1524" class="LineNr">1524 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1525" class="LineNr">1525 </span>    <span class="subxComment"># setup</span>
-<span id="L1526" class="LineNr">1526 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1527" class="LineNr">1527 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1528" class="LineNr">1528 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1529" class="LineNr">1529 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1530" class="LineNr">1530 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1531" class="LineNr">1531 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1532" class="LineNr">1532 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1533" class="LineNr">1533 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
-<span id="L1534" class="LineNr">1534 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1535" class="LineNr">1535 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
-<span id="L1536" class="LineNr">1536 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1537" class="LineNr">1537 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1538" class="LineNr">1538 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1539" class="LineNr">1539 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1540" class="LineNr">1540 </span>    <span class="subxComment"># (eax..ecx) = &quot;abc&quot;</span>
-<span id="L1541" class="LineNr">1541 </span>    b8/copy-to-eax  <span class="Constant">&quot;abc&quot;</span>/imm32
-<span id="L1542" class="LineNr">1542 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
-<span id="L1543" class="LineNr">1543 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
-<span id="L1544" class="LineNr">1544 </span>    05/add-to-eax  4/imm32
-<span id="L1545" class="LineNr">1545 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
-<span id="L1546" class="LineNr">1546 </span>    51/push-ecx
-<span id="L1547" class="LineNr">1547 </span>    50/push-eax
-<span id="L1548" class="LineNr">1548 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1549" class="LineNr">1549 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
-<span id="L1550" class="LineNr">1550 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1551" class="LineNr">1551 </span>    51/push-ecx
-<span id="L1552" class="LineNr">1552 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1553" class="LineNr">1553 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1554" class="LineNr">1554 </span>    e8/call  <a href='dquotes.subx.html#L1373'>emit-metadata</a>/disp32
-<span id="L1555" class="LineNr">1555 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1556" class="LineNr">1556 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1557" class="LineNr">1557 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
-<span id="L1558" class="LineNr">1558 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1559" class="LineNr">1559 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1560" class="LineNr">1560 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1561" class="LineNr">1561 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L1562" class="LineNr">1562 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1563" class="LineNr">1563 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1564" class="LineNr">1564 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;&quot;, msg)</span>
-<span id="L1565" class="LineNr">1565 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1566" class="LineNr">1566 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata-none&quot;</span>/imm32
-<span id="L1567" class="LineNr">1567 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
-<span id="L1568" class="LineNr">1568 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1515" class="LineNr">1515 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1516" class="LineNr">1516 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;/def&quot;, msg)  # important that there's no leading space</span>
+<span id="L1517" class="LineNr">1517 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1518" class="LineNr">1518 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata&quot;</span>/imm32
+<span id="L1519" class="LineNr">1519 </span>    68/push  <span class="Constant">&quot;/def&quot;</span>/imm32
+<span id="L1520" class="LineNr">1520 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1521" class="LineNr">1521 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1522" class="LineNr">1522 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1523" class="LineNr">1523 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1524" class="LineNr">1524 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1525" class="LineNr">1525 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1526" class="LineNr">1526 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1527" class="LineNr">1527 </span>    5d/pop-to-ebp
+<span id="L1528" class="LineNr">1528 </span>    c3/return
+<span id="L1529" class="LineNr">1529 </span>
+<span id="L1530" class="LineNr">1530 </span><span class="subxTest">test-emit-metadata-none</span>:
+<span id="L1531" class="LineNr">1531 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1532" class="LineNr">1532 </span>    55/push-ebp
+<span id="L1533" class="LineNr">1533 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1534" class="LineNr">1534 </span>    <span class="subxComment"># setup</span>
+<span id="L1535" class="LineNr">1535 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1536" class="LineNr">1536 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1537" class="LineNr">1537 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1538" class="LineNr">1538 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1539" class="LineNr">1539 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1540" class="LineNr">1540 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1541" class="LineNr">1541 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1542" class="LineNr">1542 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
+<span id="L1543" class="LineNr">1543 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1544" class="LineNr">1544 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
+<span id="L1545" class="LineNr">1545 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1546" class="LineNr">1546 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1547" class="LineNr">1547 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1548" class="LineNr">1548 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1549" class="LineNr">1549 </span>    <span class="subxComment"># (eax..ecx) = &quot;abc&quot;</span>
+<span id="L1550" class="LineNr">1550 </span>    b8/copy-to-eax  <span class="Constant">&quot;abc&quot;</span>/imm32
+<span id="L1551" class="LineNr">1551 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
+<span id="L1552" class="LineNr">1552 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
+<span id="L1553" class="LineNr">1553 </span>    05/add-to-eax  4/imm32
+<span id="L1554" class="LineNr">1554 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
+<span id="L1555" class="LineNr">1555 </span>    51/push-ecx
+<span id="L1556" class="LineNr">1556 </span>    50/push-eax
+<span id="L1557" class="LineNr">1557 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1558" class="LineNr">1558 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
+<span id="L1559" class="LineNr">1559 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1560" class="LineNr">1560 </span>    51/push-ecx
+<span id="L1561" class="LineNr">1561 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L1562" class="LineNr">1562 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1563" class="LineNr">1563 </span>    e8/call  <a href='dquotes.subx.html#L1382'>emit-metadata</a>/disp32
+<span id="L1564" class="LineNr">1564 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1565" class="LineNr">1565 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1566" class="LineNr">1566 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
+<span id="L1567" class="LineNr">1567 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1568" class="LineNr">1568 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
 <span id="L1569" class="LineNr">1569 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1570" class="LineNr">1570 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1570" class="LineNr">1570 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
 <span id="L1571" class="LineNr">1571 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1572" class="LineNr">1572 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1573" class="LineNr">1573 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1574" class="LineNr">1574 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1575" class="LineNr">1575 </span>    5d/pop-to-ebp
-<span id="L1576" class="LineNr">1576 </span>    c3/return
-<span id="L1577" class="LineNr">1577 </span>
-<span id="L1578" class="LineNr">1578 </span><span class="subxTest">test-emit-metadata-multiple</span>:
-<span id="L1579" class="LineNr">1579 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1580" class="LineNr">1580 </span>    55/push-ebp
-<span id="L1581" class="LineNr">1581 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1582" class="LineNr">1582 </span>    <span class="subxComment"># setup</span>
-<span id="L1583" class="LineNr">1583 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1584" class="LineNr">1584 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1585" class="LineNr">1585 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1586" class="LineNr">1586 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1587" class="LineNr">1587 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1588" class="LineNr">1588 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1589" class="LineNr">1589 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1590" class="LineNr">1590 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
-<span id="L1591" class="LineNr">1591 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1592" class="LineNr">1592 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
-<span id="L1593" class="LineNr">1593 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1594" class="LineNr">1594 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1595" class="LineNr">1595 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1596" class="LineNr">1596 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1597" class="LineNr">1597 </span>    <span class="subxComment"># (eax..ecx) = &quot;abc/def/ghi&quot;</span>
-<span id="L1598" class="LineNr">1598 </span>    b8/copy-to-eax  <span class="Constant">&quot;abc/def/ghi&quot;</span>/imm32
-<span id="L1599" class="LineNr">1599 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
-<span id="L1600" class="LineNr">1600 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
-<span id="L1601" class="LineNr">1601 </span>    05/add-to-eax  4/imm32
-<span id="L1602" class="LineNr">1602 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
-<span id="L1603" class="LineNr">1603 </span>    51/push-ecx
-<span id="L1604" class="LineNr">1604 </span>    50/push-eax
-<span id="L1605" class="LineNr">1605 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1606" class="LineNr">1606 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
-<span id="L1607" class="LineNr">1607 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1608" class="LineNr">1608 </span>    51/push-ecx
-<span id="L1609" class="LineNr">1609 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1610" class="LineNr">1610 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1611" class="LineNr">1611 </span>    e8/call  <a href='dquotes.subx.html#L1373'>emit-metadata</a>/disp32
-<span id="L1612" class="LineNr">1612 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1613" class="LineNr">1613 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1614" class="LineNr">1614 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
-<span id="L1615" class="LineNr">1615 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1616" class="LineNr">1616 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1617" class="LineNr">1617 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1618" class="LineNr">1618 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L1619" class="LineNr">1619 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1620" class="LineNr">1620 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1621" class="LineNr">1621 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;/def/ghi&quot;, msg)  # important that there's no leading space</span>
-<span id="L1622" class="LineNr">1622 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1623" class="LineNr">1623 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata-multiple&quot;</span>/imm32
-<span id="L1624" class="LineNr">1624 </span>    68/push  <span class="Constant">&quot;/def/ghi&quot;</span>/imm32
-<span id="L1625" class="LineNr">1625 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1572" class="LineNr">1572 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1573" class="LineNr">1573 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;&quot;, msg)</span>
+<span id="L1574" class="LineNr">1574 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1575" class="LineNr">1575 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata-none&quot;</span>/imm32
+<span id="L1576" class="LineNr">1576 </span>    68/push  <span class="Constant">&quot;&quot;</span>/imm32
+<span id="L1577" class="LineNr">1577 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1578" class="LineNr">1578 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1579" class="LineNr">1579 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1580" class="LineNr">1580 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1581" class="LineNr">1581 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1582" class="LineNr">1582 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1583" class="LineNr">1583 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1584" class="LineNr">1584 </span>    5d/pop-to-ebp
+<span id="L1585" class="LineNr">1585 </span>    c3/return
+<span id="L1586" class="LineNr">1586 </span>
+<span id="L1587" class="LineNr">1587 </span><span class="subxTest">test-emit-metadata-multiple</span>:
+<span id="L1588" class="LineNr">1588 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1589" class="LineNr">1589 </span>    55/push-ebp
+<span id="L1590" class="LineNr">1590 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1591" class="LineNr">1591 </span>    <span class="subxComment"># setup</span>
+<span id="L1592" class="LineNr">1592 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1593" class="LineNr">1593 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1594" class="LineNr">1594 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1595" class="LineNr">1595 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1596" class="LineNr">1596 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1597" class="LineNr">1597 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1598" class="LineNr">1598 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1599" class="LineNr">1599 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
+<span id="L1600" class="LineNr">1600 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1601" class="LineNr">1601 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
+<span id="L1602" class="LineNr">1602 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1603" class="LineNr">1603 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1604" class="LineNr">1604 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1605" class="LineNr">1605 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1606" class="LineNr">1606 </span>    <span class="subxComment"># (eax..ecx) = &quot;abc/def/ghi&quot;</span>
+<span id="L1607" class="LineNr">1607 </span>    b8/copy-to-eax  <span class="Constant">&quot;abc/def/ghi&quot;</span>/imm32
+<span id="L1608" class="LineNr">1608 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
+<span id="L1609" class="LineNr">1609 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
+<span id="L1610" class="LineNr">1610 </span>    05/add-to-eax  4/imm32
+<span id="L1611" class="LineNr">1611 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
+<span id="L1612" class="LineNr">1612 </span>    51/push-ecx
+<span id="L1613" class="LineNr">1613 </span>    50/push-eax
+<span id="L1614" class="LineNr">1614 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1615" class="LineNr">1615 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
+<span id="L1616" class="LineNr">1616 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1617" class="LineNr">1617 </span>    51/push-ecx
+<span id="L1618" class="LineNr">1618 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L1619" class="LineNr">1619 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1620" class="LineNr">1620 </span>    e8/call  <a href='dquotes.subx.html#L1382'>emit-metadata</a>/disp32
+<span id="L1621" class="LineNr">1621 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1622" class="LineNr">1622 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1623" class="LineNr">1623 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
+<span id="L1624" class="LineNr">1624 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1625" class="LineNr">1625 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
 <span id="L1626" class="LineNr">1626 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1627" class="LineNr">1627 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1627" class="LineNr">1627 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
 <span id="L1628" class="LineNr">1628 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1629" class="LineNr">1629 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1630" class="LineNr">1630 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1631" class="LineNr">1631 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1632" class="LineNr">1632 </span>    5d/pop-to-ebp
-<span id="L1633" class="LineNr">1633 </span>    c3/return
-<span id="L1634" class="LineNr">1634 </span>
-<span id="L1635" class="LineNr">1635 </span><span class="subxTest">test-emit-metadata-when-no-datum</span>:
-<span id="L1636" class="LineNr">1636 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1637" class="LineNr">1637 </span>    55/push-ebp
-<span id="L1638" class="LineNr">1638 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1639" class="LineNr">1639 </span>    <span class="subxComment"># setup</span>
-<span id="L1640" class="LineNr">1640 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1641" class="LineNr">1641 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1642" class="LineNr">1642 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1643" class="LineNr">1643 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1644" class="LineNr">1644 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1645" class="LineNr">1645 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1646" class="LineNr">1646 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1647" class="LineNr">1647 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
-<span id="L1648" class="LineNr">1648 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1649" class="LineNr">1649 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
-<span id="L1650" class="LineNr">1650 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1651" class="LineNr">1651 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1652" class="LineNr">1652 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1653" class="LineNr">1653 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1654" class="LineNr">1654 </span>    <span class="subxComment"># var slice/ecx = &quot;/abc&quot;</span>
-<span id="L1655" class="LineNr">1655 </span>    b8/copy-to-eax  <span class="Constant">&quot;/abc&quot;</span>/imm32
-<span id="L1656" class="LineNr">1656 </span>    <span class="subxS1Comment"># . push end/ecx</span>
-<span id="L1657" class="LineNr">1657 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
-<span id="L1658" class="LineNr">1658 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
-<span id="L1659" class="LineNr">1659 </span>    51/push-ecx
-<span id="L1660" class="LineNr">1660 </span>    <span class="subxS1Comment"># . push curr/eax</span>
-<span id="L1661" class="LineNr">1661 </span>    05/add-to-eax  4/imm32
-<span id="L1662" class="LineNr">1662 </span>    50/push-eax
-<span id="L1663" class="LineNr">1663 </span>    <span class="subxS1Comment"># . save stack pointer</span>
-<span id="L1664" class="LineNr">1664 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1665" class="LineNr">1665 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
-<span id="L1666" class="LineNr">1666 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1667" class="LineNr">1667 </span>    51/push-ecx
-<span id="L1668" class="LineNr">1668 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1669" class="LineNr">1669 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1670" class="LineNr">1670 </span>    e8/call  <a href='dquotes.subx.html#L1373'>emit-metadata</a>/disp32
-<span id="L1671" class="LineNr">1671 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1672" class="LineNr">1672 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1673" class="LineNr">1673 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
-<span id="L1674" class="LineNr">1674 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1675" class="LineNr">1675 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1676" class="LineNr">1676 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1677" class="LineNr">1677 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L1678" class="LineNr">1678 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1679" class="LineNr">1679 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1680" class="LineNr">1680 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;/abc&quot;, msg)  # nothing skipped</span>
-<span id="L1681" class="LineNr">1681 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1682" class="LineNr">1682 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata-when-no-datum&quot;</span>/imm32
-<span id="L1683" class="LineNr">1683 </span>    68/push  <span class="Constant">&quot;/abc&quot;</span>/imm32
-<span id="L1684" class="LineNr">1684 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1629" class="LineNr">1629 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1630" class="LineNr">1630 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;/def/ghi&quot;, msg)  # important that there's no leading space</span>
+<span id="L1631" class="LineNr">1631 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1632" class="LineNr">1632 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata-multiple&quot;</span>/imm32
+<span id="L1633" class="LineNr">1633 </span>    68/push  <span class="Constant">&quot;/def/ghi&quot;</span>/imm32
+<span id="L1634" class="LineNr">1634 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1635" class="LineNr">1635 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1636" class="LineNr">1636 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1637" class="LineNr">1637 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1638" class="LineNr">1638 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1639" class="LineNr">1639 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1640" class="LineNr">1640 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1641" class="LineNr">1641 </span>    5d/pop-to-ebp
+<span id="L1642" class="LineNr">1642 </span>    c3/return
+<span id="L1643" class="LineNr">1643 </span>
+<span id="L1644" class="LineNr">1644 </span><span class="subxTest">test-emit-metadata-when-no-datum</span>:
+<span id="L1645" class="LineNr">1645 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1646" class="LineNr">1646 </span>    55/push-ebp
+<span id="L1647" class="LineNr">1647 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1648" class="LineNr">1648 </span>    <span class="subxComment"># setup</span>
+<span id="L1649" class="LineNr">1649 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1650" class="LineNr">1650 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1651" class="LineNr">1651 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1652" class="LineNr">1652 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1653" class="LineNr">1653 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1654" class="LineNr">1654 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1655" class="LineNr">1655 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1656" class="LineNr">1656 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
+<span id="L1657" class="LineNr">1657 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1658" class="LineNr">1658 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
+<span id="L1659" class="LineNr">1659 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1660" class="LineNr">1660 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1661" class="LineNr">1661 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1662" class="LineNr">1662 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1663" class="LineNr">1663 </span>    <span class="subxComment"># var slice/ecx = &quot;/abc&quot;</span>
+<span id="L1664" class="LineNr">1664 </span>    b8/copy-to-eax  <span class="Constant">&quot;/abc&quot;</span>/imm32
+<span id="L1665" class="LineNr">1665 </span>    <span class="subxS1Comment"># . push end/ecx</span>
+<span id="L1666" class="LineNr">1666 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
+<span id="L1667" class="LineNr">1667 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
+<span id="L1668" class="LineNr">1668 </span>    51/push-ecx
+<span id="L1669" class="LineNr">1669 </span>    <span class="subxS1Comment"># . push curr/eax</span>
+<span id="L1670" class="LineNr">1670 </span>    05/add-to-eax  4/imm32
+<span id="L1671" class="LineNr">1671 </span>    50/push-eax
+<span id="L1672" class="LineNr">1672 </span>    <span class="subxS1Comment"># . save stack pointer</span>
+<span id="L1673" class="LineNr">1673 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1674" class="LineNr">1674 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
+<span id="L1675" class="LineNr">1675 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1676" class="LineNr">1676 </span>    51/push-ecx
+<span id="L1677" class="LineNr">1677 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L1678" class="LineNr">1678 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1679" class="LineNr">1679 </span>    e8/call  <a href='dquotes.subx.html#L1382'>emit-metadata</a>/disp32
+<span id="L1680" class="LineNr">1680 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1681" class="LineNr">1681 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1682" class="LineNr">1682 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
+<span id="L1683" class="LineNr">1683 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1684" class="LineNr">1684 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
 <span id="L1685" class="LineNr">1685 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1686" class="LineNr">1686 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1686" class="LineNr">1686 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
 <span id="L1687" class="LineNr">1687 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1688" class="LineNr">1688 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1689" class="LineNr">1689 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1690" class="LineNr">1690 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1691" class="LineNr">1691 </span>    5d/pop-to-ebp
-<span id="L1692" class="LineNr">1692 </span>    c3/return
-<span id="L1693" class="LineNr">1693 </span>
-<span id="L1694" class="LineNr">1694 </span><span class="subxTest">test-emit-metadata-in-string-literal</span>:
-<span id="L1695" class="LineNr">1695 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1696" class="LineNr">1696 </span>    55/push-ebp
-<span id="L1697" class="LineNr">1697 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1698" class="LineNr">1698 </span>    <span class="subxComment"># setup</span>
-<span id="L1699" class="LineNr">1699 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
-<span id="L1700" class="LineNr">1700 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1701" class="LineNr">1701 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1702" class="LineNr">1702 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1703" class="LineNr">1703 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1704" class="LineNr">1704 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1705" class="LineNr">1705 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1706" class="LineNr">1706 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
-<span id="L1707" class="LineNr">1707 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1708" class="LineNr">1708 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
-<span id="L1709" class="LineNr">1709 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1710" class="LineNr">1710 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
-<span id="L1711" class="LineNr">1711 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1712" class="LineNr">1712 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1713" class="LineNr">1713 </span>    <span class="subxComment"># var slice/ecx = &quot;\&quot;abc/def\&quot;/ghi&quot;</span>
-<span id="L1714" class="LineNr">1714 </span>    68/push  <a href='dquotes.subx.html#L1914'>_test-slice-literal-string-with-limit</a>/imm32
-<span id="L1715" class="LineNr">1715 </span>    68/push  <a href='dquotes.subx.html#L1908'>_test-slice-literal-string</a>/imm32/start
-<span id="L1716" class="LineNr">1716 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
-<span id="L1717" class="LineNr">1717 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
-<span id="L1718" class="LineNr">1718 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1719" class="LineNr">1719 </span>    51/push-ecx
-<span id="L1720" class="LineNr">1720 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1721" class="LineNr">1721 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1722" class="LineNr">1722 </span>    e8/call  <a href='dquotes.subx.html#L1373'>emit-metadata</a>/disp32
-<span id="L1723" class="LineNr">1723 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1724" class="LineNr">1724 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1725" class="LineNr">1725 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
-<span id="L1726" class="LineNr">1726 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1727" class="LineNr">1727 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
-<span id="L1728" class="LineNr">1728 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1729" class="LineNr">1729 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
-<span id="L1730" class="LineNr">1730 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1731" class="LineNr">1731 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1732" class="Folded">1732 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
-<span id="L1758" class="LineNr">1758 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;/ghi&quot;, msg)  # important that there's no leading space</span>
-<span id="L1759" class="LineNr">1759 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1760" class="LineNr">1760 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata-in-string-literal&quot;</span>/imm32
-<span id="L1761" class="LineNr">1761 </span>    68/push  <span class="Constant">&quot;/ghi&quot;</span>/imm32
-<span id="L1762" class="LineNr">1762 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
-<span id="L1763" class="LineNr">1763 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1764" class="LineNr">1764 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
-<span id="L1765" class="LineNr">1765 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1766" class="LineNr">1766 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1767" class="LineNr">1767 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1768" class="LineNr">1768 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1769" class="LineNr">1769 </span>    5d/pop-to-ebp
-<span id="L1770" class="LineNr">1770 </span>    c3/return
-<span id="L1771" class="LineNr">1771 </span>
-<span id="L1772" class="LineNr">1772 </span><span class="subxFunction">string-length-at-start-of-slice</span>:  <span class="subxComment"># curr : (address byte), end : (address byte) -&gt; length/eax</span>
-<span id="L1773" class="LineNr">1773 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1774" class="LineNr">1774 </span>    55/push-ebp
-<span id="L1775" class="LineNr">1775 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1776" class="LineNr">1776 </span>    <span class="subxS1Comment"># . save registers</span>
-<span id="L1777" class="LineNr">1777 </span>    51/push-ecx
-<span id="L1778" class="LineNr">1778 </span>    52/push-edx
-<span id="L1779" class="LineNr">1779 </span>    53/push-ebx
-<span id="L1780" class="LineNr">1780 </span>    <span class="subxComment"># ecx = curr</span>
-<span id="L1781" class="LineNr">1781 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>                        1/r32/ecx   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to ecx</span>
-<span id="L1782" class="LineNr">1782 </span>    <span class="subxComment"># edx = end</span>
-<span id="L1783" class="LineNr">1783 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>                        2/r32/edx   0xc/disp8        <span class="Normal"> . </span>              <span class="subxComment"># copy *(ebp+12) to edx</span>
-<span id="L1784" class="LineNr">1784 </span>    <span class="subxComment"># length/eax = 0</span>
-<span id="L1785" class="LineNr">1785 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
-<span id="L1786" class="LineNr">1786 </span>    <span class="subxComment"># ebx = 0</span>
-<span id="L1787" class="LineNr">1787 </span>    31/xor                          3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ebx</span>
-<span id="L1788" class="LineNr">1788 </span>    <span class="subxComment"># skip initial dquote</span>
-<span id="L1789" class="LineNr">1789 </span>    41/increment-ecx
-<span id="L1790" class="LineNr">1790 </span><span class="Constant">$string-length-at-start-of-slice:loop</span>:
-<span id="L1791" class="LineNr">1791 </span>    <span class="subxComment"># if (curr &gt;= end) return length</span>
-<span id="L1792" class="LineNr">1792 </span>    39/compare                      3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx with edx</span>
-<span id="L1793" class="LineNr">1793 </span>    73/jump-if-greater-unsigned-or-equal  $string-length-at-start-of-slice:end/disp8
-<span id="L1794" class="LineNr">1794 </span>    <span class="subxComment"># BL = *curr</span>
-<span id="L1795" class="LineNr">1795 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/BL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to BL</span>
-<span id="L1796" class="LineNr">1796 </span><span class="Constant">$string-length-at-start-of-slice:dquote</span>:
-<span id="L1797" class="LineNr">1797 </span>    <span class="subxComment"># if (ebx == '&quot;') break</span>
-<span id="L1798" class="LineNr">1798 </span>    81          7/subop/compare     3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x22/imm32/dquote <span class="subxComment"># compare ebx</span>
-<span id="L1799" class="LineNr">1799 </span>    74/jump-if-equal  $string-length-at-start-of-slice:end/disp8
-<span id="L1800" class="LineNr">1800 </span><span class="Constant">$string-length-at-start-of-slice:check-for-escape</span>:
-<span id="L1801" class="LineNr">1801 </span>    <span class="subxComment"># if (ebx == '\') escape next char</span>
-<span id="L1802" class="LineNr">1802 </span>    81          7/subop/compare     3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x5c/imm32/backslash <span class="subxComment"># compare ebx</span>
-<span id="L1803" class="LineNr">1803 </span>    75/jump-if-not-equal  $string-length-at-start-of-slice:continue/disp8
-<span id="L1804" class="LineNr">1804 </span><span class="Constant">$string-length-at-start-of-slice:escape</span>:
-<span id="L1805" class="LineNr">1805 </span>    <span class="subxComment"># increment curr but not result</span>
-<span id="L1806" class="LineNr">1806 </span>    41/increment-ecx
-<span id="L1807" class="LineNr">1807 </span><span class="Constant">$string-length-at-start-of-slice:continue</span>:
-<span id="L1808" class="LineNr">1808 </span>    <span class="subxComment"># ++result</span>
-<span id="L1809" class="LineNr">1809 </span>    40/increment-eax
-<span id="L1810" class="LineNr">1810 </span>    <span class="subxComment"># ++curr</span>
-<span id="L1811" class="LineNr">1811 </span>    41/increment-ecx
-<span id="L1812" class="LineNr">1812 </span>    eb/jump  $string-length-at-start-of-slice:<span class="Constant">loop</span>/disp8
-<span id="L1813" class="LineNr">1813 </span><span class="Constant">$string-length-at-start-of-slice:end</span>:
-<span id="L1814" class="LineNr">1814 </span>    <span class="subxS1Comment"># . restore registers</span>
-<span id="L1815" class="LineNr">1815 </span>    5b/pop-to-ebx
-<span id="L1816" class="LineNr">1816 </span>    5a/pop-to-edx
-<span id="L1817" class="LineNr">1817 </span>    59/pop-to-ecx
-<span id="L1818" class="LineNr">1818 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1819" class="LineNr">1819 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1820" class="LineNr">1820 </span>    5d/pop-to-ebp
-<span id="L1821" class="LineNr">1821 </span>    c3/return
-<span id="L1822" class="LineNr">1822 </span>
-<span id="L1823" class="LineNr">1823 </span><span class="subxTest">test-string-length-at-start-of-slice</span>:
-<span id="L1824" class="LineNr">1824 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1825" class="LineNr">1825 </span>    55/push-ebp
-<span id="L1826" class="LineNr">1826 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1827" class="LineNr">1827 </span>    <span class="subxComment"># setup: (eax..ecx) = &quot;\&quot;abc\&quot; def&quot;</span>
-<span id="L1828" class="LineNr">1828 </span>    b8/copy-to-eax  <span class="Constant">&quot;\&quot;</span>abc\<span class="Constant">&quot; def&quot;</span>/imm32
-<span id="L1829" class="LineNr">1829 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
-<span id="L1830" class="LineNr">1830 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
-<span id="L1831" class="LineNr">1831 </span>    05/add-to-eax  4/imm32
-<span id="L1832" class="LineNr">1832 </span>    <span class="subxComment"># eax = string-length-at-start-of-slice(eax, ecx)</span>
-<span id="L1833" class="LineNr">1833 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1834" class="LineNr">1834 </span>    51/push-ecx
-<span id="L1835" class="LineNr">1835 </span>    50/push-eax
-<span id="L1836" class="LineNr">1836 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1837" class="LineNr">1837 </span>    e8/call  <a href='dquotes.subx.html#L1772'>string-length-at-start-of-slice</a>/disp32
-<span id="L1838" class="LineNr">1838 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1839" class="LineNr">1839 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1840" class="LineNr">1840 </span>    <span class="subxComment"># check-ints-equal(eax, 3, msg)</span>
-<span id="L1841" class="LineNr">1841 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1842" class="LineNr">1842 </span>    68/push  <span class="Constant">&quot;F - test-string-length-at-start-of-slice&quot;</span>/imm32
-<span id="L1843" class="LineNr">1843 </span>    68/push  3/imm32
+<span id="L1688" class="LineNr">1688 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1689" class="LineNr">1689 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;/abc&quot;, msg)  # nothing skipped</span>
+<span id="L1690" class="LineNr">1690 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1691" class="LineNr">1691 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata-when-no-datum&quot;</span>/imm32
+<span id="L1692" class="LineNr">1692 </span>    68/push  <span class="Constant">&quot;/abc&quot;</span>/imm32
+<span id="L1693" class="LineNr">1693 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1694" class="LineNr">1694 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1695" class="LineNr">1695 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1696" class="LineNr">1696 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1697" class="LineNr">1697 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1698" class="LineNr">1698 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1699" class="LineNr">1699 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1700" class="LineNr">1700 </span>    5d/pop-to-ebp
+<span id="L1701" class="LineNr">1701 </span>    c3/return
+<span id="L1702" class="LineNr">1702 </span>
+<span id="L1703" class="LineNr">1703 </span><span class="subxTest">test-emit-metadata-in-string-literal</span>:
+<span id="L1704" class="LineNr">1704 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1705" class="LineNr">1705 </span>    55/push-ebp
+<span id="L1706" class="LineNr">1706 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1707" class="LineNr">1707 </span>    <span class="subxComment"># setup</span>
+<span id="L1708" class="LineNr">1708 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
+<span id="L1709" class="LineNr">1709 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1710" class="LineNr">1710 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1711" class="LineNr">1711 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1712" class="LineNr">1712 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1713" class="LineNr">1713 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1714" class="LineNr">1714 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1715" class="LineNr">1715 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-buffered-file-&gt;buffer)</span>
+<span id="L1716" class="LineNr">1716 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1717" class="LineNr">1717 </span>    68/push  <a href='../064write-byte.subx.html#L331'>_test-output-buffered-file-&gt;buffer</a>/imm32
+<span id="L1718" class="LineNr">1718 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1719" class="LineNr">1719 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
+<span id="L1720" class="LineNr">1720 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1721" class="LineNr">1721 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1722" class="LineNr">1722 </span>    <span class="subxComment"># var slice/ecx = &quot;\&quot;abc/def\&quot;/ghi&quot;</span>
+<span id="L1723" class="LineNr">1723 </span>    68/push  <a href='dquotes.subx.html#L1923'>_test-slice-literal-string-with-limit</a>/imm32
+<span id="L1724" class="LineNr">1724 </span>    68/push  <a href='dquotes.subx.html#L1917'>_test-slice-literal-string</a>/imm32/start
+<span id="L1725" class="LineNr">1725 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
+<span id="L1726" class="LineNr">1726 </span>    <span class="subxComment"># emit-metadata(_test-output-buffered-file, slice)</span>
+<span id="L1727" class="LineNr">1727 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1728" class="LineNr">1728 </span>    51/push-ecx
+<span id="L1729" class="LineNr">1729 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L1730" class="LineNr">1730 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1731" class="LineNr">1731 </span>    e8/call  <a href='dquotes.subx.html#L1382'>emit-metadata</a>/disp32
+<span id="L1732" class="LineNr">1732 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1733" class="LineNr">1733 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1734" class="LineNr">1734 </span>    <span class="subxComment"># flush(_test-output-buffered-file)</span>
+<span id="L1735" class="LineNr">1735 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1736" class="LineNr">1736 </span>    68/push  <a href='../064write-byte.subx.html#L328'>_test-output-buffered-file</a>/imm32
+<span id="L1737" class="LineNr">1737 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1738" class="LineNr">1738 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
+<span id="L1739" class="LineNr">1739 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1740" class="LineNr">1740 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1741" class="Folded">1741 </span><span class="Folded">+-- 26 lines: #?     # dump output ---------------------------------------------------------------------------------------------------------------------------</span>
+<span id="L1767" class="LineNr">1767 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;/ghi&quot;, msg)  # important that there's no leading space</span>
+<span id="L1768" class="LineNr">1768 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1769" class="LineNr">1769 </span>    68/push  <span class="Constant">&quot;F - test-emit-metadata-in-string-literal&quot;</span>/imm32
+<span id="L1770" class="LineNr">1770 </span>    68/push  <span class="Constant">&quot;/ghi&quot;</span>/imm32
+<span id="L1771" class="LineNr">1771 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
+<span id="L1772" class="LineNr">1772 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1773" class="LineNr">1773 </span>    e8/call  <a href='../058stream-equal.subx.html#L193'>check-stream-equal</a>/disp32
+<span id="L1774" class="LineNr">1774 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1775" class="LineNr">1775 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1776" class="LineNr">1776 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1777" class="LineNr">1777 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1778" class="LineNr">1778 </span>    5d/pop-to-ebp
+<span id="L1779" class="LineNr">1779 </span>    c3/return
+<span id="L1780" class="LineNr">1780 </span>
+<span id="L1781" class="LineNr">1781 </span><span class="subxFunction">string-length-at-start-of-slice</span>:  <span class="subxComment"># curr : (address byte), end : (address byte) -&gt; length/eax</span>
+<span id="L1782" class="LineNr">1782 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1783" class="LineNr">1783 </span>    55/push-ebp
+<span id="L1784" class="LineNr">1784 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1785" class="LineNr">1785 </span>    <span class="subxS1Comment"># . save registers</span>
+<span id="L1786" class="LineNr">1786 </span>    51/push-ecx
+<span id="L1787" class="LineNr">1787 </span>    52/push-edx
+<span id="L1788" class="LineNr">1788 </span>    53/push-ebx
+<span id="L1789" class="LineNr">1789 </span>    <span class="subxComment"># ecx = curr</span>
+<span id="L1790" class="LineNr">1790 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>                        1/r32/ecx   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to ecx</span>
+<span id="L1791" class="LineNr">1791 </span>    <span class="subxComment"># edx = end</span>
+<span id="L1792" class="LineNr">1792 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>                        2/r32/edx   0xc/disp8        <span class="Normal"> . </span>              <span class="subxComment"># copy *(ebp+12) to edx</span>
+<span id="L1793" class="LineNr">1793 </span>    <span class="subxComment"># length/eax = 0</span>
+<span id="L1794" class="LineNr">1794 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
+<span id="L1795" class="LineNr">1795 </span>    <span class="subxComment"># ebx = 0</span>
+<span id="L1796" class="LineNr">1796 </span>    31/xor                          3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ebx</span>
+<span id="L1797" class="LineNr">1797 </span>    <span class="subxComment"># skip initial dquote</span>
+<span id="L1798" class="LineNr">1798 </span>    41/increment-ecx
+<span id="L1799" class="LineNr">1799 </span><span class="Constant">$string-length-at-start-of-slice:loop</span>:
+<span id="L1800" class="LineNr">1800 </span>    <span class="subxComment"># if (curr &gt;= end) return length</span>
+<span id="L1801" class="LineNr">1801 </span>    39/compare                      3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx with edx</span>
+<span id="L1802" class="LineNr">1802 </span>    73/jump-if-greater-unsigned-or-equal  $string-length-at-start-of-slice:end/disp8
+<span id="L1803" class="LineNr">1803 </span>    <span class="subxComment"># BL = *curr</span>
+<span id="L1804" class="LineNr">1804 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/BL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to BL</span>
+<span id="L1805" class="LineNr">1805 </span><span class="Constant">$string-length-at-start-of-slice:dquote</span>:
+<span id="L1806" class="LineNr">1806 </span>    <span class="subxComment"># if (ebx == '&quot;') break</span>
+<span id="L1807" class="LineNr">1807 </span>    81          7/subop/compare     3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x22/imm32/dquote <span class="subxComment"># compare ebx</span>
+<span id="L1808" class="LineNr">1808 </span>    74/jump-if-equal  $string-length-at-start-of-slice:end/disp8
+<span id="L1809" class="LineNr">1809 </span><span class="Constant">$string-length-at-start-of-slice:check-for-escape</span>:
+<span id="L1810" class="LineNr">1810 </span>    <span class="subxComment"># if (ebx == '\') escape next char</span>
+<span id="L1811" class="LineNr">1811 </span>    81          7/subop/compare     3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x5c/imm32/backslash <span class="subxComment"># compare ebx</span>
+<span id="L1812" class="LineNr">1812 </span>    75/jump-if-not-equal  $string-length-at-start-of-slice:continue/disp8
+<span id="L1813" class="LineNr">1813 </span><span class="Constant">$string-length-at-start-of-slice:escape</span>:
+<span id="L1814" class="LineNr">1814 </span>    <span class="subxComment"># increment curr but not result</span>
+<span id="L1815" class="LineNr">1815 </span>    41/increment-ecx
+<span id="L1816" class="LineNr">1816 </span><span class="Constant">$string-length-at-start-of-slice:continue</span>:
+<span id="L1817" class="LineNr">1817 </span>    <span class="subxComment"># ++result</span>
+<span id="L1818" class="LineNr">1818 </span>    40/increment-eax
+<span id="L1819" class="LineNr">1819 </span>    <span class="subxComment"># ++curr</span>
+<span id="L1820" class="LineNr">1820 </span>    41/increment-ecx
+<span id="L1821" class="LineNr">1821 </span>    eb/jump  $string-length-at-start-of-slice:<span class="Constant">loop</span>/disp8
+<span id="L1822" class="LineNr">1822 </span><span class="Constant">$string-length-at-start-of-slice:end</span>:
+<span id="L1823" class="LineNr">1823 </span>    <span class="subxS1Comment"># . restore registers</span>
+<span id="L1824" class="LineNr">1824 </span>    5b/pop-to-ebx
+<span id="L1825" class="LineNr">1825 </span>    5a/pop-to-edx
+<span id="L1826" class="LineNr">1826 </span>    59/pop-to-ecx
+<span id="L1827" class="LineNr">1827 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1828" class="LineNr">1828 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1829" class="LineNr">1829 </span>    5d/pop-to-ebp
+<span id="L1830" class="LineNr">1830 </span>    c3/return
+<span id="L1831" class="LineNr">1831 </span>
+<span id="L1832" class="LineNr">1832 </span><span class="subxTest">test-string-length-at-start-of-slice</span>:
+<span id="L1833" class="LineNr">1833 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1834" class="LineNr">1834 </span>    55/push-ebp
+<span id="L1835" class="LineNr">1835 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1836" class="LineNr">1836 </span>    <span class="subxComment"># setup: (eax..ecx) = &quot;\&quot;abc\&quot; def&quot;</span>
+<span id="L1837" class="LineNr">1837 </span>    b8/copy-to-eax  <span class="Constant">&quot;\&quot;</span>abc\<span class="Constant">&quot; def&quot;</span>/imm32
+<span id="L1838" class="LineNr">1838 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
+<span id="L1839" class="LineNr">1839 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
+<span id="L1840" class="LineNr">1840 </span>    05/add-to-eax  4/imm32
+<span id="L1841" class="LineNr">1841 </span>    <span class="subxComment"># eax = string-length-at-start-of-slice(eax, ecx)</span>
+<span id="L1842" class="LineNr">1842 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1843" class="LineNr">1843 </span>    51/push-ecx
 <span id="L1844" class="LineNr">1844 </span>    50/push-eax
 <span id="L1845" class="LineNr">1845 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1846" class="LineNr">1846 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1846" class="LineNr">1846 </span>    e8/call  <a href='dquotes.subx.html#L1781'>string-length-at-start-of-slice</a>/disp32
 <span id="L1847" class="LineNr">1847 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1848" class="LineNr">1848 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1849" class="LineNr">1849 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1850" class="LineNr">1850 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1851" class="LineNr">1851 </span>    5d/pop-to-ebp
-<span id="L1852" class="LineNr">1852 </span>    c3/return
-<span id="L1853" class="LineNr">1853 </span>
-<span id="L1854" class="LineNr">1854 </span><span class="subxTest">test-string-length-at-start-of-slice-escaped</span>:
-<span id="L1855" class="LineNr">1855 </span>    <span class="subxS1Comment"># . prologue</span>
-<span id="L1856" class="LineNr">1856 </span>    55/push-ebp
-<span id="L1857" class="LineNr">1857 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
-<span id="L1858" class="LineNr">1858 </span>    <span class="subxComment"># setup: (eax..ecx) = &quot;\&quot;ab\\c\&quot; def&quot;</span>
-<span id="L1859" class="LineNr">1859 </span>    b8/copy-to-eax  <span class="Constant">&quot;\&quot;</span>ab\\c\<span class="Constant">&quot; def&quot;</span>/imm32
-<span id="L1860" class="LineNr">1860 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
-<span id="L1861" class="LineNr">1861 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
-<span id="L1862" class="LineNr">1862 </span>    05/add-to-eax  4/imm32
-<span id="L1863" class="LineNr">1863 </span>    <span class="subxComment"># eax = string-length-at-start-of-slice(eax, ecx)</span>
-<span id="L1864" class="LineNr">1864 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1865" class="LineNr">1865 </span>    51/push-ecx
-<span id="L1866" class="LineNr">1866 </span>    50/push-eax
-<span id="L1867" class="LineNr">1867 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1868" class="LineNr">1868 </span>    e8/call  <a href='dquotes.subx.html#L1772'>string-length-at-start-of-slice</a>/disp32
-<span id="L1869" class="LineNr">1869 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1870" class="LineNr">1870 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
-<span id="L1871" class="LineNr">1871 </span>    <span class="subxComment"># check-ints-equal(eax, 3, msg)</span>
-<span id="L1872" class="LineNr">1872 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1873" class="LineNr">1873 </span>    68/push  <span class="Constant">&quot;F - test-string-length-at-start-of-slice-escaped&quot;</span>/imm32
-<span id="L1874" class="LineNr">1874 </span>    68/push  3/imm32
+<span id="L1848" class="LineNr">1848 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1849" class="LineNr">1849 </span>    <span class="subxComment"># check-ints-equal(eax, 3, msg)</span>
+<span id="L1850" class="LineNr">1850 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1851" class="LineNr">1851 </span>    68/push  <span class="Constant">&quot;F - test-string-length-at-start-of-slice&quot;</span>/imm32
+<span id="L1852" class="LineNr">1852 </span>    68/push  3/imm32
+<span id="L1853" class="LineNr">1853 </span>    50/push-eax
+<span id="L1854" class="LineNr">1854 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1855" class="LineNr">1855 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1856" class="LineNr">1856 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1857" class="LineNr">1857 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1858" class="LineNr">1858 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1859" class="LineNr">1859 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1860" class="LineNr">1860 </span>    5d/pop-to-ebp
+<span id="L1861" class="LineNr">1861 </span>    c3/return
+<span id="L1862" class="LineNr">1862 </span>
+<span id="L1863" class="LineNr">1863 </span><span class="subxTest">test-string-length-at-start-of-slice-escaped</span>:
+<span id="L1864" class="LineNr">1864 </span>    <span class="subxS1Comment"># . prologue</span>
+<span id="L1865" class="LineNr">1865 </span>    55/push-ebp
+<span id="L1866" class="LineNr">1866 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
+<span id="L1867" class="LineNr">1867 </span>    <span class="subxComment"># setup: (eax..ecx) = &quot;\&quot;ab\\c\&quot; def&quot;</span>
+<span id="L1868" class="LineNr">1868 </span>    b8/copy-to-eax  <span class="Constant">&quot;\&quot;</span>ab\\c\<span class="Constant">&quot; def&quot;</span>/imm32
+<span id="L1869" class="LineNr">1869 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
+<span id="L1870" class="LineNr">1870 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
+<span id="L1871" class="LineNr">1871 </span>    05/add-to-eax  4/imm32
+<span id="L1872" class="LineNr">1872 </span>    <span class="subxComment"># eax = string-length-at-start-of-slice(eax, ecx)</span>
+<span id="L1873" class="LineNr">1873 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1874" class="LineNr">1874 </span>    51/push-ecx
 <span id="L1875" class="LineNr">1875 </span>    50/push-eax
 <span id="L1876" class="LineNr">1876 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1877" class="LineNr">1877 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1877" class="LineNr">1877 </span>    e8/call  <a href='dquotes.subx.html#L1781'>string-length-at-start-of-slice</a>/disp32
 <span id="L1878" class="LineNr">1878 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L1879" class="LineNr">1879 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
-<span id="L1880" class="LineNr">1880 </span>    <span class="subxS1Comment"># . epilogue</span>
-<span id="L1881" class="LineNr">1881 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
-<span id="L1882" class="LineNr">1882 </span>    5d/pop-to-ebp
-<span id="L1883" class="LineNr">1883 </span>    c3/return
-<span id="L1884" class="LineNr">1884 </span>
-<span id="L1885" class="LineNr">1885 </span>== data
-<span id="L1886" class="LineNr">1886 </span>
-<span id="L1887" class="LineNr">1887 </span><span class="SpecialChar">Next-string-literal</span>:  <span class="subxComment"># tracks the next auto-generated variable name</span>
-<span id="L1888" class="LineNr">1888 </span>  1/imm32
-<span id="L1889" class="LineNr">1889 </span>
-<span id="L1890" class="LineNr">1890 </span><span class="subxMinorFunction">_test-slice-abc</span>:
-<span id="L1891" class="LineNr">1891 </span>  22/dquote 61/a 62/b 63/c 22/dquote  <span class="subxComment"># &quot;abc&quot;</span>
-<span id="L1892" class="LineNr">1892 </span>  2f/slash 64/d
-<span id="L1893" class="LineNr">1893 </span><span class="subxMinorFunction">_test-slice-abc-limit</span>:
-<span id="L1894" class="LineNr">1894 </span>
-<span id="L1895" class="LineNr">1895 </span><span class="subxMinorFunction">_test-slice-a-space-b</span>:
-<span id="L1896" class="LineNr">1896 </span>  22/dquote 61/a 20/space 62/b 22/dquote  <span class="subxComment"># &quot;a b&quot;</span>
-<span id="L1897" class="LineNr">1897 </span><span class="subxMinorFunction">_test-slice-a-space-b-limit</span>:
+<span id="L1879" class="LineNr">1879 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L1880" class="LineNr">1880 </span>    <span class="subxComment"># check-ints-equal(eax, 3, msg)</span>
+<span id="L1881" class="LineNr">1881 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L1882" class="LineNr">1882 </span>    68/push  <span class="Constant">&quot;F - test-string-length-at-start-of-slice-escaped&quot;</span>/imm32
+<span id="L1883" class="LineNr">1883 </span>    68/push  3/imm32
+<span id="L1884" class="LineNr">1884 </span>    50/push-eax
+<span id="L1885" class="LineNr">1885 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L1886" class="LineNr">1886 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1887" class="LineNr">1887 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L1888" class="LineNr">1888 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
+<span id="L1889" class="LineNr">1889 </span>    <span class="subxS1Comment"># . epilogue</span>
+<span id="L1890" class="LineNr">1890 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
+<span id="L1891" class="LineNr">1891 </span>    5d/pop-to-ebp
+<span id="L1892" class="LineNr">1892 </span>    c3/return
+<span id="L1893" class="LineNr">1893 </span>
+<span id="L1894" class="LineNr">1894 </span>== data
+<span id="L1895" class="LineNr">1895 </span>
+<span id="L1896" class="LineNr">1896 </span><span class="SpecialChar">Next-string-literal</span>:  <span class="subxComment"># tracks the next auto-generated variable name</span>
+<span id="L1897" class="LineNr">1897 </span>  1/imm32
 <span id="L1898" class="LineNr">1898 </span>
-<span id="L1899" class="LineNr">1899 </span><span class="subxMinorFunction">_test-slice-a-dquote-b</span>:
-<span id="L1900" class="LineNr">1900 </span>  22/dquote 61/a 5c/backslash 22/dquote 62/b 22/dquote  <span class="subxComment"># &quot;a\&quot;b&quot;</span>
-<span id="L1901" class="LineNr">1901 </span><span class="subxMinorFunction">_test-slice-a-dquote-b-limit</span>:
-<span id="L1902" class="LineNr">1902 </span>
-<span id="L1903" class="LineNr">1903 </span><span class="subxMinorFunction">_test-slice-a-newline-b</span>:
-<span id="L1904" class="LineNr">1904 </span>  22/dquote 61/a 5c/backslash 6e/n 62/b 22/dquote  <span class="subxComment"># &quot;a\nb&quot;</span>
-<span id="L1905" class="LineNr">1905 </span><span class="subxMinorFunction">_test-slice-a-newline-b-limit</span>:
-<span id="L1906" class="LineNr">1906 </span>
-<span id="L1907" class="LineNr">1907 </span><span class="subxComment"># &quot;abc/def&quot;/ghi</span>
-<span id="L1908" class="LineNr">1908 </span><span class="subxMinorFunction">_test-slice-literal-string</span>:
-<span id="L1909" class="LineNr">1909 </span>  22/dquote
-<span id="L1910" class="LineNr">1910 </span>  61/a 62/b 63/c  <span class="subxComment"># abc</span>
-<span id="L1911" class="LineNr">1911 </span>  2f/slash 64/d 65/e 66/f  <span class="subxComment"># /def</span>
-<span id="L1912" class="LineNr">1912 </span>  22/dquote
-<span id="L1913" class="LineNr">1913 </span>  2f/slash 67/g 68/h 69/i  <span class="subxComment"># /ghi</span>
-<span id="L1914" class="LineNr">1914 </span><span class="subxMinorFunction">_test-slice-literal-string-with-limit</span>:
+<span id="L1899" class="LineNr">1899 </span><span class="subxMinorFunction">_test-slice-abc</span>:
+<span id="L1900" class="LineNr">1900 </span>  22/dquote 61/a 62/b 63/c 22/dquote  <span class="subxComment"># &quot;abc&quot;</span>
+<span id="L1901" class="LineNr">1901 </span>  2f/slash 64/d
+<span id="L1902" class="LineNr">1902 </span><span class="subxMinorFunction">_test-slice-abc-limit</span>:
+<span id="L1903" class="LineNr">1903 </span>
+<span id="L1904" class="LineNr">1904 </span><span class="subxMinorFunction">_test-slice-a-space-b</span>:
+<span id="L1905" class="LineNr">1905 </span>  22/dquote 61/a 20/space 62/b 22/dquote  <span class="subxComment"># &quot;a b&quot;</span>
+<span id="L1906" class="LineNr">1906 </span><span class="subxMinorFunction">_test-slice-a-space-b-limit</span>:
+<span id="L1907" class="LineNr">1907 </span>
+<span id="L1908" class="LineNr">1908 </span><span class="subxMinorFunction">_test-slice-a-dquote-b</span>:
+<span id="L1909" class="LineNr">1909 </span>  22/dquote 61/a 5c/backslash 22/dquote 62/b 22/dquote  <span class="subxComment"># &quot;a\&quot;b&quot;</span>
+<span id="L1910" class="LineNr">1910 </span><span class="subxMinorFunction">_test-slice-a-dquote-b-limit</span>:
+<span id="L1911" class="LineNr">1911 </span>
+<span id="L1912" class="LineNr">1912 </span><span class="subxMinorFunction">_test-slice-a-newline-b</span>:
+<span id="L1913" class="LineNr">1913 </span>  22/dquote 61/a 5c/backslash 6e/n 62/b 22/dquote  <span class="subxComment"># &quot;a\nb&quot;</span>
+<span id="L1914" class="LineNr">1914 </span><span class="subxMinorFunction">_test-slice-a-newline-b-limit</span>:
 <span id="L1915" class="LineNr">1915 </span>
-<span id="L1916" class="LineNr">1916 </span><span class="subxS2Comment"># . . vim&#0058;nowrap:textwidth=0</span>
+<span id="L1916" class="LineNr">1916 </span><span class="subxComment"># &quot;abc/def&quot;/ghi</span>
+<span id="L1917" class="LineNr">1917 </span><span class="subxMinorFunction">_test-slice-literal-string</span>:
+<span id="L1918" class="LineNr">1918 </span>  22/dquote
+<span id="L1919" class="LineNr">1919 </span>  61/a 62/b 63/c  <span class="subxComment"># abc</span>
+<span id="L1920" class="LineNr">1920 </span>  2f/slash 64/d 65/e 66/f  <span class="subxComment"># /def</span>
+<span id="L1921" class="LineNr">1921 </span>  22/dquote
+<span id="L1922" class="LineNr">1922 </span>  2f/slash 67/g 68/h 69/i  <span class="subxComment"># /ghi</span>
+<span id="L1923" class="LineNr">1923 </span><span class="subxMinorFunction">_test-slice-literal-string-with-limit</span>:
+<span id="L1924" class="LineNr">1924 </span>
+<span id="L1925" class="LineNr">1925 </span><span class="subxS2Comment"># . . vim&#0058;nowrap:textwidth=0</span>
 </pre>
 </body>
 </html>