| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484 |
- # runtime.golden -- full FCML disassembly of the runtime's code region.
- #
- # GENERATED by tests/check_runtime.py --bless, then READ THE DIFF and commit.
- # Every line is "OFFSET BYTES MNEMONIC". This file is a deliberate
- # tripwire: any edit to Runtime.mod invalidates it, because inserting an
- # instruction renumbers everything after it, so you are forced to look at the
- # whole new listing and confirm you meant every change. See the "Re-baselining
- # the golden" section of check_runtime.py.
- #
- # Region: bytes 0..codeEnd of the runtime image (see the code/data split in
- # EmitData). Relative targets are absolute offsets within the runtime, which
- # the compiler adds to the runtime's load address when it emits a CALL.
- 0000 8B F0 mov si,ax
- 0002 8B 54 04 mov dx,word ptr [si+4h]
- 0005 8B 4C 06 mov cx,word ptr [si+6h]
- 0008 39 D1 cmp cx,dx
- 000A 76 0D jbe 19h
- 000C 89 D7 mov di,dx
- 000E 31 C0 xor ax,ax
- 0010 89 05 mov word ptr [di],ax
- 0012 83 C7 02 add di,2h
- 0015 39 CF cmp di,cx
- 0017 72 F5 jb 0eh
- 0019 1E push ds
- 001A 07 pop es
- 001B C3 ret
- 001C 31 C0 xor ax,ax
- 001E B4 4C mov ah,4ch
- 0020 CD 21 int 21h
- 0022 C3 ret
- 0023 C3 ret
- 0024 55 push bp
- 0025 8B EC mov bp,sp
- 0027 8B 46 04 mov ax,word ptr [bp+4h]
- 002A 83 F8 00 cmp ax,0h
- 002D 7D 0A jnl 39h
- 002F 50 push ax
- 0030 B0 2D mov al,2dh
- 0032 B4 02 mov ah,2h
- 0034 CD 21 int 21h
- 0036 58 pop ax
- 0037 F7 D8 neg ax
- 0039 B9 0A 00 mov cx,0ah
- 003C BB 57 04 mov bx,457h
- 003F 89 DE mov si,bx
- 0041 31 D2 xor dx,dx
- 0043 F7 F1 div ax,cx
- 0045 80 C2 30 add dl,30h
- 0048 4E dec si
- 0049 88 14 mov byte ptr [si],dl
- 004B 83 F8 00 cmp ax,0h
- 004E 75 F1 jne 41h
- 0050 39 DE cmp si,bx
- 0052 74 09 je 5dh
- 0054 8A 04 mov al,byte ptr [si]
- 0056 B4 02 mov ah,2h
- 0058 CD 21 int 21h
- 005A 46 inc si
- 005B EB F3 jmp 50h
- 005D 89 EC mov sp,bp
- 005F 5D pop bp
- 0060 C3 ret
- 0061 55 push bp
- 0062 8B EC mov bp,sp
- 0064 BB 00 00 mov bx,0h
- 0067 8B 46 06 mov ax,word ptr [bp+6h]
- 006A 83 F8 00 cmp ax,0h
- 006D 7D 03 jnl 72h
- 006F 43 inc bx
- 0070 F7 D8 neg ax
- 0072 B9 0A 00 mov cx,0ah
- 0075 43 inc bx
- 0076 31 D2 xor dx,dx
- 0078 F7 F1 div ax,cx
- 007A 83 F8 00 cmp ax,0h
- 007D 75 F6 jne 75h
- 007F 8B 46 04 mov ax,word ptr [bp+4h]
- 0082 2B C3 sub ax,bx
- 0084 83 F8 00 cmp ax,0h
- 0087 7E 0A jle 93h
- 0089 89 C1 mov cx,ax
- 008B B0 20 mov al,20h
- 008D B4 02 mov ah,2h
- 008F CD 21 int 21h
- 0091 E2 F8 loop 8bh
- 0093 8B 46 06 mov ax,word ptr [bp+6h]
- 0096 83 F8 00 cmp ax,0h
- 0099 7D 0A jnl 0a5h
- 009B 50 push ax
- 009C B0 2D mov al,2dh
- 009E B4 02 mov ah,2h
- 00A0 CD 21 int 21h
- 00A2 58 pop ax
- 00A3 F7 D8 neg ax
- 00A5 B9 0A 00 mov cx,0ah
- 00A8 BB 57 04 mov bx,457h
- 00AB 89 DE mov si,bx
- 00AD 31 D2 xor dx,dx
- 00AF F7 F1 div ax,cx
- 00B1 80 C2 30 add dl,30h
- 00B4 4E dec si
- 00B5 88 14 mov byte ptr [si],dl
- 00B7 83 F8 00 cmp ax,0h
- 00BA 75 F1 jne 0adh
- 00BC 39 DE cmp si,bx
- 00BE 74 09 je 0c9h
- 00C0 8A 04 mov al,byte ptr [si]
- 00C2 B4 02 mov ah,2h
- 00C4 CD 21 int 21h
- 00C6 46 inc si
- 00C7 EB F3 jmp 0bch
- 00C9 89 EC mov sp,bp
- 00CB 5D pop bp
- 00CC C3 ret
- 00CD 55 push bp
- 00CE 8B EC mov bp,sp
- 00D0 8A 46 04 mov al,byte ptr [bp+4h]
- 00D3 89 EC mov sp,bp
- 00D5 5D pop bp
- 00D6 B4 02 mov ah,2h
- 00D8 CD 21 int 21h
- 00DA C3 ret
- 00DB 55 push bp
- 00DC 8B EC mov bp,sp
- 00DE 83 7E 04 00 cmp word ptr [bp+4h],0h
- 00E2 89 EC mov sp,bp
- 00E4 75 05 jne 0ebh
- 00E6 BA 5C 04 mov dx,45ch
- 00E9 EB 03 jmp 0eeh
- 00EB BA 57 04 mov dx,457h
- 00EE B4 09 mov ah,9h
- 00F0 CD 21 int 21h
- 00F2 5D pop bp
- 00F3 C3 ret
- 00F4 BA 65 04 mov dx,465h
- 00F7 B4 09 mov ah,9h
- 00F9 CD 21 int 21h
- 00FB C3 ret
- 00FC BA 62 04 mov dx,462h
- 00FF B4 09 mov ah,9h
- 0101 CD 21 int 21h
- 0103 C3 ret
- 0104 5B pop bx
- 0105 31 C9 xor cx,cx
- 0107 8A 0F mov cl,byte ptr [bx]
- 0109 43 inc bx
- 010A B4 02 mov ah,2h
- 010C E3 07 jcxz 115h
- 010E 8A 07 mov al,byte ptr [bx]
- 0110 CD 21 int 21h
- 0112 43 inc bx
- 0113 E2 F9 loop 10eh
- 0115 FF E3 jmp bx
- 0117 55 push bp
- 0118 8B EC mov bp,sp
- 011A 53 push bx
- 011B 51 push cx
- 011C 50 push ax
- 011D 8B 5E 04 mov bx,word ptr [bp+4h]
- 0120 31 C9 xor cx,cx
- 0122 8A 0F mov cl,byte ptr [bx]
- 0124 43 inc bx
- 0125 B4 02 mov ah,2h
- 0127 E3 07 jcxz 130h
- 0129 8A 07 mov al,byte ptr [bx]
- 012B CD 21 int 21h
- 012D 43 inc bx
- 012E E2 F9 loop 129h
- 0130 58 pop ax
- 0131 59 pop cx
- 0132 5B pop bx
- 0133 89 EC mov sp,bp
- 0135 5D pop bp
- 0136 C3 ret
- 0137 55 push bp
- 0138 8B EC mov bp,sp
- 013A 50 push ax
- 013B 53 push bx
- 013C 51 push cx
- 013D 52 push dx
- 013E 57 push di
- 013F E8 13 00 call 155h
- 0142 83 F9 02 cmp cx,2h
- 0145 74 05 je 14ch
- 0147 8B 7E 04 mov di,word ptr [bp+4h]
- 014A 89 05 mov word ptr [di],ax
- 014C 5F pop di
- 014D 5A pop dx
- 014E 59 pop cx
- 014F 5B pop bx
- 0150 58 pop ax
- 0151 89 EC mov sp,bp
- 0153 5D pop bp
- 0154 C3 ret
- 0155 E8 C3 00 call 21bh
- 0158 3C 1A cmp al,1ah
- 015A 74 42 je 19eh
- 015C 3C 20 cmp al,20h
- 015E 76 F5 jbe 155h
- 0160 31 C9 xor cx,cx
- 0162 3C 2D cmp al,2dh
- 0164 75 06 jne 16ch
- 0166 41 inc cx
- 0167 E8 B1 00 call 21bh
- 016A EB 07 jmp 173h
- 016C 3C 2B cmp al,2bh
- 016E 75 03 jne 173h
- 0170 E8 A8 00 call 21bh
- 0173 31 FF xor di,di
- 0175 3C 30 cmp al,30h
- 0177 72 18 jb 191h
- 0179 3C 39 cmp al,39h
- 017B 77 14 jnbe 191h
- 017D 2C 30 sub al,30h
- 017F B4 00 mov ah,0h
- 0181 87 C7 xchg di,ax
- 0183 BB 0A 00 mov bx,0ah
- 0186 F7 E3 mul bx
- 0188 03 C7 add ax,di
- 018A 89 C7 mov di,ax
- 018C E8 8C 00 call 21bh
- 018F EB E4 jmp 175h
- 0191 E8 9E 00 call 232h
- 0194 83 F9 00 cmp cx,0h
- 0197 74 02 je 19bh
- 0199 F7 DF neg di
- 019B 8B C7 mov ax,di
- 019D C3 ret
- 019E B9 02 00 mov cx,2h
- 01A1 C3 ret
- 01A2 55 push bp
- 01A3 8B EC mov bp,sp
- 01A5 50 push ax
- 01A6 53 push bx
- 01A7 51 push cx
- 01A8 52 push dx
- 01A9 57 push di
- 01AA E8 A8 FF call 155h
- 01AD 83 F9 02 cmp cx,2h
- 01B0 74 05 je 1b7h
- 01B2 8B 7E 04 mov di,word ptr [bp+4h]
- 01B5 88 05 mov byte ptr [di],al
- 01B7 5F pop di
- 01B8 5A pop dx
- 01B9 59 pop cx
- 01BA 5B pop bx
- 01BB 58 pop ax
- 01BC 89 EC mov sp,bp
- 01BE 5D pop bp
- 01BF C3 ret
- 01C0 55 push bp
- 01C1 8B EC mov bp,sp
- 01C3 50 push ax
- 01C4 53 push bx
- 01C5 57 push di
- 01C6 E8 52 00 call 21bh
- 01C9 88 C2 mov dl,al
- 01CB 8B 7E 04 mov di,word ptr [bp+4h]
- 01CE 88 15 mov byte ptr [di],dl
- 01D0 5F pop di
- 01D1 5B pop bx
- 01D2 58 pop ax
- 01D3 89 EC mov sp,bp
- 01D5 5D pop bp
- 01D6 C3 ret
- 01D7 55 push bp
- 01D8 8B EC mov bp,sp
- 01DA 50 push ax
- 01DB 53 push bx
- 01DC 51 push cx
- 01DD 57 push di
- 01DE E8 3A 00 call 21bh
- 01E1 31 C9 xor cx,cx
- 01E3 3C 54 cmp al,54h
- 01E5 74 12 je 1f9h
- 01E7 3C 74 cmp al,74h
- 01E9 74 0E je 1f9h
- 01EB 3C 59 cmp al,59h
- 01ED 74 0A je 1f9h
- 01EF 3C 79 cmp al,79h
- 01F1 74 06 je 1f9h
- 01F3 3C 31 cmp al,31h
- 01F5 74 02 je 1f9h
- 01F7 EB 01 jmp 1fah
- 01F9 41 inc cx
- 01FA 8B 7E 04 mov di,word ptr [bp+4h]
- 01FD 89 0D mov word ptr [di],cx
- 01FF 5F pop di
- 0200 59 pop cx
- 0201 5B pop bx
- 0202 58 pop ax
- 0203 89 EC mov sp,bp
- 0205 5D pop bp
- 0206 C3 ret
- 0207 50 push ax
- 0208 E8 10 00 call 21bh
- 020B 3C 0D cmp al,0dh
- 020D 74 0A je 219h
- 020F 3C 0A cmp al,0ah
- 0211 74 06 je 219h
- 0213 3C 1A cmp al,1ah
- 0215 74 02 je 219h
- 0217 EB EF jmp 208h
- 0219 58 pop ax
- 021A C3 ret
- 021B 8B 1E 6B 04 mov bx,word ptr [46bh]
- 021F 83 FB 00 cmp bx,0h
- 0222 74 09 je 22dh
- 0224 8A C3 mov al,bl
- 0226 31 DB xor bx,bx
- 0228 89 1E 6B 04 mov word ptr [46bh],bx
- 022C C3 ret
- 022D B4 08 mov ah,8h
- 022F CD 21 int 21h
- 0231 C3 ret
- 0232 88 C2 mov dl,al
- 0234 BB 01 00 mov bx,1h
- 0237 8A DA mov bl,dl
- 0239 89 1E 6B 04 mov word ptr [46bh],bx
- 023D C3 ret
- 023E 55 push bp
- 023F 8B EC mov bp,sp
- 0241 50 push ax
- 0242 53 push bx
- 0243 51 push cx
- 0244 52 push dx
- 0245 57 push di
- 0246 8B 7E 04 mov di,word ptr [bp+4h]
- 0249 8B 46 04 mov ax,word ptr [bp+4h]
- 024C 8B F0 mov si,ax
- 024E 46 inc si
- 024F 31 DB xor bx,bx
- 0251 53 push bx
- 0252 E8 C6 FF call 21bh
- 0255 5B pop bx
- 0256 3C 0D cmp al,0dh
- 0258 74 1D je 277h
- 025A 3C 0A cmp al,0ah
- 025C 74 19 je 277h
- 025E 3C 1A cmp al,1ah
- 0260 74 15 je 277h
- 0262 88 C2 mov dl,al
- 0264 43 inc bx
- 0265 88 14 mov byte ptr [si],dl
- 0267 46 inc si
- 0268 E2 E7 loop 251h
- 026A 8A C3 mov al,bl
- 026C 88 05 mov byte ptr [di],al
- 026E 5F pop di
- 026F 5A pop dx
- 0270 59 pop cx
- 0271 5B pop bx
- 0272 58 pop ax
- 0273 89 EC mov sp,bp
- 0275 5D pop bp
- 0276 C3 ret
- 0277 53 push bx
- 0278 E8 B7 FF call 232h
- 027B 5B pop bx
- 027C EB EC jmp 26ah
- 027E 55 push bp
- 027F 8B EC mov bp,sp
- 0281 50 push ax
- 0282 53 push bx
- 0283 51 push cx
- 0284 52 push dx
- 0285 8B 46 04 mov ax,word ptr [bp+4h]
- 0288 8B F0 mov si,ax
- 028A 8B 5E 06 mov bx,word ptr [bp+6h]
- 028D 31 D2 xor dx,dx
- 028F 8A 07 mov al,byte ptr [bx]
- 0291 88 C2 mov dl,al
- 0293 43 inc bx
- 0294 39 D1 cmp cx,dx
- 0296 72 04 jb 29ch
- 0298 8B CA mov cx,dx
- 029A EB 02 jmp 29eh
- 029C 8A D1 mov dl,cl
- 029E 88 14 mov byte ptr [si],dl
- 02A0 46 inc si
- 02A1 E3 0A jcxz 2adh
- 02A3 8A 07 mov al,byte ptr [bx]
- 02A5 88 C2 mov dl,al
- 02A7 88 14 mov byte ptr [si],dl
- 02A9 43 inc bx
- 02AA 46 inc si
- 02AB E2 F6 loop 2a3h
- 02AD 5A pop dx
- 02AE 59 pop cx
- 02AF 5B pop bx
- 02B0 58 pop ax
- 02B1 89 EC mov sp,bp
- 02B3 5D pop bp
- 02B4 C3 ret
- 02B5 55 push bp
- 02B6 8B EC mov bp,sp
- 02B8 53 push bx
- 02B9 51 push cx
- 02BA 52 push dx
- 02BB 31 C9 xor cx,cx
- 02BD 31 D2 xor dx,dx
- 02BF 8B 5E 06 mov bx,word ptr [bp+6h]
- 02C2 8A 0F mov cl,byte ptr [bx]
- 02C4 8B 46 04 mov ax,word ptr [bp+4h]
- 02C7 8B F0 mov si,ax
- 02C9 8A 14 mov dl,byte ptr [si]
- 02CB 39 D1 cmp cx,dx
- 02CD 76 02 jbe 2d1h
- 02CF 8B CA mov cx,dx
- 02D1 E3 0E jcxz 2e1h
- 02D3 43 inc bx
- 02D4 46 inc si
- 02D5 8A 07 mov al,byte ptr [bx]
- 02D7 8A 14 mov dl,byte ptr [si]
- 02D9 3A C2 cmp al,dl
- 02DB 75 14 jne 2f1h
- 02DD 43 inc bx
- 02DE 46 inc si
- 02DF E2 F4 loop 2d5h
- 02E1 8B 5E 06 mov bx,word ptr [bp+6h]
- 02E4 8A 0F mov cl,byte ptr [bx]
- 02E6 8B 46 04 mov ax,word ptr [bp+4h]
- 02E9 8B F0 mov si,ax
- 02EB 31 D2 xor dx,dx
- 02ED 8A 14 mov dl,byte ptr [si]
- 02EF 39 D1 cmp cx,dx
- 02F1 B0 00 mov al,0h
- 02F3 B4 00 mov ah,0h
- 02F5 72 06 jb 2fdh
- 02F7 74 08 je 301h
- 02F9 B0 01 mov al,1h
- 02FB EB 04 jmp 301h
- 02FD B0 FF mov al,0ffh
- 02FF B4 FF mov ah,0ffh
- 0301 5A pop dx
- 0302 59 pop cx
- 0303 5B pop bx
- 0304 89 EC mov sp,bp
- 0306 5D pop bp
- 0307 C3 ret
- 0308 55 push bp
- 0309 8B EC mov bp,sp
- 030B 50 push ax
- 030C 53 push bx
- 030D 51 push cx
- 030E 52 push dx
- 030F 56 push si
- 0310 57 push di
- 0311 8B 46 04 mov ax,word ptr [bp+4h]
- 0314 8B F0 mov si,ax
- 0316 8B 5E 06 mov bx,word ptr [bp+6h]
- 0319 31 D2 xor dx,dx
- 031B 8A 14 mov dl,byte ptr [si]
- 031D 31 C0 xor ax,ax
- 031F 8A 07 mov al,byte ptr [bx]
- 0321 01 C2 add dx,ax
- 0323 39 D1 cmp cx,dx
- 0325 73 06 jnb 32dh
- 0327 B0 10 mov al,10h
- 0329 B4 4C mov ah,4ch
- 032B CD 21 int 21h
- 032D 8B CA mov cx,dx
- 032F 88 0C mov byte ptr [si],cl
- 0331 29 C2 sub dx,ax
- 0333 8B FE mov di,si
- 0335 47 inc di
- 0336 01 D7 add di,dx
- 0338 43 inc bx
- 0339 89 C1 mov cx,ax
- 033B E3 08 jcxz 345h
- 033D 8A 07 mov al,byte ptr [bx]
- 033F 88 05 mov byte ptr [di],al
- 0341 43 inc bx
- 0342 47 inc di
- 0343 E2 F8 loop 33dh
- 0345 5F pop di
- 0346 5E pop si
- 0347 5A pop dx
- 0348 59 pop cx
- 0349 5B pop bx
- 034A 58 pop ax
- 034B 89 EC mov sp,bp
- 034D 5D pop bp
- 034E C3 ret
|