[Windows|Arm64|Vararg] Add FEATURE_ARG_SPLIT#18346
Conversation
5d6e6cb to
d33acb5
Compare
|
@dotnet-bot test this please |
1 similar comment
|
@dotnet-bot test this please |
|
@dotnet-bot help |
|
Welcome to the dotnet/coreclr Repository The following is a list of valid commands on this PR. To invoke a command, comment the indicated phrase on the PR The following commands are valid for all PRs and repositories. Click to expand
The following jobs are launched by default for each PR against dotnet/coreclr:master. Click to expand
The following optional jobs are available in PRs against dotnet/coreclr:master. Click to expand
Have a nice day! |
|
Welcome to the dotnet/coreclr Perf help The following is a list of valid commands on this PR. To invoke a command, comment the indicated phrase on the PR The following commands are valid for all PRs and repositories. Click to expand
The following jobs are launched by default for each PR against dotnet/coreclr:master. Click to expand
The following optional jobs are available in PRs against dotnet/coreclr:master. Click to expand
Have a nice day! |
|
Welcome to the dotnet/coreclr Repository The following is a list of valid commands on this PR. To invoke a command, comment the indicated phrase on the PR The following commands are valid for all PRs and repositories. Click to expand
The following jobs are launched by default for each PR against dotnet/coreclr:master. Click to expand
The following optional jobs are available in PRs against dotnet/coreclr:master. Click to expand
Have a nice day! |
|
@dotnet-bot test Ubuntu x64 Checked Innerloop Build and Test |
a3b9af2 to
b833867
Compare
CarolEidt
left a comment
There was a problem hiding this comment.
LGTM with a couple of minor things
| // struct is split between register r7 and virtual stack slot s[0] | ||
| // We will only do this for calls to vararg methods on Windows Arm64 | ||
| // | ||
| // !!This does not affect the normal arm64 calling convetion or Unix Arm64!! |
| // arguments passed in the integer registers but get homed immediately after the prolog. | ||
| if (!isHfaArg) | ||
| { | ||
| // TODO Windows arm32 VARARG, struct should be forced to split like |
There was a problem hiding this comment.
You should use the standard TODO syntax (I think this would be TODO-Arm32-Windows:
740a5f4 to
06e2667
Compare
Enable splitting >8 byte <= 16 byte structs for arm64 varargs between x7 and virtual stack slot 0.
06e2667 to
4b36de8
Compare
|
@dotnet-bot test Windows_NT x86 Release Innerloop Build and Test |
* fix desktop build break after #18346 * add dstCount
* [ARM64|Windows|Vararg] Add FEATURE_ARG_SPLIT Enable splitting >8 byte <= 16 byte structs for arm64 varargs between x7 and virtual stack slot 0. * Force notHfa for vararg methods * Correctly pass isVararg * Correct var name Commit migrated from dotnet/coreclr@35c84df
* fix desktop build break after dotnet/coreclr#18346 * add dstCount Commit migrated from dotnet/coreclr@793dadd
Enable splitting >8 byte <= 16 byte structs for arm64 varargs between x7 and virtual stack slot 0.
Note that this is to adhere to the Arm64 Windows Varargs calling convention. This does not affect linux arm64.
Note that because ArgIterator is currently disabled these changes cannot be validated with master. They have been validated manually with ArgIterator enabled.
/cc @dotnet/jit-contrib @dotnet/arm64-contrib