| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- # 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 99 02 mov bx,299h
- 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 8B EC mov bp,sp
- 0063 8A 46 02 mov al,byte ptr [bp+2h]
- 0066 89 EC mov sp,bp
- 0068 B4 02 mov ah,2h
- 006A CD 21 int 21h
- 006C C3 ret
- 006D 8B EC mov bp,sp
- 006F 83 7E 02 00 cmp word ptr [bp+2h],0h
- 0073 89 EC mov sp,bp
- 0075 75 05 jne 7ch
- 0077 BA 9E 02 mov dx,29eh
- 007A EB 03 jmp 7fh
- 007C BA 99 02 mov dx,299h
- 007F B4 09 mov ah,9h
- 0081 CD 21 int 21h
- 0083 C3 ret
- 0084 BA A7 02 mov dx,2a7h
- 0087 B4 09 mov ah,9h
- 0089 CD 21 int 21h
- 008B C3 ret
- 008C BA A4 02 mov dx,2a4h
- 008F B4 09 mov ah,9h
- 0091 CD 21 int 21h
- 0093 C3 ret
- 0094 5B pop bx
- 0095 31 C9 xor cx,cx
- 0097 8A 0F mov cl,byte ptr [bx]
- 0099 43 inc bx
- 009A B4 02 mov ah,2h
- 009C E3 07 jcxz 0a5h
- 009E 8A 07 mov al,byte ptr [bx]
- 00A0 CD 21 int 21h
- 00A2 43 inc bx
- 00A3 E2 F9 loop 9eh
- 00A5 FF E3 jmp bx
- 00A7 55 push bp
- 00A8 8B EC mov bp,sp
- 00AA 50 push ax
- 00AB 53 push bx
- 00AC 51 push cx
- 00AD 52 push dx
- 00AE 57 push di
- 00AF E8 BC 00 call 16eh
- 00B2 3C 1A cmp al,1ah
- 00B4 74 54 je 10ah
- 00B6 3C 14 cmp al,14h
- 00B8 76 F5 jbe 0afh
- 00BA 31 C9 xor cx,cx
- 00BC 3C 2D cmp al,2dh
- 00BE 75 06 jne 0c6h
- 00C0 41 inc cx
- 00C1 E8 AA 00 call 16eh
- 00C4 EB 07 jmp 0cdh
- 00C6 3C 2B cmp al,2bh
- 00C8 75 03 jne 0cdh
- 00CA E8 A1 00 call 16eh
- 00CD 31 FF xor di,di
- 00CF 3C 30 cmp al,30h
- 00D1 72 18 jb 0ebh
- 00D3 3C 39 cmp al,39h
- 00D5 77 14 jnbe 0ebh
- 00D7 2C 30 sub al,30h
- 00D9 B4 00 mov ah,0h
- 00DB 87 C7 xchg di,ax
- 00DD BB 0A 00 mov bx,0ah
- 00E0 F7 E3 mul bx
- 00E2 03 C7 add ax,di
- 00E4 89 C7 mov di,ax
- 00E6 E8 85 00 call 16eh
- 00E9 EB E4 jmp 0cfh
- 00EB E8 97 00 call 185h
- 00EE 83 F9 02 cmp cx,2h
- 00F1 74 0E je 101h
- 00F3 83 F9 00 cmp cx,0h
- 00F6 74 02 je 0fah
- 00F8 F7 DF neg di
- 00FA 8B C7 mov ax,di
- 00FC 8B 7E 04 mov di,word ptr [bp+4h]
- 00FF 89 05 mov word ptr [di],ax
- 0101 5F pop di
- 0102 5A pop dx
- 0103 59 pop cx
- 0104 5B pop bx
- 0105 58 pop ax
- 0106 89 EC mov sp,bp
- 0108 5D pop bp
- 0109 C3 ret
- 010A 5F pop di
- 010B 5A pop dx
- 010C 59 pop cx
- 010D 5B pop bx
- 010E 58 pop ax
- 010F 89 EC mov sp,bp
- 0111 5D pop bp
- 0112 C3 ret
- 0113 55 push bp
- 0114 8B EC mov bp,sp
- 0116 50 push ax
- 0117 53 push bx
- 0118 57 push di
- 0119 E8 52 00 call 16eh
- 011C 88 C2 mov dl,al
- 011E 8B 7E 04 mov di,word ptr [bp+4h]
- 0121 88 15 mov byte ptr [di],dl
- 0123 5F pop di
- 0124 5B pop bx
- 0125 58 pop ax
- 0126 89 EC mov sp,bp
- 0128 5D pop bp
- 0129 C3 ret
- 012A 55 push bp
- 012B 8B EC mov bp,sp
- 012D 50 push ax
- 012E 53 push bx
- 012F 51 push cx
- 0130 57 push di
- 0131 E8 3A 00 call 16eh
- 0134 31 C9 xor cx,cx
- 0136 3C 54 cmp al,54h
- 0138 74 12 je 14ch
- 013A 3C 74 cmp al,74h
- 013C 74 0E je 14ch
- 013E 3C 59 cmp al,59h
- 0140 74 0A je 14ch
- 0142 3C 79 cmp al,79h
- 0144 74 06 je 14ch
- 0146 3C 31 cmp al,31h
- 0148 74 02 je 14ch
- 014A EB 01 jmp 14dh
- 014C 41 inc cx
- 014D 8B 7E 04 mov di,word ptr [bp+4h]
- 0150 89 0D mov word ptr [di],cx
- 0152 5F pop di
- 0153 59 pop cx
- 0154 5B pop bx
- 0155 58 pop ax
- 0156 89 EC mov sp,bp
- 0158 5D pop bp
- 0159 C3 ret
- 015A 50 push ax
- 015B E8 10 00 call 16eh
- 015E 3C 0D cmp al,0dh
- 0160 74 0A je 16ch
- 0162 3C 0A cmp al,0ah
- 0164 74 06 je 16ch
- 0166 3C 1A cmp al,1ah
- 0168 74 02 je 16ch
- 016A EB EF jmp 15bh
- 016C 58 pop ax
- 016D C3 ret
- 016E 8B 1E AD 02 mov bx,word ptr [2adh]
- 0172 83 FB 00 cmp bx,0h
- 0175 74 09 je 180h
- 0177 8A C3 mov al,bl
- 0179 31 DB xor bx,bx
- 017B 89 1E AD 02 mov word ptr [2adh],bx
- 017F C3 ret
- 0180 B4 08 mov ah,8h
- 0182 CD 21 int 21h
- 0184 C3 ret
- 0185 88 C2 mov dl,al
- 0187 BB 01 00 mov bx,1h
- 018A 8A DA mov bl,dl
- 018C 89 1E AD 02 mov word ptr [2adh],bx
- 0190 C3 ret
|