diff --git a/src/coreclr/src/vm/compile.cpp b/src/coreclr/src/vm/compile.cpp index aa9112f1f1dcc..bc3f4cae984f5 100644 --- a/src/coreclr/src/vm/compile.cpp +++ b/src/coreclr/src/vm/compile.cpp @@ -1400,7 +1400,7 @@ mdToken CEECompileInfo::TryEncodeMethodAsToken( { _ASSERTE(pResolvedToken != NULL); - Module * pReferencingModule = (Module *)pResolvedToken->tokenScope; + Module * pReferencingModule = GetModule(pResolvedToken->tokenScope); if (!pReferencingModule->IsInCurrentVersionBubble()) return mdTokenNil; @@ -5937,12 +5937,6 @@ void CEEPreloader::GenerateMethodStubs( if (IsReadyToRunCompilation() && (!GetAppDomain()->ToCompilationDomain()->GetTargetModule()->IsSystem() || !pMD->IsNDirect())) return; -#if defined(TARGET_ARM) && defined(TARGET_UNIX) - // Cross-bitness compilation of il stubs does not work. Disable here. - if (IsReadyToRunCompilation()) - return; -#endif // defined(TARGET_ARM) && defined(TARGET_UNIX) - DWORD dwNGenStubFlags = NDIRECTSTUB_FL_NGENEDSTUB; if (fNgenProfilerImage) diff --git a/src/coreclr/src/vm/dllimport.cpp b/src/coreclr/src/vm/dllimport.cpp index 8a6da9746a3ab..41fa0a0a6925a 100644 --- a/src/coreclr/src/vm/dllimport.cpp +++ b/src/coreclr/src/vm/dllimport.cpp @@ -2080,7 +2080,7 @@ void NDirectStubLinker::DoNDirect(ILCodeStream *pcsEmit, DWORD dwStubFlags, Meth // for managed-to-unmanaged CALLI that requires marshaling, the target is passed // as the secret argument to the stub by GenericPInvokeCalliHelper (asmhelpers.asm) EmitLoadStubContext(pcsEmit, dwStubFlags); -#ifdef HOST_64BIT +#ifdef TARGET_64BIT // the secret arg has been shifted to left and ORed with 1 (see code:GenericPInvokeCalliHelper) pcsEmit->EmitLDC(1); pcsEmit->EmitSHR_UN(); @@ -2093,7 +2093,14 @@ void NDirectStubLinker::DoNDirect(ILCodeStream *pcsEmit, DWORD dwStubFlags, Meth { EmitLoadStubContext(pcsEmit, dwStubFlags); // pcsEmit->EmitCALL(METHOD__STUBHELPERS__GET_NDIRECT_TARGET, 1, 1); - pcsEmit->EmitLDC(offsetof(NDirectMethodDesc, ndirect.m_pWriteableData)); + +#ifdef _DEBUG // There are five more pointer values for _DEBUG + _ASSERTE(offsetof(NDirectMethodDesc, ndirect.m_pWriteableData) == sizeof(void*) * 8 + 8); + pcsEmit->EmitLDC(TARGET_POINTER_SIZE * 8 + 8); // offsetof(NDirectMethodDesc, ndirect.m_pWriteableData) +#else // _DEBUG + _ASSERTE(offsetof(NDirectMethodDesc, ndirect.m_pWriteableData) == sizeof(void*) * 3 + 8); + pcsEmit->EmitLDC(TARGET_POINTER_SIZE * 3 + 8); // offsetof(NDirectMethodDesc, ndirect.m_pWriteableData) +#endif // _DEBUG pcsEmit->EmitADD(); if (decltype(NDirectMethodDesc::ndirect.m_pWriteableData)::isRelative) @@ -3118,7 +3125,7 @@ BOOL NDirect::MarshalingRequired(MethodDesc *pMD, PCCOR_SIGNATURE pSig /*= NULL* return TRUE; } } - if (i > 0) dwStackSize += sizeof(SLOT); + if (i > 0) dwStackSize += TARGET_POINTER_SIZE; break; } @@ -3373,7 +3380,7 @@ static inline UINT GetStackOffsetFromStackSize(UINT stackSize, bool fThisCall) if (fThisCall) { // -1 means that the argument is not on the stack - return (stackSize >= sizeof(SLOT) ? (stackSize - sizeof(SLOT)) : (UINT)-1); + return (stackSize >= TARGET_POINTER_SIZE ? (stackSize - TARGET_POINTER_SIZE) : (UINT)-1); } #endif // TARGET_X86 return stackSize; @@ -3471,8 +3478,7 @@ static void CreateNDirectStubWorker(StubState* pss, // // Marshal the return value. // - - UINT nativeStackSize = (SF_IsCOMStub(dwStubFlags) ? sizeof(SLOT) : 0); + UINT nativeStackSize = (SF_IsCOMStub(dwStubFlags) ? TARGET_POINTER_SIZE : 0); bool fStubNeedsCOM = SF_IsCOMStub(dwStubFlags); // Normally we would like this to be false so that we use the correct signature @@ -3589,7 +3595,7 @@ static void CreateNDirectStubWorker(StubState* pss, fStubNeedsCOM |= info.MarshalerRequiresCOM(); // make sure that the first parameter is enregisterable - if (info.GetNativeArgSize() > sizeof(SLOT)) + if (info.GetNativeArgSize() > TARGET_POINTER_SIZE) COMPlusThrow(kMarshalDirectiveException, IDS_EE_NDIRECT_BADNATL_THISCALL); argidx++; @@ -3640,7 +3646,7 @@ static void CreateNDirectStubWorker(StubState* pss, MethodTable *pRetMT = msig.GetRetTypeHandleThrowing().AsMethodTable(); if (IsUnmanagedValueTypeReturnedByRef(pRetMT->GetNativeSize())) { - nativeStackSize += sizeof(LPVOID); + nativeStackSize += TARGET_POINTER_SIZE; } } } @@ -3653,7 +3659,7 @@ static void CreateNDirectStubWorker(StubState* pss, if (argidx == iLCIDArg) { pss->MarshalLCID(argidx); - nativeStackSize += sizeof(LPVOID); + nativeStackSize += TARGET_POINTER_SIZE; if (SF_IsReverseStub(dwStubFlags)) argOffset++; @@ -3671,7 +3677,7 @@ static void CreateNDirectStubWorker(StubState* pss, if (fThisCall && argidx == 1) { // make sure that the first parameter is enregisterable - if (info.GetNativeArgSize() > sizeof(SLOT)) + if (info.GetNativeArgSize() > TARGET_POINTER_SIZE) COMPlusThrow(kMarshalDirectiveException, IDS_EE_NDIRECT_BADNATL_THISCALL); } @@ -3684,7 +3690,7 @@ static void CreateNDirectStubWorker(StubState* pss, if (argidx == iLCIDArg) { pss->MarshalLCID(argidx); - nativeStackSize += sizeof(LPVOID); + nativeStackSize += TARGET_POINTER_SIZE; if (SF_IsReverseStub(dwStubFlags)) argOffset++; @@ -3727,7 +3733,7 @@ static void CreateNDirectStubWorker(StubState* pss, if (SF_IsHRESULTSwapping(dwStubFlags)) { if (msig.GetReturnType() != ELEMENT_TYPE_VOID) - nativeStackSize += sizeof(LPVOID); + nativeStackSize += TARGET_POINTER_SIZE; } if (pMD->IsDynamicMethod()) @@ -3741,8 +3747,8 @@ static void CreateNDirectStubWorker(StubState* pss, #ifdef TARGET_X86 if (fThisCall) { - _ASSERTE(nativeStackSize >= sizeof(SLOT)); - nativeStackSize -= sizeof(SLOT); + _ASSERTE(nativeStackSize >= TARGET_POINTER_SIZE); + nativeStackSize -= TARGET_POINTER_SIZE; } #else // TARGET_X86 // @@ -3859,7 +3865,7 @@ static void CreateStructStub(ILStubState* pss, if (pMD->IsDynamicMethod()) { DynamicMethodDesc* pDMD = pMD->AsDynamicMethodDesc(); - pDMD->SetNativeStackArgSize(4 * sizeof(SLOT)); // The native stack arg size is constant since the signature for struct stubs is constant. + pDMD->SetNativeStackArgSize(4 * TARGET_POINTER_SIZE); // The native stack arg size is constant since the signature for struct stubs is constant. } // FinishEmit needs to know the native stack arg size so we call it after the number diff --git a/src/coreclr/src/vm/ilmarshalers.cpp b/src/coreclr/src/vm/ilmarshalers.cpp index b7aaa3ce87e4b..44be16f52ad8c 100644 --- a/src/coreclr/src/vm/ilmarshalers.cpp +++ b/src/coreclr/src/vm/ilmarshalers.cpp @@ -3666,7 +3666,8 @@ void ILAsAnyMarshalerBase::EmitCreateMngdMarshaler(ILCodeStream* pslILEmit) m_dwMngdMarshalerLocalNum = pslILEmit->NewLocal(marshalerType); DWORD dwTmpLocalNum = pslILEmit->NewLocal(ELEMENT_TYPE_I); - pslILEmit->EmitLDC(sizeof(MngdNativeArrayMarshaler)); + _ASSERTE(sizeof(MngdNativeArrayMarshaler) == sizeof(void*) * 3 + 16); + pslILEmit->EmitLDC(TARGET_POINTER_SIZE * 3 + 16); // sizeof(MngdNativeArrayMarshaler) pslILEmit->EmitLOCALLOC(); pslILEmit->EmitSTLOC(dwTmpLocalNum); @@ -3763,7 +3764,8 @@ void ILNativeArrayMarshaler::EmitCreateMngdMarshaler(ILCodeStream* pslILEmit) m_dwMngdMarshalerLocalNum = pslILEmit->NewLocal(ELEMENT_TYPE_I); - pslILEmit->EmitLDC(sizeof(MngdNativeArrayMarshaler)); + _ASSERTE(sizeof(MngdNativeArrayMarshaler) == sizeof(void*) * 3 + 16); + pslILEmit->EmitLDC(TARGET_POINTER_SIZE * 3 + 16); // sizeof(MngdNativeArrayMarshaler) pslILEmit->EmitLOCALLOC(); pslILEmit->EmitSTLOC(m_dwMngdMarshalerLocalNum); @@ -4379,7 +4381,8 @@ void ILFixedArrayMarshaler::EmitCreateMngdMarshaler(ILCodeStream* pslILEmit) m_dwMngdMarshalerLocalNum = pslILEmit->NewLocal(ELEMENT_TYPE_I); - pslILEmit->EmitLDC(sizeof(MngdFixedArrayMarshaler)); + _ASSERTE(sizeof(MngdFixedArrayMarshaler) == sizeof(void*) * 4 + 16); + pslILEmit->EmitLDC(TARGET_POINTER_SIZE * 4 + 16); // sizeof(MngdFixedArrayMarshaler) pslILEmit->EmitLOCALLOC(); pslILEmit->EmitSTLOC(m_dwMngdMarshalerLocalNum); @@ -4606,7 +4609,8 @@ void ILSafeArrayMarshaler::EmitCreateMngdMarshaler(ILCodeStream* pslILEmit) m_dwMngdMarshalerLocalNum = pslILEmit->NewLocal(ELEMENT_TYPE_I); - pslILEmit->EmitLDC(sizeof(MngdSafeArrayMarshaler)); + _ASSERTE(sizeof(MngdSafeArrayMarshaler) == sizeof(void*) * 2 + 8); + pslILEmit->EmitLDC(TARGET_POINTER_SIZE * 2 + 8); // sizeof(MngdSafeArrayMarshaler) pslILEmit->EmitLOCALLOC(); pslILEmit->EmitSTLOC(m_dwMngdMarshalerLocalNum); @@ -4902,7 +4906,8 @@ void ILReferenceCustomMarshaler::EmitCreateMngdMarshaler(ILCodeStream* pslILEmit m_dwMngdMarshalerLocalNum = pslILEmit->NewLocal(ELEMENT_TYPE_I); - pslILEmit->EmitLDC(sizeof(MngdRefCustomMarshaler)); + _ASSERTE(sizeof(MngdRefCustomMarshaler) == sizeof(void*)); + pslILEmit->EmitLDC(TARGET_POINTER_SIZE); // sizeof(MngdRefCustomMarshaler) pslILEmit->EmitLOCALLOC(); pslILEmit->EmitSTLOC(m_dwMngdMarshalerLocalNum); diff --git a/src/coreclr/src/vm/ilmarshalers.h b/src/coreclr/src/vm/ilmarshalers.h index 3aae504fe8c98..6ca975525dad0 100644 --- a/src/coreclr/src/vm/ilmarshalers.h +++ b/src/coreclr/src/vm/ilmarshalers.h @@ -1721,15 +1721,14 @@ class ILCopyMarshalerBase : public ILMarshaler } }; -template +template class ILCopyMarshalerSimple : public ILCopyMarshalerBase { public: enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(PROMOTED_ELEMENT), - c_CLRSize = sizeof(PROMOTED_ELEMENT), + c_nativeSize = NATIVE_SIZE, }; bool IsSmallValueTypeSpecialCase() @@ -1741,11 +1740,11 @@ class ILCopyMarshalerSimple : public ILCopyMarshalerBase // return (ELEMENT_TYPE == -#ifdef HOST_64BIT +#ifdef TARGET_64BIT ELEMENT_TYPE_I8 -#else // HOST_64BIT +#else // TARGET_64BIT ELEMENT_TYPE_I4 -#endif // HOST_64BIT +#endif // TARGET_64BIT ) && (NULL != m_pargs->m_pMT); } @@ -1868,15 +1867,15 @@ class ILCopyMarshalerSimple : public ILCopyMarshalerBase } }; -typedef ILCopyMarshalerSimple ILCopyMarshaler1; -typedef ILCopyMarshalerSimple ILCopyMarshalerU1; -typedef ILCopyMarshalerSimple ILCopyMarshaler2; -typedef ILCopyMarshalerSimple ILCopyMarshalerU2; -typedef ILCopyMarshalerSimple ILCopyMarshaler4; -typedef ILCopyMarshalerSimple ILCopyMarshalerU4; -typedef ILCopyMarshalerSimple ILCopyMarshaler8; -typedef ILCopyMarshalerSimple ILFloatMarshaler; -typedef ILCopyMarshalerSimple ILDoubleMarshaler; +typedef ILCopyMarshalerSimple ILCopyMarshaler1; +typedef ILCopyMarshalerSimple ILCopyMarshalerU1; +typedef ILCopyMarshalerSimple ILCopyMarshaler2; +typedef ILCopyMarshalerSimple ILCopyMarshalerU2; +typedef ILCopyMarshalerSimple ILCopyMarshaler4; +typedef ILCopyMarshalerSimple ILCopyMarshalerU4; +typedef ILCopyMarshalerSimple ILCopyMarshaler8; +typedef ILCopyMarshalerSimple ILFloatMarshaler; +typedef ILCopyMarshalerSimple ILDoubleMarshaler; template class ILCopyMarshalerKnownStruct : public ILCopyMarshalerBase @@ -1886,7 +1885,6 @@ class ILCopyMarshalerKnownStruct : public ILCopyMarshalerBase { c_fInOnly = TRUE, c_nativeSize = sizeof(PROMOTED_ELEMENT), - c_CLRSize = sizeof(PROMOTED_ELEMENT), }; virtual void EmitReInitNative(ILCodeStream* pslILEmit) @@ -1915,7 +1913,6 @@ class ILBlittableValueClassMarshaler : public ILCopyMarshalerBase { c_fInOnly = TRUE, c_nativeSize = VARIABLESIZE, - c_CLRSize = VARIABLESIZE, }; virtual void EmitReInitNative(ILCodeStream* pslILEmit) @@ -1941,8 +1938,7 @@ class ILDelegateMarshaler : public ILMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; protected: @@ -1958,8 +1954,7 @@ class ILReflectionObjectMarshaler : public ILMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; protected: @@ -2035,7 +2030,6 @@ class ILWinBoolMarshaler : public ILBoolMarshaler { c_fInOnly = TRUE, c_nativeSize = sizeof(BOOL), - c_CLRSize = sizeof(INT8), }; protected: @@ -2065,7 +2059,6 @@ class ILCBoolMarshaler : public ILBoolMarshaler { c_fInOnly = TRUE, c_nativeSize = sizeof(BYTE), - c_CLRSize = sizeof(INT8), }; protected: @@ -2096,7 +2089,6 @@ class ILVtBoolMarshaler : public ILBoolMarshaler { c_fInOnly = TRUE, c_nativeSize = sizeof(VARIANT_BOOL), - c_CLRSize = sizeof(INT8), }; protected: @@ -2147,8 +2139,7 @@ class ILUTF8BufferMarshaler : public ILOptimizedAllocMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; enum @@ -2176,8 +2167,7 @@ class ILWSTRBufferMarshaler : public ILOptimizedAllocMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; enum @@ -2205,8 +2195,7 @@ class ILCSTRBufferMarshaler : public ILOptimizedAllocMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; enum @@ -2242,8 +2231,7 @@ class ILHandleRefMarshaler : public ILMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(LPVOID), - c_CLRSize = sizeof(HANDLEREF), + c_nativeSize = TARGET_POINTER_SIZE, }; LocalDesc GetManagedType() @@ -2287,8 +2275,7 @@ class ILSafeHandleMarshaler : public ILMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(LPVOID), - c_CLRSize = sizeof(SAFEHANDLE), + c_nativeSize = TARGET_POINTER_SIZE, }; LocalDesc GetManagedType() override @@ -2330,8 +2317,7 @@ class ILCriticalHandleMarshaler : public ILMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(LPVOID), - c_CLRSize = sizeof(CRITICALHANDLE), + c_nativeSize = TARGET_POINTER_SIZE, }; public: @@ -2375,7 +2361,6 @@ class ILValueClassMarshaler : public ILMarshaler { c_fInOnly = TRUE, c_nativeSize = VARIABLESIZE, - c_CLRSize = VARIABLESIZE, }; protected: @@ -2395,8 +2380,7 @@ class ILObjectMarshaler : public ILMarshaler enum { c_fInOnly = TRUE, - c_CLRSize = sizeof(OBJECTREF), - c_nativeSize = sizeof(VARIANT), + c_nativeSize = TARGET_POINTER_SIZE * 2 + 8, // sizeof(VARIANT) }; protected: @@ -2417,7 +2401,6 @@ class ILDateMarshaler : public ILMarshaler { c_fInOnly = TRUE, c_nativeSize = sizeof(DATE), - c_CLRSize = sizeof(INT64), }; protected: @@ -2436,7 +2419,6 @@ class ILCurrencyMarshaler : public ILMarshaler { c_fInOnly = TRUE, c_nativeSize = sizeof(CURRENCY), - c_CLRSize = sizeof(DECIMAL), }; protected: @@ -2455,8 +2437,7 @@ class ILInterfaceMarshaler : public ILMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; protected: @@ -2477,7 +2458,6 @@ class ILAnsiCharMarshaler : public ILMarshaler { c_fInOnly = TRUE, c_nativeSize = sizeof(UINT8), - c_CLRSize = sizeof(UINT16), }; protected: @@ -2495,8 +2475,7 @@ class ILValueClassPtrMarshaler : public ILMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(ELEMENT *), - c_CLRSize = sizeof(ELEMENT), + c_nativeSize = TARGET_POINTER_SIZE, }; bool SupportsFieldMarshal(UINT* pErrorResID) override @@ -2611,7 +2590,6 @@ class ILOleColorMarshaler : public ILMarshaler { c_fInOnly = TRUE, c_nativeSize = sizeof(OLE_COLOR), - c_CLRSize = sizeof(SYSTEMCOLOR), }; protected: @@ -2627,8 +2605,7 @@ class ILVBByValStrWMarshaler : public ILMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(BSTR), - c_CLRSize = sizeof(OBJECTREF*), + c_nativeSize = TARGET_POINTER_SIZE, }; enum @@ -2668,8 +2645,7 @@ class ILVBByValStrMarshaler : public ILMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(LPSTR), - c_CLRSize = sizeof(OBJECTREF *), + c_nativeSize = TARGET_POINTER_SIZE, }; ILVBByValStrMarshaler() : @@ -2701,8 +2677,7 @@ class ILCUTF8Marshaler : public ILOptimizedAllocMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; enum @@ -2729,8 +2704,7 @@ class ILWSTRMarshaler : public ILOptimizedAllocMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; enum @@ -2786,8 +2760,7 @@ class ILCSTRMarshaler : public ILOptimizedAllocMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; enum @@ -2814,8 +2787,7 @@ class ILBSTRMarshaler : public ILOptimizedAllocMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; enum @@ -2842,8 +2814,7 @@ class ILAnsiBSTRMarshaler : public ILMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; protected: @@ -2862,7 +2833,6 @@ class ILFixedWSTRMarshaler : public ILMarshaler { c_fInOnly = FALSE, c_nativeSize = VARIABLESIZE, - c_CLRSize = sizeof(OBJECTREF) }; bool SupportsArgumentMarshal(DWORD dwMarshalFlags, UINT* pErrorResID) override @@ -2899,7 +2869,6 @@ class ILFixedCSTRMarshaler : public ILMarshaler { c_fInOnly = FALSE, c_nativeSize = VARIABLESIZE, - c_CLRSize = sizeof(OBJECTREF) }; bool SupportsArgumentMarshal(DWORD dwMarshalFlags, UINT* pErrorResID) override @@ -2934,8 +2903,7 @@ class ILLayoutClassPtrMarshalerBase : public ILMarshaler public: enum { - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; protected: @@ -2987,7 +2955,6 @@ class ILLayoutClassMarshaler : public ILMarshaler { c_fInOnly = FALSE, c_nativeSize = VARIABLESIZE, - c_CLRSize = sizeof(OBJECTREF), }; LocalDesc GetNativeType() override @@ -3018,7 +2985,6 @@ class ILBlittableLayoutClassMarshaler : public ILMarshaler { c_fInOnly = FALSE, c_nativeSize = VARIABLESIZE, - c_CLRSize = sizeof(OBJECTREF), }; LocalDesc GetNativeType() override @@ -3043,7 +3009,6 @@ class ILBlittableValueClassWithCopyCtorMarshaler : public ILMarshaler { c_fInOnly = TRUE, c_nativeSize = VARIABLESIZE, - c_CLRSize = sizeof(OBJECTREF), }; LocalDesc GetManagedType() @@ -3077,8 +3042,11 @@ class ILArgIteratorMarshaler : public ILMarshaler enum { c_fInOnly = TRUE, - c_nativeSize = sizeof(va_list), - c_CLRSize = sizeof(VARARGS), +#ifdef TARGET_64BIT + c_nativeSize = 24, // sizeof(va_list) +#else + c_nativeSize = 4, // sizeof(va_list) +#endif }; protected: @@ -3098,8 +3066,7 @@ class ILArrayWithOffsetMarshaler : public ILMarshaler enum { c_fInOnly = FALSE, - c_nativeSize = sizeof(LPVOID), - c_CLRSize = sizeof(ArrayWithOffsetData), + c_nativeSize = TARGET_POINTER_SIZE, }; ILArrayWithOffsetMarshaler() : @@ -3130,8 +3097,7 @@ class ILAsAnyMarshalerBase : public ILMarshaler public: enum { - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; protected: @@ -3217,8 +3183,7 @@ class ILMngdMarshaler : public ILMarshaler public: enum { - c_nativeSize = sizeof(void *), - c_CLRSize = sizeof(OBJECTREF), + c_nativeSize = TARGET_POINTER_SIZE, }; ILMngdMarshaler(BinderMethodID space2Man, @@ -3587,7 +3552,6 @@ class MngdSafeArrayMarshaler }; #endif // FEATURE_COMINTEROP - class ILReferenceCustomMarshaler : public ILMngdMarshaler { public: diff --git a/src/coreclr/src/vm/method.cpp b/src/coreclr/src/vm/method.cpp index fb7d73f791d5b..6b48dea6f6100 100644 --- a/src/coreclr/src/vm/method.cpp +++ b/src/coreclr/src/vm/method.cpp @@ -1329,11 +1329,9 @@ ReturnKind MethodDesc::ParseReturnKindFromSig(INDEBUG(bool supportStringConstruc ReturnKind MethodDesc::GetReturnKind(INDEBUG(bool supportStringConstructors)) { -#ifdef HOST_64BIT // For simplicity, we don't hijack in funclets, but if you ever change that, // be sure to choose the OnHijack... callback type to match that of the FUNCLET // not the main method (it would probably be Scalar). -#endif // HOST_64BIT ENABLE_FORBID_GC_LOADER_USE_IN_THIS_SCOPE(); // Mark that we are performing a stackwalker like operation on the current thread. diff --git a/src/coreclr/src/vm/method.hpp b/src/coreclr/src/vm/method.hpp index 599394b61bc12..70ec3aaa82791 100644 --- a/src/coreclr/src/vm/method.hpp +++ b/src/coreclr/src/vm/method.hpp @@ -207,7 +207,7 @@ class MethodDesc public: -#ifdef HOST_64BIT +#ifdef TARGET_64BIT static const int ALIGNMENT_SHIFT = 3; #else static const int ALIGNMENT_SHIFT = 2; @@ -2509,7 +2509,7 @@ class StoredSigMethodDesc : public MethodDesc RelativePointer m_pSig; DWORD m_cSig; -#ifdef HOST_64BIT +#ifdef TARGET_64BIT // m_dwExtendedFlags is not used by StoredSigMethodDesc itself. // It is used by child classes. We allocate the space here to get // optimal layout. @@ -2568,7 +2568,7 @@ class FCallMethodDesc : public MethodDesc #endif DWORD m_dwECallID; -#ifdef HOST_64BIT +#ifdef TARGET_64BIT DWORD m_padding; #endif @@ -2608,7 +2608,7 @@ class DynamicMethodDesc : public StoredSigMethodDesc RelativePointer m_pszMethodName; PTR_DynamicResolver m_pResolver; -#ifndef HOST_64BIT +#ifndef TARGET_64BIT // We use m_dwExtendedFlags from StoredSigMethodDesc on WIN64 DWORD m_dwExtendedFlags; // see DynamicMethodDesc::ExtendedFlags enum #endif @@ -2675,7 +2675,7 @@ class DynamicMethodDesc : public StoredSigMethodDesc void SetNativeStackArgSize(WORD cbArgSize) { LIMITED_METHOD_CONTRACT; - _ASSERTE(IsILStub() && (cbArgSize % sizeof(SLOT)) == 0); + _ASSERTE(IsILStub() && (cbArgSize % TARGET_POINTER_SIZE) == 0); m_dwExtendedFlags = (m_dwExtendedFlags & ~nomdStackArgSize) | ((DWORD)cbArgSize << 16); } diff --git a/src/coreclr/src/vm/mlinfo.cpp b/src/coreclr/src/vm/mlinfo.cpp index 227b719840d0b..2a6dbbe56939e 100644 --- a/src/coreclr/src/vm/mlinfo.cpp +++ b/src/coreclr/src/vm/mlinfo.cpp @@ -2348,7 +2348,7 @@ MarshalInfo::MarshalInfo(Module* pModule, { // Override the prohibition on byref returns so that IJW works m_byref = FALSE; - m_type = ((sizeof(void*) == 4) ? MARSHAL_TYPE_GENERIC_4 : MARSHAL_TYPE_GENERIC_8); + m_type = ((TARGET_POINTER_SIZE == 4) ? MARSHAL_TYPE_GENERIC_4 : MARSHAL_TYPE_GENERIC_8); } else { @@ -2373,8 +2373,8 @@ MarshalInfo::MarshalInfo(Module* pModule, && !onInstanceMethod && CorIsPrimitiveType(m_pMT->GetInternalCorElementType()) && !IsUnmanagedValueTypeReturnedByRef(nativeSize) - && managedSize <= sizeof(void*) - && nativeSize <= sizeof(void*) + && managedSize <= TARGET_POINTER_SIZE + && nativeSize <= TARGET_POINTER_SIZE && !IsFieldScenario()) { m_type = MARSHAL_TYPE_GENERIC_4; @@ -3026,7 +3026,7 @@ void MarshalInfo::SetupArgumentSizes() if (m_byref) { - m_nativeArgSize = StackElemSize(sizeof(void*)); + m_nativeArgSize = StackElemSize(TARGET_POINTER_SIZE); } else { @@ -3035,7 +3035,7 @@ void MarshalInfo::SetupArgumentSizes() #ifdef ENREGISTERED_PARAMTYPE_MAXSIZE if (m_nativeArgSize > ENREGISTERED_PARAMTYPE_MAXSIZE) - m_nativeArgSize = StackElemSize(sizeof(void*)); + m_nativeArgSize = StackElemSize(TARGET_POINTER_SIZE); #endif // ENREGISTERED_PARAMTYPE_MAXSIZE } diff --git a/src/coreclr/src/vm/stubgen.cpp b/src/coreclr/src/vm/stubgen.cpp index 5b76beeecd0af..cc3207812c504 100644 --- a/src/coreclr/src/vm/stubgen.cpp +++ b/src/coreclr/src/vm/stubgen.cpp @@ -960,11 +960,11 @@ BYTE* ILStubLinker::GenerateCodeWorker(BYTE* pbBuffer, ILInstruction* pInstrBuff case 8: { UINT64 uVal = pInstrBuffer[i].uArg; -#ifndef HOST_64BIT // We don't have room on 32-bit platforms to store the CLR_NAN_64 value, so +#ifndef TARGET_64BIT // We don't have room on 32-bit platforms to store the CLR_NAN_64 value, so // we use a special value to represent CLR_NAN_64 and then recreate it here. if ((instr == ILCodeStream::CEE_LDC_R8) && (((UINT32)uVal) == ILCodeStream::SPECIAL_VALUE_NAN_64_ON_32)) uVal = CLR_NAN_64; -#endif // HOST_64BIT +#endif // TARGET_64BIT SET_UNALIGNED_VAL64(pbBuffer, uVal); } break; @@ -1419,7 +1419,7 @@ void ILCodeStream::EmitLDC(DWORD_PTR uConst) { WRAPPER_NO_CONTRACT; Emit( -#ifdef HOST_64BIT +#ifdef TARGET_64BIT CEE_LDC_I8 #else CEE_LDC_I4 @@ -1434,14 +1434,14 @@ void ILCodeStream::EmitLDC_R4(UINT32 uConst) void ILCodeStream::EmitLDC_R8(UINT64 uConst) { STANDARD_VM_CONTRACT; -#ifndef HOST_64BIT // We don't have room on 32-bit platforms to stor the CLR_NAN_64 value, so +#ifndef TARGET_64BIT // We don't have room on 32-bit platforms to stor the CLR_NAN_64 value, so // we use a special value to represent CLR_NAN_64 and then recreate it later. CONSISTENCY_CHECK(((UINT32)uConst) != SPECIAL_VALUE_NAN_64_ON_32); if (uConst == CLR_NAN_64) uConst = SPECIAL_VALUE_NAN_64_ON_32; else CONSISTENCY_CHECK(FitsInU4(uConst)); -#endif // HOST_64BIT +#endif // TARGET_64BIT Emit(CEE_LDC_R8, 1, (UINT_PTR)uConst); } void ILCodeStream::EmitLDELEMA(int token) diff --git a/src/coreclr/src/vm/stubgen.h b/src/coreclr/src/vm/stubgen.h index a91679648b346..08771a175e578 100644 --- a/src/coreclr/src/vm/stubgen.h +++ b/src/coreclr/src/vm/stubgen.h @@ -874,9 +874,9 @@ class ILCodeStream SArray m_buildingEHClauses; SArray m_finishedEHClauses; -#ifndef HOST_64BIT +#ifndef TARGET_64BIT const static UINT32 SPECIAL_VALUE_NAN_64_ON_32 = 0xFFFFFFFF; -#endif // HOST_64BIT +#endif // TARGET_64BIT }; #endif // DACCESS_COMPILE