Various tailcall test improvements (dotnet/coreclr#26818)
* Remove some illegal tailcall tests
These tests pass address of local stack frame to tail. prefixed calls.
* Add some more tailcall tests
* Tail calls to functions with small return values
* Tail calls to functions with retbuf
* Tail calls to functions with multi-reg returned structs
* Tail calls to functions with void returns
* Tail calls to abstract methods
* Tail calls to interface methods
* tail. calli sequences
* Tail calls to struct instance methods
* Tail calls involving refs
* Tail calls involving byrefs
* Tail calls involving generics
* Improve tailcall hijacking test
* Force this test to use helper on AMD64 too
* Instead of 3 tailcallers and 1 collector, just use 1 collector and 1
tailcaller. Additionally, run it for only 30 iterations of 1 second
sleeps. This should allow it to run for AMD64 and ARM32 in CI too.
* Clarify some reasons for some disabled tests
* Disable new test on everything except x86 Windows
* Add another arg to TailHelper2 to ensure helper-based tailcall on SysV
* Disable hijacking test on anything except x86/x64 Windows
* Update more tailcalls test and add source file
* Pinvoke printf for Unix in TailcallVerifyWithPrefix test
* Clean up TailcallVerifyWithPrefix test
Remove commented tests and tests that do not run from this file
* Clean up reasons for disabling TailcallVerifyWithPrefix
* Update a reason
* Remove more dead code in TailcallVerifyWithPrefix.il
* Fix wrong IL in TailcallVerifyWithPrefix test
* Add a comment describing more_tailcalls.cs
* Clarify issue number
Commit migrated from https://github.com/dotnet/coreclr/commit/
2468ce3d56071290a8ac13d6970783dd56975330