-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Conversation
@dotnet-bot test Windows_NT arm64 Checked |
@parjong @myungjoo PTAL |
@@ -4019,6 +4019,9 @@ void CodeGen::genFnPrologCalleeRegArgs(regNumber xtraReg, | |||
} | |||
else | |||
{ | |||
// Currently the only non-HFA multireg struct is on ARM64 | |||
// and is two registers in size (i.e. two slots) | |||
assert(varDsc->lvSize() == (2 * TARGET_POINTER_SIZE)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment is not correct. We also have non-Hfa multireg structs on amd64/ux, and we have longs on 32-bit architectures. As it happens, they are always two registers. But the comment is misleading.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, you are correct I will update this comment to:
// Currently all non-HFA multireg structs are two registers in size (i.e. two slots)
I also note that UNIX_ABI is handled immediately before this and this section is part of the else clause
(see lines 3911 to 1994)
@dotnet-bot test Windows_NT arm64 Checked |
@parjong @myungjoo PTAL I updated this with the additional fix for ARM32 in lvHfaSlots |
LGTM |
LGTM When I checked, all the tests under JIT/jit64/hfa/main/testE are passed with this change. |
LTGM. Thanks! |
Fix for HFA args on ARM32 Commit migrated from dotnet/coreclr@98568fb
Test fix for issue #5326