Setup: Image.Finalize SetupExceptions: hasRethrow: 0 AddFinallyLabel for offset: 9 StackRefresh: 0 Label: 0 LoadArg: 0 CallVirtual: Image.Dispose at slot 6 CallInfos: StackTop: 2, ArgCount: 2, Signature argCount: 3 CallFinally: dest: 9 Branch: 16 StackRefresh: 0 StartFinally: 9 LoadArg: 0 CallMethod: Object.Finalize CallInfos: StackTop: 1, ArgCount: 1, Signature argCount: 2 EndFinally: RetFromJsr: StackRefresh: 0 Label: 16 Return TryHandlerStart: start: 0 end: 9 CallFinally: dest: 9 Throw: inCurrentMethod: 0 TryHandlerEnd: TryHandlerStart: start: 0 end: -1 Throw: inCurrentMethod: 0 TryHandlerEnd: function System.Drawing.Image.Finalize(i1 : ptr, i2 : ptr) : void incoming_frame_posn(i1, 8) incoming_frame_posn(i2, 12) .L1: i6 = &s5 push_int(i6) .L12: call_external _jit_unwind_push_setjmp (0x40085f30) i8 = &s5 push_int(1) push_int(i8) .L13: call_external __sigsetjmp (0x40147530) return_reg(i10, eax) pop_stack(12) if ifalse(i10) then goto .L2 .L3: i14 = &s5 i16 = load_relative_int(i14, 160) i13 = i16 if ifalse(i16) then goto .L4 .L14: i18 = &s5 store_relative_int(i18, 0, 160) goto .L5 ends_in_dead .L4: .L15: call_external _jit_unwind_pop_and_rethrow (0x40085fc0) ends_in_dead .L2: .L0: .L6: .L0: i21 = i2 .L16: mark_offset(1) .L17: mark_offset(2) check_null(i21) i25 = load_relative_int(i21, -8) i27 = load_relative_int(i25, 48) i30 = load_relative_int(i27, 24) if itrue(i30) then goto .L7 .L18: i32 = load_pc i33 = &s5 store_relative_int(i33, i32, 160) push_int(1079747216) .L19: call_external ILRuntimeExceptionThrowClass (0x08054920) ends_in_dead .L20: pop_stack(4) .L7: i38 = load_pc i39 = &s5 store_relative_int(i39, i38, 160) push_int(0) push_int(i21) push_int(i1) outgoing_reg(i30, eax) .L21: call_vtable_ptr(i30) i42 = &s5 store_relative_int(i42, 0, 160) .L22: mark_offset(7) pop_stack(12) if call_finally then goto .L8 goto .L9 ends_in_dead .L8: enter_finally .L23: mark_offset(9) i47 = i2 .L24: mark_offset(10) i49 = load_pc i50 = &s5 store_relative_int(i50, i49, 160) push_int(i47) push_int(i1) .L25: call System.Object.Finalize i53 = &s5 store_relative_int(i53, 0, 160) .L26: mark_offset(15) pop_stack(8) leave_finally ends_in_dead .L9: .L27: mark_offset(16) .L28: call_external _jit_unwind_pop_setjmp (0x40085f80) return ends_in_dead .L5: .L29: call_external jit_exception_get_last (0x400859f0) return_reg(i60, eax) i59 = i60 address_of_label .L0 if i13 < i61 then goto .L10 .L30: address_of_label .L8 if i13 >= i63 then goto .L10 .L31: if call_finally then goto .L8 goto .L11 ends_in_dead .L10: .L11: .L32: call_external _jit_unwind_pop_setjmp (0x40085f80) push_int(i59) .L33: call_external jit_exception_throw (0x40085ab0) ends_in_dead ends_in_dead .L34: pop_stack(4) goto .L11 ends_in_dead end function System.Drawing.Image.Finalize(ptr, ptr) : void /tmp/libjit-dump.o: file format elf32-i386 Disassembly of section .text: 40f73df7 <.text>: 40f73df7: 55 push %ebp 40f73df8: 8b ec mov %esp,%ebp 40f73dfa: 81 ec bc 00 00 00 sub $0xbc,%esp 40f73e00: 8d 85 58 ff ff ff lea 0xffffff58(%ebp),%eax 40f73e06: 50 push %eax 40f73e07: e8 24 21 11 ff call 0x40085f30 40f73e0c: 8d 85 58 ff ff ff lea 0xffffff58(%ebp),%eax 40f73e12: 6a 01 push $0x1 40f73e14: 50 push %eax 40f73e15: e8 16 37 1d ff call 0x40147530 40f73e1a: 83 c4 0c add $0xc,%esp 40f73e1d: 0b c0 or %eax,%eax 40f73e1f: 0f 84 36 00 00 00 je 0x40f73e5b 40f73e25: 8d 85 58 ff ff ff lea 0xffffff58(%ebp),%eax 40f73e2b: 8b 80 a0 00 00 00 mov 0xa0(%eax),%eax 40f73e31: 8b c8 mov %eax,%ecx 40f73e33: 89 8d 54 ff ff ff mov %ecx,0xffffff54(%ebp) 40f73e39: 0b c0 or %eax,%eax 40f73e3b: 0f 84 15 00 00 00 je 0x40f73e56 40f73e41: 8d 85 58 ff ff ff lea 0xffffff58(%ebp),%eax 40f73e47: c7 80 a0 00 00 00 00 movl $0x0,0xa0(%eax) 40f73e4e: 00 00 00 40f73e51: e9 e3 00 00 00 jmp 0x40f73f39 40f73e56: e8 65 21 11 ff call 0x40085fc0 40f73e5b: 8b 45 0c mov 0xc(%ebp),%eax 40f73e5e: 89 85 50 ff ff ff mov %eax,0xffffff50(%ebp) 40f73e64: 8b 85 50 ff ff ff mov 0xffffff50(%ebp),%eax 40f73e6a: 0b c0 or %eax,%eax 40f73e6c: 75 0f jne 0x40f73e7d 40f73e6e: e8 00 00 00 00 call 0x40f73e73 40f73e73: 8f 45 f8 popl 0xfffffff8(%ebp) 40f73e76: 6a fb push $0xfffffffb 40f73e78: e8 83 1c 11 ff call 0x40085b00 40f73e7d: 8b 40 f8 mov 0xfffffff8(%eax),%eax 40f73e80: 8b 40 30 mov 0x30(%eax),%eax 40f73e83: 8b 40 18 mov 0x18(%eax),%eax 40f73e86: 89 85 4c ff ff ff mov %eax,0xffffff4c(%ebp) 40f73e8c: 0b c0 or %eax,%eax 40f73e8e: 0f 85 1c 00 00 00 jne 0x40f73eb0 40f73e94: e8 00 00 00 00 call 0x40f73e99 40f73e99: 58 pop %eax 40f73e9a: 8d 8d 58 ff ff ff lea 0xffffff58(%ebp),%ecx 40f73ea0: 89 81 a0 00 00 00 mov %eax,0xa0(%ecx) 40f73ea6: 68 90 a2 5b 40 push $0x405ba290 40f73eab: e8 70 0a 0e c7 call 0x8054920 40f73eb0: e8 00 00 00 00 call 0x40f73eb5 40f73eb5: 58 pop %eax 40f73eb6: 8d 8d 58 ff ff ff lea 0xffffff58(%ebp),%ecx 40f73ebc: 89 81 a0 00 00 00 mov %eax,0xa0(%ecx) 40f73ec2: 6a 00 push $0x0 40f73ec4: ff b5 50 ff ff ff pushl 0xffffff50(%ebp) 40f73eca: ff 75 08 pushl 0x8(%ebp) 40f73ecd: 8b 85 4c ff ff ff mov 0xffffff4c(%ebp),%eax 40f73ed3: ff d0 call *%eax 40f73ed5: 8d 85 58 ff ff ff lea 0xffffff58(%ebp),%eax 40f73edb: c7 80 a0 00 00 00 00 movl $0x0,0xa0(%eax) 40f73ee2: 00 00 00 40f73ee5: 83 c4 0c add $0xc,%esp 40f73ee8: e8 05 00 00 00 call 0x40f73ef2 40f73eed: e9 3d 00 00 00 jmp 0x40f73f2f 40f73ef2: 8b 45 0c mov 0xc(%ebp),%eax 40f73ef5: 89 85 48 ff ff ff mov %eax,0xffffff48(%ebp) 40f73efb: e8 00 00 00 00 call 0x40f73f00 40f73f00: 58 pop %eax 40f73f01: 8d 8d 58 ff ff ff lea 0xffffff58(%ebp),%ecx 40f73f07: 89 81 a0 00 00 00 mov %eax,0xa0(%ecx) 40f73f0d: ff b5 48 ff ff ff pushl 0xffffff48(%ebp) 40f73f13: ff 75 08 pushl 0x8(%ebp) 40f73f16: e8 95 80 c0 ff call 0x40b7bfb0 40f73f1b: 8d 85 58 ff ff ff lea 0xffffff58(%ebp),%eax 40f73f21: c7 80 a0 00 00 00 00 movl $0x0,0xa0(%eax) 40f73f28: 00 00 00 40f73f2b: 83 c4 08 add $0x8,%esp 40f73f2e: c3 ret 40f73f2f: e8 4c 20 11 ff call 0x40085f80 40f73f34: e9 46 00 00 00 jmp 0x40f73f7f 40f73f39: e8 b2 1a 11 ff call 0x400859f0 40f73f3e: 89 85 44 ff ff ff mov %eax,0xffffff44(%ebp) 40f73f44: b8 5b 3e f7 40 mov $0x40f73e5b,%eax 40f73f49: 8b 8d 54 ff ff ff mov 0xffffff54(%ebp),%ecx 40f73f4f: 3b c8 cmp %eax,%ecx 40f73f51: 0f 8c 18 00 00 00 jl 0x40f73f6f 40f73f57: b8 f2 3e f7 40 mov $0x40f73ef2,%eax 40f73f5c: 8b 8d 54 ff ff ff mov 0xffffff54(%ebp),%ecx 40f73f62: 3b c8 cmp %eax,%ecx 40f73f64: 0f 8d 05 00 00 00 jge 0x40f73f6f 40f73f6a: e8 83 ff ff ff call 0x40f73ef2 40f73f6f: e8 0c 20 11 ff call 0x40085f80 40f73f74: ff b5 44 ff ff ff pushl 0xffffff44(%ebp) 40f73f7a: e8 31 1b 11 ff call 0x40085ab0 40f73f7f: 8b e5 mov %ebp,%esp 40f73f81: 5d pop %ebp 40f73f82: c3 ret