X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mono%2Fmini%2Filtests.il;h=4bfd9f9f227cd548600733eb3cdcc4574b755e21;hb=49065425ce3128e78cc6191c940320af20b584dc;hp=fdfc570864ecf54d1d7281c6a0ed1cabba4787a1;hpb=6110fc90713ce59ff0996fcd3520e09a96575820;p=mono.git diff --git a/mono/mini/iltests.il b/mono/mini/iltests.il index fdfc570864e..4bfd9f9f227 100644 --- a/mono/mini/iltests.il +++ b/mono/mini/iltests.il @@ -510,6 +510,53 @@ COND: ldloc.0 ret } + .method static public int32 tail3 (int32 i, int32 j) il managed { + ldarg.0 + ldarg.1 + add + ret + } + + .method static public int32 tail4 (int32 i, int32 j) il managed { + .maxstack 16 + .locals init ( + int32 k) + + // Test arg0 allocated to a register + ldarg.0 + ldarg.0 + ldarg.0 + ldarg.0 + add + add + add + starg 0 + + // Test switched up argument variables as the actual arguments + ldarg.1 + ldarg.0 + tail. + call int32 Tests::tail3 (int32, int32) + ret + } + + .method static public int32 test_24_tail_calls2 () il managed { + .maxstack 16 + .locals init ( + int32 i, + int32 j) + + ldc.i4.4 + stloc.0 + ldc.i4.8 + stloc.1 + + ldloc.0 + ldloc.1 + call int32 Tests::tail4 (int32, int32) + ret + } + .method public static int32 test_5_jmp () cil managed { jmp int32 Tests::jmp2 () ldc.i4.0