summaryrefslogtreecommitdiff
path: root/tests/src/JIT/Regression/VS-ia64-JIT/M00/b84128/b84128.il
blob: 64b015d90423737417ca23f5d7f894db76573b61 (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130


.assembly extern System.Console
{
  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )
  .ver 4:0:0:0
}
.assembly extern legacy library mscorlib {}
.assembly ldobj.exe{

}

.class public			_ldobj {

.method public static	int32 main() {
.entrypoint
.locals		(class [mscorlib]System.IO.TextWriter,value class valClass,value class valClass)
.maxstack		2
	call	    class [mscorlib]System.IO.TextWriter [System.Console]System.Console::get_Out()
	stloc	0

	newobj instance void valClass::.ctor()
	stloc		1
	newobj instance void valClass::.ctor()
	stloc		2
	ldloca		1
	ldc.i4		0xFAFAFAFA
	stfld		int32 valClass::Field
	ldc.i4		0xDBDBDBDB
	stsfld		int32 valClass::SField

	ldloca		2
	ldc.i4		0x00000000
	stfld		int32 valClass::Field

	ldloca		1
	ldfld		int32 valClass::Field
	ldc.i4		0xFAFAFAFA
	ceq
	brfalse		failInit
	ldsfld		int32 valClass::SField
	ldc.i4		0xDBDBDBDB
	ceq		
	brfalse		failInit
	ldloca		2
	ldfld		int32 valClass::Field
	ldc.i4		0x00000000
	ceq
	brtrue		ldlocaTest
failInit:
	ldloc	0
	ldstr		"one _or both val classes failed initialization."


	callvirt instance void [mscorlib]System.IO.TextWriter::WriteLine(class [mscorlib]System.String)
	br			fail

ldlocaTest:
	ldloca		1
	ldobj		valClass

	ldloca		2
	call		void _ldobj::changeData(value class valClass,value class valClass*)

	ldloca		1
	ldfld		int32 valClass::Field
	ldc.i4		0xFAFAFAFA
	ceq
	brfalse		failTest
	ldloca		2
	ldfld		int32 valClass::Field
	ldc.i4		0xBBBBBBBB
	ceq
	brfalse		failTest
	ldsfld		int32 valClass::SField
	ldc.i4		0xDDDDDDDD
	ceq		
	brtrue		pass
failTest:
	ldloc	0
	ldstr		"failure after initialization."




	callvirt instance void [mscorlib]System.IO.TextWriter::WriteLine(class [mscorlib]System.String)
	br			fail

pass:
	ldloc	0
	ldstr		"_ldobj tests PASS"


	callvirt instance void [mscorlib]System.IO.TextWriter::WriteLine(class [mscorlib]System.String)
	ldc.i4		100
	br			end
fail:
	ldloc	0
	ldstr		"!!! FAILURE !!!  LDOBJ TEST(S) FAILED !!! FAILURE !!!"


	callvirt instance void [mscorlib]System.IO.TextWriter::WriteLine(class [mscorlib]System.String)
	ldc.i4		0x0
	br			end
end:
	ret
}

.method public static	void changeData(value class valClass,value class valClass*) {
.maxstack		2
	ldarga		0
	ldc.i4		0xBBBBBBBB
	stfld		int32 valClass::Field
	ldc.i4		0xDDDDDDDD
	stsfld		int32 valClass::SField
	ldarg		1
	ldarga		0
	cpobj		valClass
	ret
}

}
.class public value sealed valClass {
.field public			int32 Field
.field public static	int32 SField

	.method public public void .ctor(){
		ret
	}
}