| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- # 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 9D 02 mov bx,29dh
- 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 8A 46 04 mov al,byte ptr [bp+4h]
- 0067 89 EC mov sp,bp
- 0069 5D pop bp
- 006A B4 02 mov ah,2h
- 006C CD 21 int 21h
- 006E C3 ret
- 006F 55 push bp
- 0070 8B EC mov bp,sp
- 0072 83 7E 04 00 cmp word ptr [bp+4h],0h
- 0076 89 EC mov sp,bp
- 0078 75 05 jne 7fh
- 007A BA A2 02 mov dx,2a2h
- 007D EB 03 jmp 82h
- 007F BA 9D 02 mov dx,29dh
- 0082 B4 09 mov ah,9h
- 0084 CD 21 int 21h
- 0086 5D pop bp
- 0087 C3 ret
- 0088 BA AB 02 mov dx,2abh
- 008B B4 09 mov ah,9h
- 008D CD 21 int 21h
- 008F C3 ret
- 0090 BA A8 02 mov dx,2a8h
- 0093 B4 09 mov ah,9h
- 0095 CD 21 int 21h
- 0097 C3 ret
- 0098 5B pop bx
- 0099 31 C9 xor cx,cx
- 009B 8A 0F mov cl,byte ptr [bx]
- 009D 43 inc bx
- 009E B4 02 mov ah,2h
- 00A0 E3 07 jcxz 0a9h
- 00A2 8A 07 mov al,byte ptr [bx]
- 00A4 CD 21 int 21h
- 00A6 43 inc bx
- 00A7 E2 F9 loop 0a2h
- 00A9 FF E3 jmp bx
- 00AB 55 push bp
- 00AC 8B EC mov bp,sp
- 00AE 50 push ax
- 00AF 53 push bx
- 00B0 51 push cx
- 00B1 52 push dx
- 00B2 57 push di
- 00B3 E8 BC 00 call 172h
- 00B6 3C 1A cmp al,1ah
- 00B8 74 54 je 10eh
- 00BA 3C 20 cmp al,20h
- 00BC 76 F5 jbe 0b3h
- 00BE 31 C9 xor cx,cx
- 00C0 3C 2D cmp al,2dh
- 00C2 75 06 jne 0cah
- 00C4 41 inc cx
- 00C5 E8 AA 00 call 172h
- 00C8 EB 07 jmp 0d1h
- 00CA 3C 2B cmp al,2bh
- 00CC 75 03 jne 0d1h
- 00CE E8 A1 00 call 172h
- 00D1 31 FF xor di,di
- 00D3 3C 30 cmp al,30h
- 00D5 72 18 jb 0efh
- 00D7 3C 39 cmp al,39h
- 00D9 77 14 jnbe 0efh
- 00DB 2C 30 sub al,30h
- 00DD B4 00 mov ah,0h
- 00DF 87 C7 xchg di,ax
- 00E1 BB 0A 00 mov bx,0ah
- 00E4 F7 E3 mul bx
- 00E6 03 C7 add ax,di
- 00E8 89 C7 mov di,ax
- 00EA E8 85 00 call 172h
- 00ED EB E4 jmp 0d3h
- 00EF E8 97 00 call 189h
- 00F2 83 F9 02 cmp cx,2h
- 00F5 74 0E je 105h
- 00F7 83 F9 00 cmp cx,0h
- 00FA 74 02 je 0feh
- 00FC F7 DF neg di
- 00FE 8B C7 mov ax,di
- 0100 8B 7E 04 mov di,word ptr [bp+4h]
- 0103 89 05 mov word ptr [di],ax
- 0105 5F pop di
- 0106 5A pop dx
- 0107 59 pop cx
- 0108 5B pop bx
- 0109 58 pop ax
- 010A 89 EC mov sp,bp
- 010C 5D pop bp
- 010D C3 ret
- 010E 5F pop di
- 010F 5A pop dx
- 0110 59 pop cx
- 0111 5B pop bx
- 0112 58 pop ax
- 0113 89 EC mov sp,bp
- 0115 5D pop bp
- 0116 C3 ret
- 0117 55 push bp
- 0118 8B EC mov bp,sp
- 011A 50 push ax
- 011B 53 push bx
- 011C 57 push di
- 011D E8 52 00 call 172h
- 0120 88 C2 mov dl,al
- 0122 8B 7E 04 mov di,word ptr [bp+4h]
- 0125 88 15 mov byte ptr [di],dl
- 0127 5F pop di
- 0128 5B pop bx
- 0129 58 pop ax
- 012A 89 EC mov sp,bp
- 012C 5D pop bp
- 012D C3 ret
- 012E 55 push bp
- 012F 8B EC mov bp,sp
- 0131 50 push ax
- 0132 53 push bx
- 0133 51 push cx
- 0134 57 push di
- 0135 E8 3A 00 call 172h
- 0138 31 C9 xor cx,cx
- 013A 3C 54 cmp al,54h
- 013C 74 12 je 150h
- 013E 3C 74 cmp al,74h
- 0140 74 0E je 150h
- 0142 3C 59 cmp al,59h
- 0144 74 0A je 150h
- 0146 3C 79 cmp al,79h
- 0148 74 06 je 150h
- 014A 3C 31 cmp al,31h
- 014C 74 02 je 150h
- 014E EB 01 jmp 151h
- 0150 41 inc cx
- 0151 8B 7E 04 mov di,word ptr [bp+4h]
- 0154 89 0D mov word ptr [di],cx
- 0156 5F pop di
- 0157 59 pop cx
- 0158 5B pop bx
- 0159 58 pop ax
- 015A 89 EC mov sp,bp
- 015C 5D pop bp
- 015D C3 ret
- 015E 50 push ax
- 015F E8 10 00 call 172h
- 0162 3C 0D cmp al,0dh
- 0164 74 0A je 170h
- 0166 3C 0A cmp al,0ah
- 0168 74 06 je 170h
- 016A 3C 1A cmp al,1ah
- 016C 74 02 je 170h
- 016E EB EF jmp 15fh
- 0170 58 pop ax
- 0171 C3 ret
- 0172 8B 1E B1 02 mov bx,word ptr [2b1h]
- 0176 83 FB 00 cmp bx,0h
- 0179 74 09 je 184h
- 017B 8A C3 mov al,bl
- 017D 31 DB xor bx,bx
- 017F 89 1E B1 02 mov word ptr [2b1h],bx
- 0183 C3 ret
- 0184 B4 08 mov ah,8h
- 0186 CD 21 int 21h
- 0188 C3 ret
- 0189 88 C2 mov dl,al
- 018B BB 01 00 mov bx,1h
- 018E 8A DA mov bl,dl
- 0190 89 1E B1 02 mov word ptr [2b1h],bx
- 0194 C3 ret
|