From 26c5083f7847e1a1f45f30aad4bd66562ed0a28a Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Sun, 12 Oct 2025 11:02:28 -0700 Subject: [PATCH 1/4] Replace UIntPtr with nuint on managed JIT/EE interface --- .../tools/Common/JitInterface/CorInfoImpl.cs | 18 +++---- .../JitInterface/CorInfoImpl_generated.cs | 48 +++++++++---------- .../tools/Common/JitInterface/CorInfoTypes.cs | 4 +- .../ThunkGenerator/ThunkInput.txt | 4 +- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs index 505c9b6d742538..1ce8112a8a0d11 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs @@ -2151,7 +2151,7 @@ private uint getClassAttribsInternal(TypeDesc type) } #pragma warning disable CA1822 // Mark members as static - private void* LongLifetimeMalloc(UIntPtr sz) + private void* LongLifetimeMalloc(nuint sz) #pragma warning restore CA1822 // Mark members as static { return NativeMemory.Alloc(sz); @@ -2164,9 +2164,9 @@ private void LongLifetimeFree(void* obj) NativeMemory.Free(obj); } - private UIntPtr getClassStaticDynamicInfo(CORINFO_CLASS_STRUCT_* cls) + private nuint getClassStaticDynamicInfo(CORINFO_CLASS_STRUCT_* cls) { throw new NotImplementedException("getClassStaticDynamicInfo"); } - private UIntPtr getClassThreadStaticDynamicInfo(CORINFO_CLASS_STRUCT_* cls) + private nuint getClassThreadStaticDynamicInfo(CORINFO_CLASS_STRUCT_* cls) { throw new NotImplementedException("getClassThreadStaticDynamicInfo"); } private uint getClassSize(CORINFO_CLASS_STRUCT_* cls) @@ -2616,7 +2616,7 @@ private GetTypeLayoutResult GetTypeLayoutHelper(MetadataType type, uint parentIn return GetTypeLayoutResult.Success; } - private GetTypeLayoutResult getTypeLayout(CORINFO_CLASS_STRUCT_* typeHnd, CORINFO_TYPE_LAYOUT_NODE* treeNodes, UIntPtr* numTreeNodes) + private GetTypeLayoutResult getTypeLayout(CORINFO_CLASS_STRUCT_* typeHnd, CORINFO_TYPE_LAYOUT_NODE* treeNodes, nuint* numTreeNodes) { TypeDesc type = HandleToObject(typeHnd); @@ -3222,7 +3222,7 @@ private void reportMetadata(byte* key, void* value, nuint length) } #pragma warning disable CA1822 // Mark members as static - private void* allocateArray(UIntPtr cBytes) + private void* allocateArray(nuint cBytes) #pragma warning restore CA1822 // Mark members as static { return NativeMemory.Alloc(cBytes); @@ -3347,10 +3347,10 @@ private void getEEInfo(ref CORINFO_EE_INFO pEEInfoOut) pEEInfoOut.sizeOfReversePInvokeFrame = (uint)SizeOfReversePInvokeTransitionFrame; - pEEInfoOut.osPageSize = new UIntPtr(0x1000); + pEEInfoOut.osPageSize = 0x1000; pEEInfoOut.maxUncheckedOffsetForNullObject = (_compilation.NodeFactory.Target.IsWindows) ? - new UIntPtr(32 * 1024 - 1) : new UIntPtr((uint)pEEInfoOut.osPageSize / 2 - 1); + (32 * 1024 - 1) : (pEEInfoOut.osPageSize / 2 - 1); pEEInfoOut.targetAbi = TargetABI; pEEInfoOut.osType = TargetToOs(_compilation.NodeFactory.Target); @@ -3867,9 +3867,9 @@ private void allocUnwindInfo(byte* pHotCode, byte* pColdCode, uint startOffset, #endif } - private void* allocGCInfo(UIntPtr size) + private void* allocGCInfo(nuint size) { - _gcInfo = new byte[(int)size]; + _gcInfo = new byte[size]; return (void*)GetPin(_gcInfo); } diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs index e1065b2706224b..dff7083cb3ae01 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs @@ -539,7 +539,7 @@ private static int _getStringLiteral(IntPtr thisHandle, IntPtr* ppException, COR } [UnmanagedCallersOnly] - private static UIntPtr _printObjectDescription(IntPtr thisHandle, IntPtr* ppException, CORINFO_OBJECT_STRUCT_* handle, byte* buffer, UIntPtr bufferSize, UIntPtr* pRequiredBufferSize) + private static nuint _printObjectDescription(IntPtr thisHandle, IntPtr* ppException, CORINFO_OBJECT_STRUCT_* handle, byte* buffer, nuint bufferSize, nuint* pRequiredBufferSize) { var _this = GetThis(thisHandle); try @@ -614,7 +614,7 @@ private static CorInfoType _asCorInfoType(IntPtr thisHandle, IntPtr* ppException } [UnmanagedCallersOnly] - private static UIntPtr _printClassName(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, byte* buffer, UIntPtr bufferSize, UIntPtr* pRequiredBufferSize) + private static nuint _printClassName(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, byte* buffer, nuint bufferSize, nuint* pRequiredBufferSize) { var _this = GetThis(thisHandle); try @@ -674,7 +674,7 @@ private static uint _getClassAttribs(IntPtr thisHandle, IntPtr* ppException, COR } [UnmanagedCallersOnly] - private static void* _LongLifetimeMalloc(IntPtr thisHandle, IntPtr* ppException, UIntPtr sz) + private static void* _LongLifetimeMalloc(IntPtr thisHandle, IntPtr* ppException, nuint sz) { var _this = GetThis(thisHandle); try @@ -718,7 +718,7 @@ private static byte _getIsClassInitedFlagAddress(IntPtr thisHandle, IntPtr* ppEx } [UnmanagedCallersOnly] - private static UIntPtr _getClassThreadStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr) + private static nuint _getClassThreadStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr) { var _this = GetThis(thisHandle); try @@ -733,7 +733,7 @@ private static UIntPtr _getClassThreadStaticDynamicInfo(IntPtr thisHandle, IntPt } [UnmanagedCallersOnly] - private static UIntPtr _getClassStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr) + private static nuint _getClassStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr) { var _this = GetThis(thisHandle); try @@ -868,7 +868,7 @@ private static uint _getClassNumInstanceFields(IntPtr thisHandle, IntPtr* ppExce } [UnmanagedCallersOnly] - private static GetTypeLayoutResult _getTypeLayout(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* typeHnd, CORINFO_TYPE_LAYOUT_NODE* treeNodes, UIntPtr* numTreeNodes) + private static GetTypeLayoutResult _getTypeLayout(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* typeHnd, CORINFO_TYPE_LAYOUT_NODE* treeNodes, nuint* numTreeNodes) { var _this = GetThis(thisHandle); try @@ -1391,7 +1391,7 @@ private static CorInfoIsAccessAllowedResult _canAccessClass(IntPtr thisHandle, I } [UnmanagedCallersOnly] - private static UIntPtr _printFieldName(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, byte* buffer, UIntPtr bufferSize, UIntPtr* pRequiredBufferSize) + private static nuint _printFieldName(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, byte* buffer, nuint bufferSize, nuint* pRequiredBufferSize) { var _this = GetThis(thisHandle); try @@ -1608,7 +1608,7 @@ private static void _reportRichMappings(IntPtr thisHandle, IntPtr* ppException, } [UnmanagedCallersOnly] - private static void _reportMetadata(IntPtr thisHandle, IntPtr* ppException, byte* key, void* value, UIntPtr length) + private static void _reportMetadata(IntPtr thisHandle, IntPtr* ppException, byte* key, void* value, nuint length) { var _this = GetThis(thisHandle); try @@ -1622,7 +1622,7 @@ private static void _reportMetadata(IntPtr thisHandle, IntPtr* ppException, byte } [UnmanagedCallersOnly] - private static void* _allocateArray(IntPtr thisHandle, IntPtr* ppException, UIntPtr cBytes) + private static void* _allocateArray(IntPtr thisHandle, IntPtr* ppException, nuint cBytes) { var _this = GetThis(thisHandle); try @@ -1799,7 +1799,7 @@ private static mdToken _getMethodDefFromMethod(IntPtr thisHandle, IntPtr* ppExce } [UnmanagedCallersOnly] - private static UIntPtr _printMethodName(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, byte* buffer, UIntPtr bufferSize, UIntPtr* pRequiredBufferSize) + private static nuint _printMethodName(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, byte* buffer, nuint bufferSize, nuint* pRequiredBufferSize) { var _this = GetThis(thisHandle); try @@ -1814,7 +1814,7 @@ private static UIntPtr _printMethodName(IntPtr thisHandle, IntPtr* ppException, } [UnmanagedCallersOnly] - private static byte* _getMethodNameFromMetadata(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, byte** className, byte** namespaceName, byte** enclosingClassNames, UIntPtr maxEnclosingClassNames) + private static byte* _getMethodNameFromMetadata(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, byte** className, byte** namespaceName, byte** enclosingClassNames, nuint maxEnclosingClassNames) { var _this = GetThis(thisHandle); try @@ -2399,7 +2399,7 @@ private static void _allocUnwindInfo(IntPtr thisHandle, IntPtr* ppException, byt } [UnmanagedCallersOnly] - private static void* _allocGCInfo(IntPtr thisHandle, IntPtr* ppException, UIntPtr size) + private static void* _allocGCInfo(IntPtr thisHandle, IntPtr* ppException, nuint size) { var _this = GetThis(thisHandle); try @@ -2644,20 +2644,20 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[33] = (delegate* unmanaged)&_findCallSiteSig; callbacks[34] = (delegate* unmanaged)&_getTokenTypeAsHandle; callbacks[35] = (delegate* unmanaged)&_getStringLiteral; - callbacks[36] = (delegate* unmanaged)&_printObjectDescription; + callbacks[36] = (delegate* unmanaged)&_printObjectDescription; callbacks[37] = (delegate* unmanaged)&_asCorInfoType; callbacks[38] = (delegate* unmanaged)&_getClassNameFromMetadata; callbacks[39] = (delegate* unmanaged)&_getTypeInstantiationArgument; callbacks[40] = (delegate* unmanaged)&_getMethodInstantiationArgument; - callbacks[41] = (delegate* unmanaged)&_printClassName; + callbacks[41] = (delegate* unmanaged)&_printClassName; callbacks[42] = (delegate* unmanaged)&_isValueClass; callbacks[43] = (delegate* unmanaged)&_getClassAttribs; callbacks[44] = (delegate* unmanaged)&_getClassAssemblyName; - callbacks[45] = (delegate* unmanaged)&_LongLifetimeMalloc; + callbacks[45] = (delegate* unmanaged)&_LongLifetimeMalloc; callbacks[46] = (delegate* unmanaged)&_LongLifetimeFree; callbacks[47] = (delegate* unmanaged)&_getIsClassInitedFlagAddress; - callbacks[48] = (delegate* unmanaged)&_getClassThreadStaticDynamicInfo; - callbacks[49] = (delegate* unmanaged)&_getClassStaticDynamicInfo; + callbacks[48] = (delegate* unmanaged)&_getClassThreadStaticDynamicInfo; + callbacks[49] = (delegate* unmanaged)&_getClassStaticDynamicInfo; callbacks[50] = (delegate* unmanaged)&_getStaticBaseAddress; callbacks[51] = (delegate* unmanaged)&_getClassSize; callbacks[52] = (delegate* unmanaged)&_getHeapClassSize; @@ -2666,7 +2666,7 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[55] = (delegate* unmanaged)&_getClassGClayout; callbacks[56] = (delegate* unmanaged)&_getClassNumInstanceFields; callbacks[57] = (delegate* unmanaged)&_getFieldInClass; - callbacks[58] = (delegate* unmanaged)&_getTypeLayout; + callbacks[58] = (delegate* unmanaged)&_getTypeLayout; callbacks[59] = (delegate* unmanaged)&_checkMethodModifier; callbacks[60] = (delegate* unmanaged)&_getNewHelper; callbacks[61] = (delegate* unmanaged)&_getNewArrHelper; @@ -2701,7 +2701,7 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[90] = (delegate* unmanaged)&_getArrayIntrinsicID; callbacks[91] = (delegate* unmanaged)&_getArrayInitializationData; callbacks[92] = (delegate* unmanaged)&_canAccessClass; - callbacks[93] = (delegate* unmanaged)&_printFieldName; + callbacks[93] = (delegate* unmanaged)&_printFieldName; callbacks[94] = (delegate* unmanaged)&_getFieldClass; callbacks[95] = (delegate* unmanaged)&_getFieldType; callbacks[96] = (delegate* unmanaged)&_getFieldOffset; @@ -2716,8 +2716,8 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[105] = (delegate* unmanaged)&_getVars; callbacks[106] = (delegate* unmanaged)&_setVars; callbacks[107] = (delegate* unmanaged)&_reportRichMappings; - callbacks[108] = (delegate* unmanaged)&_reportMetadata; - callbacks[109] = (delegate* unmanaged)&_allocateArray; + callbacks[108] = (delegate* unmanaged)&_reportMetadata; + callbacks[109] = (delegate* unmanaged)&_allocateArray; callbacks[110] = (delegate* unmanaged)&_freeArray; callbacks[111] = (delegate* unmanaged)&_getArgNext; callbacks[112] = (delegate* unmanaged)&_getArgType; @@ -2729,8 +2729,8 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[118] = (delegate* unmanaged)&_getEEInfo; callbacks[119] = (delegate* unmanaged)&_getAsyncInfo; callbacks[120] = (delegate* unmanaged)&_getMethodDefFromMethod; - callbacks[121] = (delegate* unmanaged)&_printMethodName; - callbacks[122] = (delegate* unmanaged)&_getMethodNameFromMetadata; + callbacks[121] = (delegate* unmanaged)&_printMethodName; + callbacks[122] = (delegate* unmanaged)&_getMethodNameFromMetadata; callbacks[123] = (delegate* unmanaged)&_getMethodHash; callbacks[124] = (delegate* unmanaged)&_getSystemVAmd64PassStructInRegisterDescriptor; callbacks[125] = (delegate* unmanaged)&_getSwiftLowering; @@ -2770,7 +2770,7 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[159] = (delegate* unmanaged)&_allocMem; callbacks[160] = (delegate* unmanaged)&_reserveUnwindInfo; callbacks[161] = (delegate* unmanaged)&_allocUnwindInfo; - callbacks[162] = (delegate* unmanaged)&_allocGCInfo; + callbacks[162] = (delegate* unmanaged)&_allocGCInfo; callbacks[163] = (delegate* unmanaged)&_setEHcount; callbacks[164] = (delegate* unmanaged)&_setEHinfo; callbacks[165] = (delegate* unmanaged)&_logMsg; diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs index 2ae78da1fde8f0..4fcd3ddc8fa0b5 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs @@ -860,10 +860,10 @@ public struct InlinedCallFrameInfo public uint sizeOfReversePInvokeFrame; // OS Page size - public UIntPtr osPageSize; + public nuint osPageSize; // Null object offset - public UIntPtr maxUncheckedOffsetForNullObject; + public nuint maxUncheckedOffsetForNullObject; // Target ABI. Combined with target architecture and OS to determine // GC, EH, and unwind styles. diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index 4c4945475399c1..7dabf175ecc316 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -38,13 +38,13 @@ void void* const void *,void* JITINTERFACE_HRESULT,HRESULT -size_t*,UIntPtr* +size_t*,nuint* int int32_t,int uint32_t,uint unsigned,uint unsigned int, uint -size_t,UIntPtr +size_t,nuint uint16_t,ushort bool,[MarshalAs(UnmanagedType.I1)]bool const char *,byte* From cec35d14d3ae4825f2afb33e11f19e6e6caa9503 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Sun, 12 Oct 2025 15:11:42 -0700 Subject: [PATCH 2/4] More --- src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs | 8 ++++---- .../ILCompiler.RyuJit/JitInterface/CorInfoImpl.RyuJit.cs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs index 4fcd3ddc8fa0b5..797ae1c7d3061e 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs @@ -234,10 +234,10 @@ public unsafe struct CORINFO_RUNTIME_LOOKUP public bool testForNull { get { return _testForNull != 0; } set { _testForNull = value ? (byte)1 : (byte)0; } } public ushort sizeOffset; - public IntPtr offset0; - public IntPtr offset1; - public IntPtr offset2; - public IntPtr offset3; + public nint offset0; + public nint offset1; + public nint offset2; + public nint offset3; public byte _indirectFirstOffset; public bool indirectFirstOffset { get { return _indirectFirstOffset != 0; } set { _indirectFirstOffset = value ? (byte)1 : (byte)0; } } diff --git a/src/coreclr/tools/aot/ILCompiler.RyuJit/JitInterface/CorInfoImpl.RyuJit.cs b/src/coreclr/tools/aot/ILCompiler.RyuJit/JitInterface/CorInfoImpl.RyuJit.cs index 8c499dcea4a7bd..1a598e87bce256 100644 --- a/src/coreclr/tools/aot/ILCompiler.RyuJit/JitInterface/CorInfoImpl.RyuJit.cs +++ b/src/coreclr/tools/aot/ILCompiler.RyuJit/JitInterface/CorInfoImpl.RyuJit.cs @@ -286,10 +286,10 @@ private void ComputeLookup(ref CORINFO_RESOLVED_TOKEN pResolvedToken, object ent } lookup.runtimeLookup.indirections = (ushort)genericLookup.NumberOfIndirections; - lookup.runtimeLookup.offset0 = (IntPtr)genericLookup[0]; + lookup.runtimeLookup.offset0 = genericLookup[0]; if (genericLookup.NumberOfIndirections > 1) { - lookup.runtimeLookup.offset1 = (IntPtr)genericLookup[1]; + lookup.runtimeLookup.offset1 = genericLookup[1]; } lookup.runtimeLookup.sizeOffset = CORINFO.CORINFO_NO_SIZE_CHECK; lookup.runtimeLookup.testForNull = false; From 31626eee213e02602da87b47a573f816c3af9a71 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Sun, 12 Oct 2025 18:49:46 -0700 Subject: [PATCH 3/4] FB --- src/coreclr/inc/corinfo.h | 4 ++-- src/coreclr/inc/icorjitinfoimpl_generated.h | 4 ++-- .../jit/ICorJitInfo_wrapper_generated.hpp | 8 ++++---- src/coreclr/jit/flowgraph.cpp | 2 +- .../tools/Common/JitInterface/CorInfoImpl.cs | 4 ++-- .../Common/JitInterface/CorInfoImpl_generated.cs | 8 ++++---- .../JitInterface/ThunkGenerator/ThunkInput.txt | 4 ++-- .../aot/jitinterface/jitinterface_generated.h | 12 ++++++------ .../superpmi/superpmi-shared/methodcontext.cpp | 16 ++++++++-------- .../superpmi/superpmi-shared/methodcontext.h | 8 ++++---- .../superpmi-shim-collector/icorjitinfo.cpp | 8 ++++---- .../icorjitinfo_generated.cpp | 4 ++-- .../icorjitinfo_generated.cpp | 4 ++-- .../tools/superpmi/superpmi/icorjitinfo.cpp | 4 ++-- src/coreclr/vm/jitinterface.cpp | 12 ++++++------ 15 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index b0d0108a31dffe..f1a60023132a8a 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -2404,11 +2404,11 @@ class ICorStaticInfo int* offset ) = 0; - virtual size_t getClassStaticDynamicInfo ( + virtual void* getClassStaticDynamicInfo ( CORINFO_CLASS_HANDLE cls ) = 0; - virtual size_t getClassThreadStaticDynamicInfo ( + virtual void* getClassThreadStaticDynamicInfo ( CORINFO_CLASS_HANDLE cls ) = 0; diff --git a/src/coreclr/inc/icorjitinfoimpl_generated.h b/src/coreclr/inc/icorjitinfoimpl_generated.h index 6f4908d9c05235..17e84757200845 100644 --- a/src/coreclr/inc/icorjitinfoimpl_generated.h +++ b/src/coreclr/inc/icorjitinfoimpl_generated.h @@ -219,10 +219,10 @@ bool getIsClassInitedFlagAddress( CORINFO_CONST_LOOKUP* addr, int* offset) override; -size_t getClassThreadStaticDynamicInfo( +void* getClassThreadStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) override; -size_t getClassStaticDynamicInfo( +void* getClassStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) override; bool getStaticBaseAddress( diff --git a/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp b/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp index 71dc8eaf7119af..f4fe7019066774 100644 --- a/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp +++ b/src/coreclr/jit/ICorJitInfo_wrapper_generated.hpp @@ -483,20 +483,20 @@ bool WrapICorJitInfo::getIsClassInitedFlagAddress( return temp; } -size_t WrapICorJitInfo::getClassThreadStaticDynamicInfo( +void* WrapICorJitInfo::getClassThreadStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) { API_ENTER(getClassThreadStaticDynamicInfo); - size_t temp = wrapHnd->getClassThreadStaticDynamicInfo(clr); + void* temp = wrapHnd->getClassThreadStaticDynamicInfo(clr); API_LEAVE(getClassThreadStaticDynamicInfo); return temp; } -size_t WrapICorJitInfo::getClassStaticDynamicInfo( +void* WrapICorJitInfo::getClassStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) { API_ENTER(getClassStaticDynamicInfo); - size_t temp = wrapHnd->getClassStaticDynamicInfo(clr); + void* temp = wrapHnd->getClassStaticDynamicInfo(clr); API_LEAVE(getClassStaticDynamicInfo); return temp; } diff --git a/src/coreclr/jit/flowgraph.cpp b/src/coreclr/jit/flowgraph.cpp index dc7e334b309b0f..9e538144d079d6 100644 --- a/src/coreclr/jit/flowgraph.cpp +++ b/src/coreclr/jit/flowgraph.cpp @@ -778,7 +778,7 @@ GenTreeCall* Compiler::fgGetStaticsCCtorHelper(CORINFO_CLASS_HANDLE cls, CorInfo helper == CORINFO_HELP_GETPINNED_NONGCSTATIC_BASE_NOCTOR) { result = gtNewHelperCallNode(helper, type, - gtNewIconNode(info.compCompHnd->getClassStaticDynamicInfo(cls), TYP_I_IMPL)); + gtNewIconNode((size_t)info.compCompHnd->getClassStaticDynamicInfo(cls), TYP_I_IMPL)); } else { diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs index 1ce8112a8a0d11..7538a26ef002ff 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs @@ -2164,9 +2164,9 @@ private void LongLifetimeFree(void* obj) NativeMemory.Free(obj); } - private nuint getClassStaticDynamicInfo(CORINFO_CLASS_STRUCT_* cls) + private void* getClassStaticDynamicInfo(CORINFO_CLASS_STRUCT_* cls) { throw new NotImplementedException("getClassStaticDynamicInfo"); } - private nuint getClassThreadStaticDynamicInfo(CORINFO_CLASS_STRUCT_* cls) + private void* getClassThreadStaticDynamicInfo(CORINFO_CLASS_STRUCT_* cls) { throw new NotImplementedException("getClassThreadStaticDynamicInfo"); } private uint getClassSize(CORINFO_CLASS_STRUCT_* cls) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs index dff7083cb3ae01..902a001c505a9f 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoImpl_generated.cs @@ -718,7 +718,7 @@ private static byte _getIsClassInitedFlagAddress(IntPtr thisHandle, IntPtr* ppEx } [UnmanagedCallersOnly] - private static nuint _getClassThreadStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr) + private static void* _getClassThreadStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr) { var _this = GetThis(thisHandle); try @@ -733,7 +733,7 @@ private static nuint _getClassThreadStaticDynamicInfo(IntPtr thisHandle, IntPtr* } [UnmanagedCallersOnly] - private static nuint _getClassStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr) + private static void* _getClassStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr) { var _this = GetThis(thisHandle); try @@ -2656,8 +2656,8 @@ private static IntPtr GetUnmanagedCallbacks() callbacks[45] = (delegate* unmanaged)&_LongLifetimeMalloc; callbacks[46] = (delegate* unmanaged)&_LongLifetimeFree; callbacks[47] = (delegate* unmanaged)&_getIsClassInitedFlagAddress; - callbacks[48] = (delegate* unmanaged)&_getClassThreadStaticDynamicInfo; - callbacks[49] = (delegate* unmanaged)&_getClassStaticDynamicInfo; + callbacks[48] = (delegate* unmanaged)&_getClassThreadStaticDynamicInfo; + callbacks[49] = (delegate* unmanaged)&_getClassStaticDynamicInfo; callbacks[50] = (delegate* unmanaged)&_getStaticBaseAddress; callbacks[51] = (delegate* unmanaged)&_getClassSize; callbacks[52] = (delegate* unmanaged)&_getHeapClassSize; diff --git a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt index 7dabf175ecc316..cbcfd25f32b359 100644 --- a/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt +++ b/src/coreclr/tools/Common/JitInterface/ThunkGenerator/ThunkInput.txt @@ -214,8 +214,8 @@ FUNCTIONS void* LongLifetimeMalloc(size_t sz) void LongLifetimeFree(void* obj) bool getIsClassInitedFlagAddress(CORINFO_CLASS_HANDLE cls, REF_CORINFO_CONST_LOOKUP addr, int* offset) - size_t getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE clr) - size_t getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE clr) + void* getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE clr) + void* getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE clr) bool getStaticBaseAddress(CORINFO_CLASS_HANDLE cls, bool isGc, REF_CORINFO_CONST_LOOKUP addr) unsigned getClassSize(CORINFO_CLASS_HANDLE cls) unsigned getHeapClassSize(CORINFO_CLASS_HANDLE cls) diff --git a/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h b/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h index 4069f29308dadd..186d8ce372117e 100644 --- a/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h +++ b/src/coreclr/tools/aot/jitinterface/jitinterface_generated.h @@ -59,8 +59,8 @@ struct JitInterfaceCallbacks void* (* LongLifetimeMalloc)(void * thisHandle, CorInfoExceptionClass** ppException, size_t sz); void (* LongLifetimeFree)(void * thisHandle, CorInfoExceptionClass** ppException, void* obj); bool (* getIsClassInitedFlagAddress)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls, CORINFO_CONST_LOOKUP* addr, int* offset); - size_t (* getClassThreadStaticDynamicInfo)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE clr); - size_t (* getClassStaticDynamicInfo)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE clr); + void* (* getClassThreadStaticDynamicInfo)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE clr); + void* (* getClassStaticDynamicInfo)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE clr); bool (* getStaticBaseAddress)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls, bool isGc, CORINFO_CONST_LOOKUP* addr); unsigned (* getClassSize)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); unsigned (* getHeapClassSize)(void * thisHandle, CorInfoExceptionClass** ppException, CORINFO_CLASS_HANDLE cls); @@ -673,20 +673,20 @@ class JitInterfaceWrapper : public ICorJitInfo return temp; } - virtual size_t getClassThreadStaticDynamicInfo( + virtual void* getClassThreadStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) { CorInfoExceptionClass* pException = nullptr; - size_t temp = _callbacks->getClassThreadStaticDynamicInfo(_thisHandle, &pException, clr); + void* temp = _callbacks->getClassThreadStaticDynamicInfo(_thisHandle, &pException, clr); if (pException != nullptr) throw pException; return temp; } - virtual size_t getClassStaticDynamicInfo( + virtual void* getClassStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) { CorInfoExceptionClass* pException = nullptr; - size_t temp = _callbacks->getClassStaticDynamicInfo(_thisHandle, &pException, clr); + void* temp = _callbacks->getClassStaticDynamicInfo(_thisHandle, &pException, clr); if (pException != nullptr) throw pException; return temp; } diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp index c2c5e7e0d5eae2..ac87130dba1785 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp @@ -4768,14 +4768,14 @@ int32_t* MethodContext::repGetAddrOfCaptureThreadGlobal(void** ppIndirection) return (int32_t*)value.B; } -void MethodContext::recGetClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls, size_t result) +void MethodContext::recGetClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls, void* result) { if (GetClassStaticDynamicInfo == nullptr) GetClassStaticDynamicInfo = new LightWeightMap(); DLD value; - value.A = result; + value.A = CastPointer(result); value.B = 0; DWORDLONG key = CastHandle(cls); @@ -4786,24 +4786,24 @@ void MethodContext::dmpGetClassStaticDynamicInfo(DWORDLONG key, DLD value) { printf("GetClassStaticDynamicInfo key cls-%016" PRIX64 ", value pp-%016" PRIX64 " res-%u", key, value.A, value.B); } -size_t MethodContext::repGetClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) +void* MethodContext::repGetClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) { DWORDLONG key = CastHandle(cls); DLD value = LookupByKeyOrMiss(GetClassStaticDynamicInfo, key, ": key %016" PRIX64 "", key); DEBUG_REP(dmpGetClassStaticDynamicInfo(key, value)); - return (size_t)value.A; + return (void*)value.A; } -void MethodContext::recGetClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls, size_t result) +void MethodContext::recGetClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls, void* result) { if (GetClassThreadStaticDynamicInfo == nullptr) GetClassThreadStaticDynamicInfo = new LightWeightMap(); DLD value; - value.A = result; + value.A = CastPointer(result); value.B = 0; DWORDLONG key = CastHandle(cls); @@ -4814,14 +4814,14 @@ void MethodContext::dmpGetClassThreadStaticDynamicInfo(DWORDLONG key, DLD value) { printf("GetClassThreadStaticDynamicInfo key cls-%016" PRIX64 ", value pp-%016" PRIX64 " res-%u", key, value.A, value.B); } -size_t MethodContext::repGetClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) +void* MethodContext::repGetClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) { DWORDLONG key = CastHandle(cls); DLD value = LookupByKeyOrMiss(GetClassThreadStaticDynamicInfo, key, ": key %016" PRIX64 "", key); DEBUG_REP(dmpGetClassThreadStaticDynamicInfo(key, value)); - return (size_t)value.A; + return (void*)value.A; } void MethodContext::recGetLocationOfThisType(CORINFO_METHOD_HANDLE context, CORINFO_LOOKUP_KIND* result) diff --git a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h index c86944897c4f4f..d9958e6c2988ed 100644 --- a/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h +++ b/src/coreclr/tools/superpmi/superpmi-shared/methodcontext.h @@ -607,13 +607,13 @@ class MethodContext void dmpGetAddrOfCaptureThreadGlobal(DWORD key, DLDL value); int32_t* repGetAddrOfCaptureThreadGlobal(void** ppIndirection); - void recGetClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls, size_t result); + void recGetClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls, void* result); void dmpGetClassStaticDynamicInfo(DWORDLONG key, DLD value); - size_t repGetClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls); + void* repGetClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls); - void recGetClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls, size_t result); + void recGetClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls, void* result); void dmpGetClassThreadStaticDynamicInfo(DWORDLONG key, DLD value); - size_t repGetClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls); + void* repGetClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls); void recGetLocationOfThisType(CORINFO_METHOD_HANDLE context, CORINFO_LOOKUP_KIND* result); void dmpGetLocationOfThisType(DWORDLONG key, const Agnostic_CORINFO_LOOKUP_KIND& value); diff --git a/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp b/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp index 0a6118d73ab862..c214cc7c1005b6 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp @@ -1656,18 +1656,18 @@ void interceptor_ICJI::getCallInfo( }); } -size_t interceptor_ICJI::getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) +void* interceptor_ICJI::getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("getClassStaticDynamicInfo"); - size_t temp = original_ICorJitInfo->getClassStaticDynamicInfo(cls); + void* temp = original_ICorJitInfo->getClassStaticDynamicInfo(cls); mc->recGetClassStaticDynamicInfo(cls, temp); return temp; } -size_t interceptor_ICJI::getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) +void* interceptor_ICJI::getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) { mc->cr->AddCall("getClassThreadStaticDynamicInfo"); - size_t temp = original_ICorJitInfo->getClassThreadStaticDynamicInfo(cls); + void* temp = original_ICorJitInfo->getClassThreadStaticDynamicInfo(cls); mc->recGetClassThreadStaticDynamicInfo(cls, temp); return temp; } diff --git a/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp b/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp index ac148df7c4e295..db7a78298949fe 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-counter/icorjitinfo_generated.cpp @@ -402,14 +402,14 @@ bool interceptor_ICJI::getIsClassInitedFlagAddress( return original_ICorJitInfo->getIsClassInitedFlagAddress(cls, addr, offset); } -size_t interceptor_ICJI::getClassThreadStaticDynamicInfo( +void* interceptor_ICJI::getClassThreadStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) { mcs->AddCall("getClassThreadStaticDynamicInfo"); return original_ICorJitInfo->getClassThreadStaticDynamicInfo(clr); } -size_t interceptor_ICJI::getClassStaticDynamicInfo( +void* interceptor_ICJI::getClassStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) { mcs->AddCall("getClassStaticDynamicInfo"); diff --git a/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp b/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp index 1f47ea740c0c48..5f5df1a3bff589 100644 --- a/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp +++ b/src/coreclr/tools/superpmi/superpmi-shim-simple/icorjitinfo_generated.cpp @@ -354,13 +354,13 @@ bool interceptor_ICJI::getIsClassInitedFlagAddress( return original_ICorJitInfo->getIsClassInitedFlagAddress(cls, addr, offset); } -size_t interceptor_ICJI::getClassThreadStaticDynamicInfo( +void* interceptor_ICJI::getClassThreadStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) { return original_ICorJitInfo->getClassThreadStaticDynamicInfo(clr); } -size_t interceptor_ICJI::getClassStaticDynamicInfo( +void* interceptor_ICJI::getClassStaticDynamicInfo( CORINFO_CLASS_HANDLE clr) { return original_ICorJitInfo->getClassStaticDynamicInfo(clr); diff --git a/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp b/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp index a1b207c3de797e..6c9f758d6b9425 100644 --- a/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp +++ b/src/coreclr/tools/superpmi/superpmi/icorjitinfo.cpp @@ -465,13 +465,13 @@ void MyICJI::LongLifetimeFree(void* obj) DebugBreakorAV(33); } -size_t MyICJI::getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) +void* MyICJI::getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("getClassThreadStaticDynamicInfo"); return jitInstance->mc->repGetClassThreadStaticDynamicInfo(cls); } -size_t MyICJI::getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) +void* MyICJI::getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) { jitInstance->mc->cr->AddCall("getClassStaticDynamicInfo"); return jitInstance->mc->repGetClassStaticDynamicInfo(cls); diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index b6186a7382abc3..f0e6abfd342a03 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -1177,7 +1177,7 @@ static CorInfoHelpFunc getGenericStaticsHelper(FieldDesc * pField) return (CorInfoHelpFunc)helper; } -size_t CEEInfo::getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) +void* CEEInfo::getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) { CONTRACTL { NOTHROW; @@ -1185,20 +1185,20 @@ size_t CEEInfo::getClassThreadStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) MODE_PREEMPTIVE; } CONTRACTL_END; - size_t result; + void* result; JIT_TO_EE_TRANSITION_LEAF(); TypeHandle clsTypeHandle(cls); PTR_MethodTable pMT = clsTypeHandle.AsMethodTable(); - result = (size_t)pMT->GetThreadStaticsInfo(); + result = pMT->GetThreadStaticsInfo(); EE_TO_JIT_TRANSITION_LEAF(); return result; } -size_t CEEInfo::getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) +void* CEEInfo::getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) { CONTRACTL { NOTHROW; @@ -1206,13 +1206,13 @@ size_t CEEInfo::getClassStaticDynamicInfo(CORINFO_CLASS_HANDLE cls) MODE_PREEMPTIVE; } CONTRACTL_END; - size_t result; + void* result; JIT_TO_EE_TRANSITION_LEAF(); TypeHandle clsTypeHandle(cls); PTR_MethodTable pMT = clsTypeHandle.AsMethodTable(); - result = (size_t)pMT->GetDynamicStaticsInfo(); + result = pMT->GetDynamicStaticsInfo(); EE_TO_JIT_TRANSITION_LEAF(); From 38f9d475973fdc1d8a794af8e2056fd8fc5edb6e Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Sun, 12 Oct 2025 19:06:45 -0700 Subject: [PATCH 4/4] Format --- src/coreclr/jit/flowgraph.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/coreclr/jit/flowgraph.cpp b/src/coreclr/jit/flowgraph.cpp index 9e538144d079d6..262277983af084 100644 --- a/src/coreclr/jit/flowgraph.cpp +++ b/src/coreclr/jit/flowgraph.cpp @@ -777,8 +777,9 @@ GenTreeCall* Compiler::fgGetStaticsCCtorHelper(CORINFO_CLASS_HANDLE cls, CorInfo helper == CORINFO_HELP_GETPINNED_GCSTATIC_BASE_NOCTOR || helper == CORINFO_HELP_GETPINNED_NONGCSTATIC_BASE_NOCTOR) { - result = gtNewHelperCallNode(helper, type, - gtNewIconNode((size_t)info.compCompHnd->getClassStaticDynamicInfo(cls), TYP_I_IMPL)); + result = + gtNewHelperCallNode(helper, type, + gtNewIconNode((size_t)info.compCompHnd->getClassStaticDynamicInfo(cls), TYP_I_IMPL)); } else {