         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %predicate fred(%integer i)
 0004 EB 00                                 JMP L1001
 0006                      L1002  EQU $
 0006 C8 00 00 02                           ENTER 0000,2
     3      %true %if i = 1
 000A 8B 45 08                              MOV %EAX,[%EBP+8]
 000D 3D 01 00 00 00                        CMP %EAX,#1
 0012 75 00                                 JNE L1003
 0014 B8 FF FF FF FF                        MOV %EAX,#-1
 0019 C9                                    LEAVE
 001A C3                                    RET
 001B                      L1003  EQU $
     4      %false
 001B B8 00 00 00 00                        MOV %EAX,#0
 0020 C9                                    LEAVE
 0021 C3                                    RET
     5    %end
 0022                      L1001  EQU $
     6    %if fred(1) %then %stop
     7    %unless fred(1) %then %stop
 0022 6A 01                                 PUSH #1
 0024 E8 00 00                              CALL 'FRED' (INTERNAL L1002 )
 0027 83 C4 04                              ADD %ESP,#4
 002A 3D 00 00 00 00                        CMP %EAX,#0
 002F 74 00                                 JE L1004
 0031 B8 06 00 00 00                        MOV %EAX,#6
 0036 50                                    PUSH %EAX
 0037 31 C0                                 XOR %EAX,%EAX
 0039 50                                    PUSH %EAX
 003A 31 C0                                 XOR %EAX,%EAX
 003C 50                                    PUSH %EAX
 003D 31 C0                                 XOR %EAX,%EAX
 003F 50                                    PUSH %EAX
 0040 E8 0B 00                              CALL '_IMPSIGNAL' (EXTERN 11)
 0043 83 C4 10                              ADD %ESP,#16
 0046                      L1004  EQU $
 0046 6A 01                                 PUSH #1
 0048 E8 00 00                              CALL 'FRED' (INTERNAL L1002 )
 004B 83 C4 04                              ADD %ESP,#4
 004E 3D 00 00 00 00                        CMP %EAX,#0
 0053 75 00                                 JNE L1005
 0055 B8 07 00 00 00                        MOV %EAX,#7
 005A 50                                    PUSH %EAX
 005B 31 C0                                 XOR %EAX,%EAX
 005D 50                                    PUSH %EAX
 005E 31 C0                                 XOR %EAX,%EAX
 0060 50                                    PUSH %EAX
 0061 31 C0                                 XOR %EAX,%EAX
 0063 50                                    PUSH %EAX
 0064 E8 0B 00                              CALL '_IMPSIGNAL' (EXTERN 11)
 0067 83 C4 10                              ADD %ESP,#16
 006A                      L1005  EQU $
     8  %endofprogram
 006A C9                                    LEAVE
 006B C3                                    RET
