function Gtk.Drag.DestSet(i1 : ptr, i2 : ptr, i3 : int, i4 : ptr, i5 : int) : void incoming_frame_posn(i1, 8) incoming_frame_posn(i2, 12) incoming_frame_posn(i3, 16) incoming_frame_posn(i4, 20) incoming_frame_posn(i5, 24) .L0: i11 = i2 if i11 != 0 then goto .L1 .L6: i15 = load_relative_int(135725032, 0) goto .L2 ends_in_dead .L1: i16 = i2 i18 = load_relative_int(i16, -8) i20 = load_relative_int(i18, 48) i23 = load_relative_int(i20, 24) if itrue(i23) then goto .L3 .L7: push_int(1078338192) .L8: call_external ILRuntimeExceptionThrowClass (0x08053bb0) ends_in_dead .L9: pop_stack(4) .L3: push_int(i16) push_int(i1) outgoing_reg(i23, eax) .L10: call_vtable_ptr(i23) return_reg(i28, eax) i15 = i28 pop_stack(8) .L2: i30 = i3 i31 = i4 i32 = i4 if i32 == 0 then goto .L4 .L11: i34 = i4 check_null(i34) i35 = load_relative_int(i34, 0) i36 = i35 goto .L5 ends_in_dead .L4: i36 = 0 .L5: i37 = i5 push_int(i37) push_int(i36) push_int(i31) push_int(i30) push_int(i15) push_int(i1) .L12: call Gtk.Drag.gtk_drag_dest_set return ends_in_dead end function Gtk.Drag.DestSet(ptr, ptr, int, ptr, int) : void /tmp/libjit-dump.o: file format elf32-i386 Disassembly of section .text: 40b66017 <.text>: 40b66017: 55 push %ebp 40b66018: 8b ec mov %esp,%ebp 40b6601a: 83 ec 18 sub $0x18,%esp 40b6601d: 53 push %ebx 40b6601e: 56 push %esi 40b6601f: 57 push %edi 40b66020: 8b 75 08 mov 0x8(%ebp),%esi 40b66023: 8b 5d 0c mov 0xc(%ebp),%ebx 40b66026: 8b 7d 14 mov 0x14(%ebp),%edi 40b66029: 8b c3 mov %ebx,%eax 40b6602b: 0b c0 or %eax,%eax 40b6602d: 0f 85 0f 00 00 00 jne 0x40b66042 40b66033: b8 e8 ff 16 08 mov $0x816ffe8,%eax 40b66038: 8b 00 mov (%eax),%eax 40b6603a: 89 45 fc mov %eax,0xfffffffc(%ebp) 40b6603d: e9 32 00 00 00 jmp 0x40b66074 40b66042: 8b c3 mov %ebx,%eax 40b66044: 89 45 f8 mov %eax,0xfffffff8(%ebp) 40b66047: 8b 40 f8 mov 0xfffffff8(%eax),%eax 40b6604a: 8b 40 30 mov 0x30(%eax),%eax 40b6604d: 8b 40 18 mov 0x18(%eax),%eax 40b66050: 89 45 f4 mov %eax,0xfffffff4(%ebp) 40b66053: 0b c0 or %eax,%eax 40b66055: 0f 85 0a 00 00 00 jne 0x40b66065 40b6605b: 68 90 22 46 40 push $0x40462290 40b66060: e8 4b db 4e c7 call 0x8053bb0 40b66065: ff 75 f8 pushl 0xfffffff8(%ebp) 40b66068: 56 push %esi 40b66069: 8b 45 f4 mov 0xfffffff4(%ebp),%eax 40b6606c: ff d0 call *%eax 40b6606e: 89 45 fc mov %eax,0xfffffffc(%ebp) 40b66071: 83 c4 08 add $0x8,%esp 40b66074: 8b 45 10 mov 0x10(%ebp),%eax 40b66077: 89 45 f0 mov %eax,0xfffffff0(%ebp) 40b6607a: 8b c7 mov %edi,%eax 40b6607c: 89 45 ec mov %eax,0xffffffec(%ebp) 40b6607f: 8b c7 mov %edi,%eax 40b66081: 0b c0 or %eax,%eax 40b66083: 0f 84 17 00 00 00 je 0x40b660a0 40b66089: 8b c7 mov %edi,%eax 40b6608b: 0b c0 or %eax,%eax 40b6608d: 75 07 jne 0x40b66096 40b6608f: 6a fb push $0xfffffffb 40b66091: e8 4a 07 52 ff call 0x400867e0 40b66096: 8b 00 mov (%eax),%eax 40b66098: 89 45 e8 mov %eax,0xffffffe8(%ebp) 40b6609b: e9 05 00 00 00 jmp 0x40b660a5 40b660a0: 33 c0 xor %eax,%eax 40b660a2: 89 45 e8 mov %eax,0xffffffe8(%ebp) 40b660a5: 8b 45 18 mov 0x18(%ebp),%eax 40b660a8: 50 push %eax 40b660a9: ff 75 e8 pushl 0xffffffe8(%ebp) 40b660ac: ff 75 ec pushl 0xffffffec(%ebp) 40b660af: ff 75 f0 pushl 0xfffffff0(%ebp) 40b660b2: ff 75 fc pushl 0xfffffffc(%ebp) 40b660b5: 56 push %esi 40b660b6: e8 45 d3 fc ff call 0x40b33400 40b660bb: 8b 5d e4 mov 0xffffffe4(%ebp),%ebx 40b660be: 8b 75 e0 mov 0xffffffe0(%ebp),%esi 40b660c1: 8b 7d dc mov 0xffffffdc(%ebp),%edi 40b660c4: 8b e5 mov %ebp,%esp 40b660c6: 5d pop %ebp 40b660c7: c3 ret end CompilePinvoke: Gtk.Drag.gtk_drag_dest_set function Gtk.Drag.gtk_drag_dest_set(i1 : ptr, i2 : int, i3 : int, i4 : ptr, i5 : int, i6 : int) : void incoming_frame_posn(i1, 8) incoming_frame_posn(i2, 12) incoming_frame_posn(i3, 16) incoming_frame_posn(i4, 20) incoming_frame_posn(i5, 24) incoming_frame_posn(i6, 28) i18 = load_relative_int(i4, 0) i21 = i18 i22 = i21 * 12 i24 = add_relative(i22, 4) push_int(i24) .L2: call_external myILGCAllocAtomic (0x08056a20) return_reg(i25, eax) i16 = i25 i28 = i18 == 0 pop_stack(4) if itrue(i28) then goto .L0 .L3: i31 = add_relative(i4, 4) i32 = i16 i33 = i18 .L1: i35 = i33 i36 = i35 - 1 i37 = i36 i33 = i37 .L4: call_external myTest4 (0x080569a0) i39 = i32 i40 = i31 i47 = load_relative_int(i40, 0) push_int(i47) push_int(i1) .L5: call_external ILStringToAnsi (0x08076e70) return_reg(i48, eax) .L6: call_external myTest6 (0x080569e0) .L7: call_external myTest6a (0x080569e0) store_relative_int(i39, i48, 0) .L8: call_external myTest7 (0x08056a00) .L9: call_external myTest7b (0x080569e0) i57 = load_relative_int(i40, 4) store_relative_int(i39, i57, 4) i63 = load_relative_int(i40, 8) store_relative_int(i39, i63, 8) .L10: call_external myTest5 (0x080569c0) i31 = i31 + 12 i32 = i32 + 12 i68 = i33 i69 = i68 != 0 pop_stack(8) if itrue(i69) then goto .L1 .L0: push_int(i6) push_int(i5) push_int(i16) push_int(i3) push_int(i2) .L11: call_external 0x0840ce79e0 return ends_in_dead end function Gtk.Drag.gtk_drag_dest_set(ptr, int, int, ptr, int, int) : void /tmp/libjit-dump.o: file format elf32-i386 Disassembly of section .text: 40b660f7 <.text>: 40b660f7: 55 push %ebp 40b660f8: 8b ec mov %esp,%ebp 40b660fa: 83 ec 18 sub $0x18,%esp 40b660fd: 53 push %ebx 40b660fe: 56 push %esi 40b660ff: 57 push %edi 40b66100: 8b 7d 14 mov 0x14(%ebp),%edi 40b66103: 8b df mov %edi,%ebx 40b66105: 8b 1b mov (%ebx),%ebx 40b66107: 8b c3 mov %ebx,%eax 40b66109: 8d 04 40 lea (%eax,%eax,2),%eax 40b6610c: c1 e0 02 shl $0x2,%eax 40b6610f: 05 04 00 00 00 add $0x4,%eax 40b66114: 50 push %eax 40b66115: e8 06 09 4f c7 call 0x8056a20 40b6611a: 8b f0 mov %eax,%esi 40b6611c: 8b c3 mov %ebx,%eax 40b6611e: 0b c0 or %eax,%eax 40b66120: 0f 94 c0 sete %al 40b66123: 0f b6 c0 movzbl %al,%eax 40b66126: 83 c4 04 add $0x4,%esp 40b66129: 0b c0 or %eax,%eax 40b6612b: 0f 85 a0 00 00 00 jne 0x40b661d1 40b66131: 8b c7 mov %edi,%eax 40b66133: 05 04 00 00 00 add $0x4,%eax 40b66138: 89 45 fc mov %eax,0xfffffffc(%ebp) 40b6613b: 8b c6 mov %esi,%eax 40b6613d: 89 45 f8 mov %eax,0xfffffff8(%ebp) 40b66140: 8b c3 mov %ebx,%eax 40b66142: 89 45 f4 mov %eax,0xfffffff4(%ebp) 40b66145: 8b 45 f4 mov 0xfffffff4(%ebp),%eax 40b66148: 2d 01 00 00 00 sub $0x1,%eax 40b6614d: 89 45 f4 mov %eax,0xfffffff4(%ebp) 40b66150: e8 4b 08 4f c7 call 0x80569a0 40b66155: 8b 45 f8 mov 0xfffffff8(%ebp),%eax 40b66158: 89 45 f0 mov %eax,0xfffffff0(%ebp) 40b6615b: 8b 45 fc mov 0xfffffffc(%ebp),%eax 40b6615e: 89 45 ec mov %eax,0xffffffec(%ebp) 40b66161: 8b 00 mov (%eax),%eax 40b66163: 50 push %eax 40b66164: ff 75 08 pushl 0x8(%ebp) 40b66167: e8 04 0d 51 c7 call 0x8076e70 40b6616c: 89 45 e8 mov %eax,0xffffffe8(%ebp) 40b6616f: e8 6c 08 4f c7 call 0x80569e0 40b66174: e8 67 08 4f c7 call 0x80569e0 40b66179: 8b 45 f0 mov 0xfffffff0(%ebp),%eax 40b6617c: 8b 4d e8 mov 0xffffffe8(%ebp),%ecx 40b6617f: 89 08 mov %ecx,(%eax) 40b66181: e8 7a 08 4f c7 call 0x8056a00 40b66186: e8 55 08 4f c7 call 0x80569e0 40b6618b: 8b 45 ec mov 0xffffffec(%ebp),%eax 40b6618e: 8b 40 04 mov 0x4(%eax),%eax 40b66191: 8b 4d f0 mov 0xfffffff0(%ebp),%ecx 40b66194: 89 41 04 mov %eax,0x4(%ecx) 40b66197: 8b 45 ec mov 0xffffffec(%ebp),%eax 40b6619a: 8b 40 08 mov 0x8(%eax),%eax 40b6619d: 89 41 08 mov %eax,0x8(%ecx) 40b661a0: e8 1b 08 4f c7 call 0x80569c0 40b661a5: 8b 45 fc mov 0xfffffffc(%ebp),%eax 40b661a8: 05 0c 00 00 00 add $0xc,%eax 40b661ad: 89 45 fc mov %eax,0xfffffffc(%ebp) 40b661b0: 8b 45 f8 mov 0xfffffff8(%ebp),%eax 40b661b3: 05 0c 00 00 00 add $0xc,%eax 40b661b8: 89 45 f8 mov %eax,0xfffffff8(%ebp) 40b661bb: 8b 45 f4 mov 0xfffffff4(%ebp),%eax 40b661be: 0b c0 or %eax,%eax 40b661c0: 0f 95 c0 setne %al 40b661c3: 0f b6 c0 movzbl %al,%eax 40b661c6: 83 c4 08 add $0x8,%esp 40b661c9: 0b c0 or %eax,%eax 40b661cb: 0f 85 74 ff ff ff jne 0x40b66145 40b661d1: ff 75 1c pushl 0x1c(%ebp) 40b661d4: ff 75 18 pushl 0x18(%ebp) 40b661d7: 56 push %esi 40b661d8: ff 75 10 pushl 0x10(%ebp) 40b661db: ff 75 0c pushl 0xc(%ebp) 40b661de: e8 fd 17 18 00 call 0x40ce79e0 40b661e3: 8b 5d e4 mov 0xffffffe4(%ebp),%ebx 40b661e6: 8b 75 e0 mov 0xffffffe0(%ebp),%esi 40b661e9: 8b 7d dc mov 0xffffffdc(%ebp),%edi 40b661ec: 8b e5 mov %ebp,%esp 40b661ee: 5d pop %ebp 40b661ef: c3 ret end before call to ILGCAllocAtomic after call to ILGCAllocAtomic myTest4 i am in ILStringToAnsi returning from ILStringToAnsin newStr myTest6 myTest6