summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/vm/arm/asmconstants.h3
-rw-r--r--src/vm/arm/asmhelpers.asm4
-rw-r--r--src/vm/arm64/asmconstants.h3
-rw-r--r--src/vm/arm64/asmhelpers.asm5
-rw-r--r--tests/issues.targets6
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>