124 lines
2.9 KiB
Plaintext
124 lines
2.9 KiB
Plaintext
|
.assembly '4darray2' { }
|
||
|
.assembly extern 'mscorlib' {
|
||
|
.ver 1:0:5000:0
|
||
|
.publickeytoken = ( b7 7a 5c 56 19 34 e0 89 )
|
||
|
}
|
||
|
.class sealed 'X'
|
||
|
extends [mscorlib]System.ValueType
|
||
|
{
|
||
|
.field public int32 'a'
|
||
|
.field public int32 'b'
|
||
|
.method hidebysig specialname rtspecialname public void .ctor(int32 'a',int32 'b') {
|
||
|
ldarg.0
|
||
|
ldarg 1 // a
|
||
|
stfld int32 'X'::'a'
|
||
|
ldarg.0
|
||
|
ldarg 2 // b
|
||
|
stfld int32 'X'::'b'
|
||
|
ret
|
||
|
.maxstack 2
|
||
|
} // end of constructor X.X
|
||
|
} // end of struct X
|
||
|
.class 'T'
|
||
|
extends [mscorlib]System.Object
|
||
|
{
|
||
|
.method hidebysig static public void 'print'(value class 'X' 'x') {
|
||
|
ldstr "({0},{1})"
|
||
|
ldarga 0 // x
|
||
|
ldfld int32 'X'::'a'
|
||
|
box int32
|
||
|
ldarga 0 // x
|
||
|
ldfld int32 'X'::'b'
|
||
|
box int32
|
||
|
call void [mscorlib]System.Console::'WriteLine'(string,object,object)
|
||
|
ret
|
||
|
.maxstack 3
|
||
|
} // end of method T.print
|
||
|
.method hidebysig static public void 'Main'() {
|
||
|
.entrypoint
|
||
|
.locals init ([0]value class 'X'[0...,0...,0...,0...] 't0')
|
||
|
ldc.i4 5
|
||
|
ldc.i4 5
|
||
|
ldc.i4 5
|
||
|
ldc.i4 5
|
||
|
newobj instance void value class 'X'[0...,0...,0...,0...]::.ctor(int32,int32,int32,int32)
|
||
|
stloc 0 // a
|
||
|
ldloc 0 // a
|
||
|
ldc.i4 1
|
||
|
ldc.i4 2
|
||
|
ldc.i4 3
|
||
|
ldc.i4 4
|
||
|
call instance value class 'X' & value class 'X'[0...,0...,0...,0...]::Address(int32,int32,int32,int32)
|
||
|
ldloc 0 // a
|
||
|
ldc.i4 4
|
||
|
ldc.i4 3
|
||
|
ldc.i4 2
|
||
|
ldc.i4 1
|
||
|
call instance value class 'X' & value class 'X'[0...,0...,0...,0...]::Address(int32,int32,int32,int32)
|
||
|
call void 'T'::'f'(value class 'X'&,value class 'X'&)
|
||
|
ldloc 0 // a
|
||
|
ldc.i4 4
|
||
|
ldc.i4 4
|
||
|
ldc.i4 4
|
||
|
ldc.i4 4
|
||
|
call instance value class 'X' & value class 'X'[0...,0...,0...,0...]::Address(int32,int32,int32,int32)
|
||
|
ldloc 0 // a
|
||
|
ldc.i4 1
|
||
|
ldc.i4 2
|
||
|
ldc.i4 3
|
||
|
ldc.i4 4
|
||
|
call instance value class 'X' & value class 'X'[0...,0...,0...,0...]::Address(int32,int32,int32,int32)
|
||
|
ldobj value class 'X'
|
||
|
stobj value class 'X'
|
||
|
ldloc 0 // a
|
||
|
ldc.i4 1
|
||
|
ldc.i4 2
|
||
|
ldc.i4 3
|
||
|
ldc.i4 4
|
||
|
call instance value class 'X' & value class 'X'[0...,0...,0...,0...]::Address(int32,int32,int32,int32)
|
||
|
ldobj value class 'X'
|
||
|
call void 'T'::'print'(value class 'X')
|
||
|
ldloc 0 // a
|
||
|
ldc.i4 4
|
||
|
ldc.i4 3
|
||
|
ldc.i4 2
|
||
|
ldc.i4 1
|
||
|
call instance value class 'X' & value class 'X'[0...,0...,0...,0...]::Address(int32,int32,int32,int32)
|
||
|
ldobj value class 'X'
|
||
|
call void 'T'::'print'(value class 'X')
|
||
|
ret
|
||
|
.maxstack 6
|
||
|
} // end of method T.Main
|
||
|
.method hidebysig static private void 'f'(value class 'X'& 'a',value class 'X'& 'b') {
|
||
|
ldarg 0 // a
|
||
|
ldfld int32 'X'::'a'
|
||
|
ldc.i4 1
|
||
|
add
|
||
|
.locals init ([0]int32 't0')
|
||
|
stloc 0 // t0
|
||
|
ldarg 0 // a
|
||
|
ldloc 0 // t0
|
||
|
stfld int32 'X'::'a'
|
||
|
ldarg 0 // a
|
||
|
ldc.i4 1
|
||
|
neg
|
||
|
stfld int32 'X'::'b'
|
||
|
ldarg 1 // b
|
||
|
.locals init ([1]value class 'X' 't1')
|
||
|
ldloca 1 // t1
|
||
|
ldc.i4 1
|
||
|
ldc.i4 2
|
||
|
call instance void 'X'::.ctor(int32,int32)
|
||
|
ldloc 1 // t1
|
||
|
stobj value class 'X'
|
||
|
ret
|
||
|
.maxstack 4
|
||
|
} // end of method T.f
|
||
|
.method hidebysig specialname rtspecialname public void .ctor() {
|
||
|
ldarg.0
|
||
|
call instance void [mscorlib]System.Object::.ctor()
|
||
|
ret
|
||
|
.maxstack 1
|
||
|
} // end of constructor T.T
|
||
|
} // end of class T
|