2 .assembly extern TestDriver {}
3 .assembly extern mscorlib {}
5 .class public auto ansi sealed beforefieldinit Tests {
7 .method static public int32 Main(string[] args) il managed {
11 call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
13 call int32 [TestDriver]TestDriver::RunTests(class [mscorlib]System.Type, string[])
17 // make sure the register allocator works when the return value of
19 .method static public int32 test_0_div_regalloc () il managed {
33 .method static public int32 test_1_ceq_to_i4 () il managed {
47 .method static public int32 test_3_shl_regvars () il managed {
94 .method static public int32 test_1_fceq_to_i4 () il managed {
114 // This should be manually checked. Basically under -O=linears,
115 // you should not see tons of register spilling.
117 .method static public int32 test_1_bytedreg_free () il managed {
153 // This should be manually checked. Basically under -O=linears,
154 // you should not see tons of register spilling.
156 .method static public int32 test_0_bytesreg1_free () il managed {
195 .method static public int32 test_1_shift_regvar () il managed {
216 // this only happens with the managed pointer, not an unmanaged one.
217 .method static public int32 test_0_foo () il managed {
234 .method static public int32 test_0_localloc () cil managed {
235 .locals init (native int, native int, native int, native int, int32)
260 // Check zero initialized
315 .method private static void do_localloc () cil managed {
320 IL_0001: ldc.i4 131072
327 // Check that localloc can't be inlined
328 .method static public int32 test_0_localloc_inline () cil managed {
338 START: call void class Tests::do_localloc()
351 .method static public int32 test_3_copy_used_bug () il managed {
377 // demonstrate that the copy_used_var is not a fix for the above bug
378 .method static public int32 test_3_copy_used_indir_bug () il managed {
405 .method static public void do_nothing (int32 a) il managed {
409 // demonstrate the block_split failure: needs -O=inline
410 // mini -O=inline --compile Tests:test_0_split_block_bug iltests.exe
411 .method static public int32 test_0_split_block_bug () il managed {
421 call void class Tests::do_nothing (int32)
429 .method public void inline_do_nothing () il managed {
432 .method static public int32 test_1_checkthis_inlining () il managed {
434 call instance void class Tests::inline_do_nothing ()
439 .class nested private auto ansi sealed beforefieldinit TailCallStruct
440 extends [mscorlib]System.ValueType {
441 .field public int32 a
442 .field public int32 b
445 .method static valuetype Tests/TailCallStruct tail1 (valuetype Tests/TailCallStruct arg) {
448 ldfld int32 Tests/TailCallStruct::a
451 stfld int32 Tests/TailCallStruct::a
454 ldfld int32 Tests/TailCallStruct::a
457 stfld int32 Tests/TailCallStruct::a
462 .method static valuetype Tests/TailCallStruct tail2 (valuetype Tests/TailCallStruct arg) {
465 call valuetype Tests/TailCallStruct Tests::tail1 (valuetype Tests/TailCallStruct)
469 .method static public int32 test_0_tail_calls () il managed {
472 valuetype Tests/TailCallStruct arg
476 stfld int32 Tests/TailCallStruct::a
479 stfld int32 Tests/TailCallStruct::b
481 call valuetype Tests/TailCallStruct Tests::tail2 (valuetype Tests/TailCallStruct)
484 ldfld int32 Tests/TailCallStruct::a
486 ldfld int32 Tests/TailCallStruct::b
493 .method static public int32 test_11_switch_with_nonempty_stack () il managed {
508 .method public static int32 test_5_endfinally_with_nonempty_stack () il managed {
522 .method public static int32 test_0_conv_ovf_i8_neg () il managed {
537 .method public static int32 test_0_get_type_from_handle_on_bblock_boundary () cil managed
544 ldtoken [mscorlib]System.String
547 ldtoken [mscorlib]System.Object
549 call class [mscorlib]'System.Type' class [mscorlib]'System.Type'::'GetTypeFromHandle'(valuetype [mscorlib]'System.RuntimeTypeHandle')
550 callvirt instance string class [mscorlib]System.Type::get_FullName ()
551 ldstr "System.String"
552 callvirt instance bool class [mscorlib]System.Object::Equals(object)
558 .method public static int32 test_0_bug59580 ()
560 ldc.r4 float32(0x7FC00000)
561 ldc.r4 float32(0x7FC00000)
572 .method public static int32 test_1_bug60056 () {
573 .locals init (int32 m5)
591 .method public static int32 test_1_conv_u8_cfold () {
595 ldc.i8 0x00000000ffffffff
601 .method public static int32 test_1_array_type_mismatch_ldelema () {
602 .locals init (int32 r)
618 } catch [mscorlib]System.ArrayTypeMismatchException {
629 .method public static int32 test_1_conv_ovf_i8_with_i4 () {
638 .method private static int32 test_0_initlocals_float_ptr () {
645 newarr [mscorlib]System.Single
653 ldelema [mscorlib]System.Single