diff options
author | Kyungwoo Lee <kyulee@microsoft.com> | 2016-04-26 14:41:05 -0700 |
---|---|---|
committer | Kyungwoo Lee <kyulee@microsoft.com> | 2016-05-04 08:09:42 -0700 |
commit | f63d726b01f42fbbceb497e5de6f36a8622f4000 (patch) | |
tree | d07fa64d6907d341c86fe54687eee4c13f69aca1 /tests/arm64 | |
parent | dad288b8dfc47975d00c3b44344bd02843cbd1f9 (diff) | |
download | coreclr-f63d726b01f42fbbceb497e5de6f36a8622f4000.tar.gz coreclr-f63d726b01f42fbbceb497e5de6f36a8622f4000.tar.bz2 coreclr-f63d726b01f42fbbceb497e5de6f36a8622f4000.zip |
ARM64: Enable Tail Call with Vararg
Fixes https://github.com/dotnet/coreclr/issues/4475
I've run into `IMPL_LIMITATION("varags + CEE_JMP doesn't work yet")` in
importer.cpp. This change enables ARM64 tail call path same as other
targets.
1. Similar to amd64 `genFnEpilog`, I made the similar code under
`!FEATURE_FASTTAILCALL`. Since `EC_FUNC_TOKEN_INDIR` is not defined for
arm64, I've made NYI for such case.
2. Added two pseudo branch instructions 'b_tail' and 'br_tail' which form
jmp instruction encodings but follow call instruction semantics since
they are used for tail-call.
3. `GenJmpMethod` is enabled. Code is slightly changed to reflect correct
float argument handlings and multi-reg support.
Diffstat (limited to 'tests/arm64')
-rw-r--r-- | tests/arm64/Tests.lst | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/tests/arm64/Tests.lst b/tests/arm64/Tests.lst index 028300eedc..8a43f8b779 100644 --- a/tests/arm64/Tests.lst +++ b/tests/arm64/Tests.lst @@ -11659,7 +11659,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i03\mcc_i03.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i03 Expected=0 MaxAllowedDurationSeconds=600 -Categories=Pri0;EXPECTED_FAIL +Categories=Pri0;EXPECTED_PASS HostStyle=0 [mcc_i04.cmd_1696] RelativePath=JIT\jit64\mcc\interop\mcc_i04\mcc_i04.cmd @@ -11715,7 +11715,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i13\mcc_i13.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i13 Expected=0 MaxAllowedDurationSeconds=600 -Categories=Pri0;EXPECTED_FAIL;ISSUE_2989 +Categories=Pri0;EXPECTED_PASS HostStyle=0 [mcc_i14.cmd_1704] RelativePath=JIT\jit64\mcc\interop\mcc_i14\mcc_i14.cmd @@ -11771,7 +11771,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i33\mcc_i33.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i33 Expected=0 MaxAllowedDurationSeconds=600 -Categories=Pri0;EXPECTED_FAIL;ISSUE_2989 +Categories=Pri0;EXPECTED_PASS HostStyle=0 [mcc_i34.cmd_1712] RelativePath=JIT\jit64\mcc\interop\mcc_i34\mcc_i34.cmd @@ -11827,7 +11827,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i53\mcc_i53.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i53 Expected=0 MaxAllowedDurationSeconds=600 -Categories=Pri0;EXPECTED_FAIL;ISSUE_2989 +Categories=Pri0;EXPECTED_PASS HostStyle=0 [mcc_i54.cmd_1720] RelativePath=JIT\jit64\mcc\interop\mcc_i54\mcc_i54.cmd @@ -11883,7 +11883,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i63\mcc_i63.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i63 Expected=0 MaxAllowedDurationSeconds=600 -Categories=Pri0;EXPECTED_FAIL;ISSUE_2989 +Categories=Pri0;EXPECTED_PASS HostStyle=0 [mcc_i64.cmd_1728] RelativePath=JIT\jit64\mcc\interop\mcc_i64\mcc_i64.cmd @@ -11939,7 +11939,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i73\mcc_i73.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i73 Expected=0 MaxAllowedDurationSeconds=600 -Categories=Pri0;EXPECTED_FAIL;ISSUE_2989 +Categories=Pri0;EXPECTED_PASS HostStyle=0 [mcc_i74.cmd_1736] RelativePath=JIT\jit64\mcc\interop\mcc_i74\mcc_i74.cmd @@ -11995,7 +11995,7 @@ RelativePath=JIT\jit64\mcc\interop\mcc_i83\mcc_i83.cmd WorkingDir=JIT\jit64\mcc\interop\mcc_i83 Expected=0 MaxAllowedDurationSeconds=600 -Categories=Pri0;EXPECTED_FAIL;ISSUE_2989 +Categories=Pri0;EXPECTED_PASS HostStyle=0 [mcc_i84.cmd_1744] RelativePath=JIT\jit64\mcc\interop\mcc_i84\mcc_i84.cmd |