rendered paste bodySetup: 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