All pastes #166181 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-09-10 17:15 UTC
rendered paste body
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