diff options
author | Jeremy Koritzinsky <jekoritz@microsoft.com> | 2019-05-25 09:19:03 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-25 09:19:03 -0700 |
commit | 83309575a1552e39fe505cbd883391f3dcbea8b4 (patch) | |
tree | 7437e461f2f951b769e1fcc8b052003deb7d5968 | |
parent | 5b283a18625f7a8009c18221592ec81c3cd32375 (diff) | |
download | coreclr-83309575a1552e39fe505cbd883391f3dcbea8b4.tar.gz coreclr-83309575a1552e39fe505cbd883391f3dcbea8b4.tar.bz2 coreclr-83309575a1552e39fe505cbd883391f3dcbea8b4.zip |
Make sure all of the calculations of enregistered return types match correctly. (#24771)
* Make sure all of the calculations of enregistered return types match correctly.
* Revert "Disable ARM64 IDispatch tests (#24770)"
This reverts commit 852f40d5f1a3cff4d381c2de2d2a86fe8b1f29b4.
-rw-r--r-- | src/vm/arm/asmconstants.h | 3 | ||||
-rw-r--r-- | src/vm/arm/asmhelpers.asm | 4 | ||||
-rw-r--r-- | src/vm/arm64/asmconstants.h | 3 | ||||
-rw-r--r-- | src/vm/arm64/asmhelpers.asm | 5 | ||||
-rw-r--r-- | tests/issues.targets | 6 |
5 files changed, 10 insertions, 11 deletions
diff --git a/src/vm/arm/asmconstants.h b/src/vm/arm/asmconstants.h index ed57b897c7..54cf47e3d0 100644 --- a/src/vm/arm/asmconstants.h +++ b/src/vm/arm/asmconstants.h @@ -124,6 +124,9 @@ ASMCONSTANTS_C_ASSERT(SIZEOF__ArgumentRegisters == sizeof(ArgumentRegisters)) #define SIZEOF__FloatArgumentRegisters 0x40 ASMCONSTANTS_C_ASSERT(SIZEOF__FloatArgumentRegisters == sizeof(FloatArgumentRegisters)) +#define ASM_ENREGISTERED_RETURNTYPE_MAXSIZE 0x20 +ASMCONSTANTS_C_ASSERT(ASM_ENREGISTERED_RETURNTYPE_MAXSIZE == ENREGISTERED_RETURNTYPE_MAXSIZE) + #define UMEntryThunk__m_pUMThunkMarshInfo 0x0C ASMCONSTANTS_C_ASSERT(UMEntryThunk__m_pUMThunkMarshInfo == offsetof(UMEntryThunk, m_pUMThunkMarshInfo)) diff --git a/src/vm/arm/asmhelpers.asm b/src/vm/arm/asmhelpers.asm index e49910d042..35c898683f 100644 --- a/src/vm/arm/asmhelpers.asm +++ b/src/vm/arm/asmhelpers.asm @@ -709,7 +709,7 @@ LsetFP8 ; NESTED_ENTRY GenericComPlusCallStub - PROLOG_WITH_TRANSITION_BLOCK 0x20 + PROLOG_WITH_TRANSITION_BLOCK ASM_ENREGISTERED_RETURNTYPE_MAXSIZE add r0, sp, #__PWTB_TransitionBlock ; pTransitionBlock mov r1, r12 ; pMethodDesc @@ -723,7 +723,7 @@ LsetFP8 ; r0 = fpRetSize ; return value is stored before float argument registers - add r1, sp, #(__PWTB_FloatArgumentRegisters - 0x20) + add r1, sp, #(__PWTB_FloatArgumentRegisters - ASM_ENREGISTERED_RETURNTYPE_MAXSIZE) bl setStubReturnValue EPILOG_WITH_TRANSITION_BLOCK_RETURN diff --git a/src/vm/arm64/asmconstants.h b/src/vm/arm64/asmconstants.h index 8c99ed8419..258fe6dda7 100644 --- a/src/vm/arm64/asmconstants.h +++ b/src/vm/arm64/asmconstants.h @@ -54,6 +54,9 @@ ASMCONSTANTS_C_ASSERT(SIZEOF__ArgumentRegisters == sizeof(ArgumentRegisters)) #define SIZEOF__FloatArgumentRegisters 0x80 ASMCONSTANTS_C_ASSERT(SIZEOF__FloatArgumentRegisters == sizeof(FloatArgumentRegisters)) +#define ASM_ENREGISTERED_RETURNTYPE_MAXSIZE 0x40 +ASMCONSTANTS_C_ASSERT(ASM_ENREGISTERED_RETURNTYPE_MAXSIZE == ENREGISTERED_RETURNTYPE_MAXSIZE) + #define CallDescrData__pSrc 0x00 #define CallDescrData__numStackSlots 0x08 #define CallDescrData__pArgumentRegisters 0x10 diff --git a/src/vm/arm64/asmhelpers.asm b/src/vm/arm64/asmhelpers.asm index 01b49dbe29..c9700dbfc1 100644 --- a/src/vm/arm64/asmhelpers.asm +++ b/src/vm/arm64/asmhelpers.asm @@ -706,7 +706,7 @@ NoFloatingPointRetVal ; NESTED_ENTRY GenericComPlusCallStub - PROLOG_WITH_TRANSITION_BLOCK 0x20 + PROLOG_WITH_TRANSITION_BLOCK ASM_ENREGISTERED_RETURNTYPE_MAXSIZE add x0, sp, #__PWTB_TransitionBlock ; pTransitionBlock mov x1, x12 ; pMethodDesc @@ -721,8 +721,7 @@ NoFloatingPointRetVal ; x0 = fpRetSize ; The return value is stored before float argument registers - ; The maximum size of a return value is 0x40 (HVA of 4x16) - add x1, sp, #(__PWTB_FloatArgumentRegisters - 0x40) + add x1, sp, #(__PWTB_FloatArgumentRegisters - ASM_ENREGISTERED_RETURNTYPE_MAXSIZE) bl setStubReturnValue EPILOG_WITH_TRANSITION_BLOCK_RETURN diff --git a/tests/issues.targets b/tests/issues.targets index 51c33216f1..f7c055e9d4 100644 --- a/tests/issues.targets +++ b/tests/issues.targets @@ -345,12 +345,6 @@ <!-- Windows arm64 specific excludes --> <ItemGroup Condition="'$(XunitTestBinBase)' != '' and ('$(BuildArch)' == 'arm64' or '$(AltJitArch)' == 'arm64') and '$(TargetsWindows)' == 'true'"> - <ExcludeList Include="$(XunitTestBinBase)/Interop/COM/NETClients/IDispatch/NETClientIDispatch/*"> - <Issue>TBD</Issue> - </ExcludeList> - <ExcludeList Include="$(XunitTestBinBase)/Interop/COM/NETClients/Events/NETClientEvents/*"> - <Issue>TBD</Issue> - </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)/GC/Features/HeapExpansion/bestfit-threaded/*"> <Issue>15016</Issue> </ExcludeList> |