summaryrefslogtreecommitdiff
path: root/tests/src/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b92289/b92289.il
blob: 815c5e73f69ed0c4086f01e5841a3875a2a04ea7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

.assembly extern System.Console
{
  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
  .ver 4:0:0:0
}
.assembly extern mscorlib {}
.assembly extern System {}
.assembly EHTest {}
.class public EHTest
{
.method public static void f2() cil managed synchronized
{
	.maxstack 500
	.locals init (int32 V_0,
			int64 V_1)
	br start_try1
		start_fault1: 
		br fault1_br
			start_finally1: 
				TARGET_1_0:
				  sizeof native unsigned int
				  sizeof [mscorlib]System.UIntPtr
				  conv.i4
				  stloc.0
				  ldloc.0
				  sub
				  newarr     [mscorlib]System.Int32
				  ldc.i4 112
				  ldc.i4 41
				  sub
				  ldc.i4 3
				  shr
				  stloc.0
				  ldloc.0
				  ldc.i4 82
				  sub
				  ldelem.i4
				  ldc.i4 26
				  box int32
				  unbox int32
				  ldind.i4
				  bge	TARGET_1_1
				TARGET_1_1:
			finally1_out: endfinally
			end_finally1: 

			fault1_br: 
			start_try2: 
			call void EHTest::f3()
			try2_out:
			leave fault1_out
			end_try2: 
		fault1_out: endfault
		end_fault1: 

	start_try1: 
		call void EHTest::f3()
	try1_out:
	newobj instance void [mscorlib]System.ApplicationException::.ctor()
	throw
	end_try1: 
	OUT: ret
	OUT2:
	leave OUT
	.try start_try2 to end_try2 finally handler start_finally1 to end_finally1
	.try start_try1 to end_try1 fault handler start_fault1 to end_fault1
}

.method public static void f3() cil managed synchronized
{
	call void [mscorlib]System.GC::Collect()
	ret
}
.method public static int32 Main() cil managed
{
	.entrypoint
	.try
	{
	call void EHTest::f2()
	leave RET
	}
	catch [mscorlib]System.Exception
	{
	leave RET
	}
	RET: ldc.i4 100
	ldstr "PASSED"
	call void [System.Console]System.Console::WriteLine(string)
	ret
	}
}