         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %integer x
     3    %integermap r
 0004 EB 00                                 JMP L1001
 0006                      L1002  EQU $
 0006 C8 00 00 02                           ENTER 0000,2
     4      %result == x
 000A 8B 75 FC                              MOV %ESI,[%EBP-4]
 000D 8D 46 F8                              LEA %EAX,[%ESI-8]
 0010 C9                                    LEAVE
 0011 C3                                    RET
     5    %end
 0012                      L1001  EQU $
     6    %integermap r1(%integer p1)
     7      %result == x
 0012                      L1003  EQU $
 0012 C8 00 00 02                           ENTER 0000,2
 0016 8B 7D FC                              MOV %EDI,[%EBP-4]
 0019 8D 47 F8                              LEA %EAX,[%EDI-8]
 001C C9                                    LEAVE
 001D C3                                    RET
     8    %end
 001E                      L1001  EQU $
?P1 unused
     9    %integermap r2(%integer p1,p2)
    10      %result == x
 001E                      L1004  EQU $
 001E C8 00 00 02                           ENTER 0000,2
 0022 8B 5D FC                              MOV %EBX,[%EBP-4]
 0025 8D 43 F8                              LEA %EAX,[%EBX-8]
 0028 C9                                    LEAVE
 0029 C3                                    RET
    11    %end
 002A                      L1001  EQU $
?P2 unused
?P1 unused
    12    %integermap r3(%integer p1,p2,p3)
    13      %result == x
 002A                      L1005  EQU $
 002A C8 00 00 02                           ENTER 0000,2
 002E 8B 75 FC                              MOV %ESI,[%EBP-4]
 0031 8D 46 F8                              LEA %EAX,[%ESI-8]
 0034 C9                                    LEAVE
 0035 C3                                    RET
    14    %end
 0036                      L1001  EQU $
?P3 unused
?P2 unused
?P1 unused
    15    %integer i
    16    i = 12
 0036 C7 45 F4 0C 00 00 00                  MOV DWORD PTR [%EBP-12],#12
    17    r = i
 003D E8 00 00                              CALL 'R' (INTERNAL L1002 )
 0040 8B 4D F4                              MOV %ECX,[%EBP-12]
 0043 89 08                                 MOV [%EAX],%ECX
    18    r1(123) = i
 0045 6A 7B                                 PUSH #123
 0047 E8 00 00                              CALL 'R1' (INTERNAL L1003 )
 004A 83 C4 04                              ADD %ESP,#4
 004D 8B 4D F4                              MOV %ECX,[%EBP-12]
 0050 89 08                                 MOV [%EAX],%ECX
    19    r2(23,34) = i
 0052 6A 17                                 PUSH #23
 0054 6A 22                                 PUSH #34
 0056 E8 00 00                              CALL 'R2' (INTERNAL L1004 )
 0059 83 C4 08                              ADD %ESP,#8
 005C 8B 4D F4                              MOV %ECX,[%EBP-12]
 005F 89 08                                 MOV [%EAX],%ECX
    20    r3(34,45,56) = i
 0061 6A 22                                 PUSH #34
 0063 6A 2D                                 PUSH #45
 0065 6A 38                                 PUSH #56
 0067 E8 00 00                              CALL 'R3' (INTERNAL L1005 )
 006A 83 C4 0C                              ADD %ESP,#12
 006D 8B 4D F4                              MOV %ECX,[%EBP-12]
 0070 89 08                                 MOV [%EAX],%ECX
    21  %endofprogram
 0072 C9                                    LEAVE
 0073 C3                                    RET

    21 Statements compiled



 ELF object file generated from IMP source file: '/home/gtoal/src/compilers101/new-parser/imps/tests/test49.imp'
 +----------+---------------------+---------+---------+---------+------------+
 | Sections |       Symbols       | Code    | Data    | Diag    | Total size |
 +----------+----------+----------+---------+---------+---------+------------+
 |  (count) | Internal | External | (bytes) | (bytes) | (bytes) | (bytes)    |
 +----------+----------+----------+---------+---------+---------+------------+
 |       11 |        8 |        6 |     124 |       0 |     160 |        284 |
 +----------+----------+----------+---------+---------+---------+------------+


