Setup: Frame.Dispose LoadArg: 0 CallVirtual: Frame.Dispose at slot 6 CallInfos: StackTop: 2, ArgCount: 2, Signature argCount: 3 LoadArg: 0 CallMethod: GC.SuppressFinalize CallInfos: StackTop: 1, ArgCount: 1, Signature argCount: 2 Return function DotGNU.Images.Frame.Dispose(i1 : ptr, i2 : ptr) : void incoming_frame_posn(i1, 8) incoming_frame_posn(i2, 12) .L0: i5 = i2 .L4: mark_offset(1) .L5: mark_offset(2) check_null(i5) i10 = load_relative_int(i5, -8) i12 = load_relative_int(i10, 48) i15 = load_relative_int(i12, 24) if itrue(i15) then goto .L1 .L6: push_int(1079747216) .L7: call_external ILRuntimeExceptionThrowClass (0x08054920) ends_in_dead .L8: pop_stack(4) .L1: push_int(1) push_int(i5) push_int(i1) outgoing_reg(i15, eax) .L9: call_vtable_ptr(i15) .L10: mark_offset(7) i23 = i2 .L11: mark_offset(8) store_relative_int(i1, 1079943740, 40) store_relative_int(i1, 0, 96) push_int(i23) push_int(i1) .L12: call_external System.GC.SuppressFinalize (0x0806ec60) i31 = load_relative_int(i1, 56) store_relative_int(i1, 1, 96) pop_stack(20) if ifalse(i31) then goto .L2 .L13: push_int(i1) .L14: call_external ILRuntimeHandleManagedSafePointFlags (0x080549b0) pop_stack(4) .L2: i37 = load_relative_int(i1, 48) if ifalse(i37) then goto .L3 .L15: call_external jit_exception_clear_last (0x0804c9f4) throw(i37) ends_in_dead .L3: .L16: mark_offset(13) return ends_in_dead end function DotGNU.Images.Frame.Dispose(ptr, ptr) : void /tmp/libjit-dump.o: file format elf32-i386 Disassembly of section .text: 40f02377 <.text>: 40f02377: 55 push %ebp 40f02378: 8b ec mov %esp,%ebp 40f0237a: 83 ec 0c sub $0xc,%esp 40f0237d: 53 push %ebx 40f0237e: 56 push %esi 40f0237f: 57 push %edi 40f02380: 8b 7d 08 mov 0x8(%ebp),%edi 40f02383: 8b 75 0c mov 0xc(%ebp),%esi 40f02386: 8b de mov %esi,%ebx 40f02388: 0b db or %ebx,%ebx 40f0238a: 75 07 jne 0x40f02393 40f0238c: 6a fb push $0xfffffffb 40f0238e: e8 6d 37 18 ff call 0x40085b00 40f02393: 8b 43 f8 mov 0xfffffff8(%ebx),%eax 40f02396: 8b 40 30 mov 0x30(%eax),%eax 40f02399: 8b 40 18 mov 0x18(%eax),%eax 40f0239c: 89 45 fc mov %eax,0xfffffffc(%ebp) 40f0239f: 0b c0 or %eax,%eax 40f023a1: 0f 85 0a 00 00 00 jne 0x40f023b1 40f023a7: 68 90 a2 5b 40 push $0x405ba290 40f023ac: e8 6f 25 15 c7 call 0x8054920 40f023b1: 6a 01 push $0x1 40f023b3: 53 push %ebx 40f023b4: 57 push %edi 40f023b5: 8b 45 fc mov 0xfffffffc(%ebp),%eax 40f023b8: ff d0 call *%eax 40f023ba: 8b c6 mov %esi,%eax 40f023bc: 89 45 f8 mov %eax,0xfffffff8(%ebp) 40f023bf: c7 47 28 3c a2 5e 40 movl $0x405ea23c,0x28(%edi) 40f023c6: c7 47 60 00 00 00 00 movl $0x0,0x60(%edi) 40f023cd: ff 75 f8 pushl 0xfffffff8(%ebp) 40f023d0: 57 push %edi 40f023d1: e8 8a c8 16 c7 call 0x806ec60 40f023d6: 8b 47 38 mov 0x38(%edi),%eax 40f023d9: c7 47 60 01 00 00 00 movl $0x1,0x60(%edi) 40f023e0: 83 c4 14 add $0x14,%esp 40f023e3: 0b c0 or %eax,%eax 40f023e5: 0f 84 09 00 00 00 je 0x40f023f4 40f023eb: 57 push %edi 40f023ec: e8 bf 25 15 c7 call 0x80549b0 40f023f1: 83 c4 04 add $0x4,%esp 40f023f4: 8b 47 30 mov 0x30(%edi),%eax 40f023f7: 89 45 f4 mov %eax,0xfffffff4(%ebp) 40f023fa: 0b c0 or %eax,%eax 40f023fc: 0f 84 0e 00 00 00 je 0x40f02410 40f02402: e8 ed a5 14 c7 call 0x804c9f4 40f02407: 8b 45 f4 mov 0xfffffff4(%ebp),%eax 40f0240a: 50 push %eax 40f0240b: e8 a0 36 18 ff call 0x40085ab0 40f02410: 8b 5d f0 mov 0xfffffff0(%ebp),%ebx 40f02413: 8b 75 ec mov 0xffffffec(%ebp),%esi 40f02416: 8b 7d e8 mov 0xffffffe8(%ebp),%edi 40f02419: 8b e5 mov %ebp,%esp 40f0241b: 5d pop %ebp 40f0241c: c3 ret end