Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove the varargs-based mdarray helper. #62855

Merged
merged 8 commits into from
Dec 16, 2021
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 52 additions & 53 deletions docs/design/coreclr/botr/readytorun-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -719,81 +719,80 @@ enum ReadyToRunHelper
READYTORUN_HELPER_Unbox = 0x5A,
READYTORUN_HELPER_Unbox_Nullable = 0x5B,
READYTORUN_HELPER_NewMultiDimArr = 0x5C,
READYTORUN_HELPER_NewMultiDimArr_NonVarArg = 0x5D,

// Helpers used with generic handle lookup cases
READYTORUN_HELPER_NewObject = 0x60,
READYTORUN_HELPER_NewArray = 0x61,
READYTORUN_HELPER_CheckCastAny = 0x62,
READYTORUN_HELPER_CheckInstanceAny = 0x63,
READYTORUN_HELPER_GenericGcStaticBase = 0x64,
READYTORUN_HELPER_GenericNonGcStaticBase = 0x65,
READYTORUN_HELPER_GenericGcTlsBase = 0x66,
READYTORUN_HELPER_GenericNonGcTlsBase = 0x67,
READYTORUN_HELPER_VirtualFuncPtr = 0x68,
READYTORUN_HELPER_NewObject = 0x5F,
jkoritzinsky marked this conversation as resolved.
Show resolved Hide resolved
READYTORUN_HELPER_NewArray = 0x60,
READYTORUN_HELPER_CheckCastAny = 0x61,
READYTORUN_HELPER_CheckInstanceAny = 0x62,
READYTORUN_HELPER_GenericGcStaticBase = 0x63,
READYTORUN_HELPER_GenericNonGcStaticBase = 0x64,
READYTORUN_HELPER_GenericGcTlsBase = 0x65,
READYTORUN_HELPER_GenericNonGcTlsBase = 0x66,
READYTORUN_HELPER_VirtualFuncPtr = 0x67,

// Long mul/div/shift ops
READYTORUN_HELPER_LMul = 0xC0,
READYTORUN_HELPER_LMulOfv = 0xC1,
READYTORUN_HELPER_ULMulOvf = 0xC2,
READYTORUN_HELPER_LDiv = 0xC3,
READYTORUN_HELPER_LMod = 0xC4,
READYTORUN_HELPER_ULDiv = 0xC5,
READYTORUN_HELPER_ULMod = 0xC6,
READYTORUN_HELPER_LLsh = 0xC7,
READYTORUN_HELPER_LRsh = 0xC8,
READYTORUN_HELPER_LRsz = 0xC9,
READYTORUN_HELPER_Lng2Dbl = 0xCA,
READYTORUN_HELPER_ULng2Dbl = 0xCB,
READYTORUN_HELPER_LMul = 0xBF,
READYTORUN_HELPER_LMulOfv = 0xC0,
READYTORUN_HELPER_ULMulOvf = 0xC1,
READYTORUN_HELPER_LDiv = 0xC2,
READYTORUN_HELPER_LMod = 0xC3,
READYTORUN_HELPER_ULDiv = 0xC4,
READYTORUN_HELPER_ULMod = 0xC5,
READYTORUN_HELPER_LLsh = 0xC6,
READYTORUN_HELPER_LRsh = 0xC7,
READYTORUN_HELPER_LRsz = 0xC8,
READYTORUN_HELPER_Lng2Dbl = 0xC9,
READYTORUN_HELPER_ULng2Dbl = 0xCA,

// 32-bit division helpers
READYTORUN_HELPER_Div = 0xCC,
READYTORUN_HELPER_Mod = 0xCD,
READYTORUN_HELPER_UDiv = 0xCE,
READYTORUN_HELPER_UMod = 0xCF,
READYTORUN_HELPER_Div = 0xCB,
READYTORUN_HELPER_Mod = 0xCC,
READYTORUN_HELPER_UDiv = 0xCD,
READYTORUN_HELPER_UMod = 0xCE,

// Floating point conversions
READYTORUN_HELPER_Dbl2Int = 0xD0,
READYTORUN_HELPER_Dbl2IntOvf = 0xD1,
READYTORUN_HELPER_Dbl2Lng = 0xD2,
READYTORUN_HELPER_Dbl2LngOvf = 0xD3,
READYTORUN_HELPER_Dbl2UInt = 0xD4,
READYTORUN_HELPER_Dbl2UIntOvf = 0xD5,
READYTORUN_HELPER_Dbl2ULng = 0xD6,
READYTORUN_HELPER_Dbl2ULngOvf = 0xD7,
READYTORUN_HELPER_Dbl2Int = 0xCF,
READYTORUN_HELPER_Dbl2IntOvf = 0xD0,
READYTORUN_HELPER_Dbl2Lng = 0xD1,
READYTORUN_HELPER_Dbl2LngOvf = 0xD2,
READYTORUN_HELPER_Dbl2UInt = 0xD3,
READYTORUN_HELPER_Dbl2UIntOvf = 0xD4,
READYTORUN_HELPER_Dbl2ULng = 0xD5,
READYTORUN_HELPER_Dbl2ULngOvf = 0xD6,

// Floating point ops
READYTORUN_HELPER_DblRem = 0xE0,
READYTORUN_HELPER_FltRem = 0xE1,
READYTORUN_HELPER_DblRound = 0xE2,
READYTORUN_HELPER_FltRound = 0xE3,
READYTORUN_HELPER_DblRem = 0xDF,
READYTORUN_HELPER_FltRem = 0xE0,
READYTORUN_HELPER_DblRound = 0xE1,
READYTORUN_HELPER_FltRound = 0xE2,

#ifndef _TARGET_X86_
// Personality rountines
READYTORUN_HELPER_PersonalityRoutine = 0xF0,
READYTORUN_HELPER_PersonalityRoutineFilterFunclet = 0xF1,
READYTORUN_HELPER_PersonalityRoutine = 0xEF,
READYTORUN_HELPER_PersonalityRoutineFilterFunclet = 0xF0,
#endif

//
// Deprecated/legacy
//

// JIT32 x86-specific write barriers
READYTORUN_HELPER_WriteBarrier_EAX = 0x100,
READYTORUN_HELPER_WriteBarrier_EBX = 0x101,
READYTORUN_HELPER_WriteBarrier_ECX = 0x102,
READYTORUN_HELPER_WriteBarrier_ESI = 0x103,
READYTORUN_HELPER_WriteBarrier_EDI = 0x104,
READYTORUN_HELPER_WriteBarrier_EBP = 0x105,
READYTORUN_HELPER_CheckedWriteBarrier_EAX = 0x106,
READYTORUN_HELPER_CheckedWriteBarrier_EBX = 0x107,
READYTORUN_HELPER_CheckedWriteBarrier_ECX = 0x108,
READYTORUN_HELPER_CheckedWriteBarrier_ESI = 0x109,
READYTORUN_HELPER_CheckedWriteBarrier_EDI = 0x10A,
READYTORUN_HELPER_CheckedWriteBarrier_EBP = 0x10B,
READYTORUN_HELPER_WriteBarrier_EAX = 0xFF,
READYTORUN_HELPER_WriteBarrier_EBX = 0x100,
READYTORUN_HELPER_WriteBarrier_ECX = 0x101,
READYTORUN_HELPER_WriteBarrier_ESI = 0x102,
READYTORUN_HELPER_WriteBarrier_EDI = 0x103,
READYTORUN_HELPER_WriteBarrier_EBP = 0x104,
READYTORUN_HELPER_CheckedWriteBarrier_EAX = 0x105,
READYTORUN_HELPER_CheckedWriteBarrier_EBX = 0x106,
READYTORUN_HELPER_CheckedWriteBarrier_ECX = 0x107,
READYTORUN_HELPER_CheckedWriteBarrier_ESI = 0x108,
READYTORUN_HELPER_CheckedWriteBarrier_EDI = 0x109,
READYTORUN_HELPER_CheckedWriteBarrier_EBP = 0x10A,

// JIT32 x86-specific exception handling
READYTORUN_HELPER_EndCatch = 0x110,
READYTORUN_HELPER_EndCatch = 0x10F,
};
```

Expand Down
4 changes: 1 addition & 3 deletions src/coreclr/inc/corinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -362,8 +362,7 @@ enum CorInfoHelpFunc
CORINFO_HELP_NEWSFAST_ALIGN8, // allocator for small, non-finalizer, non-array object, 8 byte aligned
CORINFO_HELP_NEWSFAST_ALIGN8_VC,// allocator for small, value class, 8 byte aligned
CORINFO_HELP_NEWSFAST_ALIGN8_FINALIZE, // allocator for small, finalizable, non-array object, 8 byte aligned
CORINFO_HELP_NEW_MDARR, // multi-dim array helper (with or without lower bounds - dimensions passed in as vararg)
CORINFO_HELP_NEW_MDARR_NONVARARG,// multi-dim array helper (with or without lower bounds - dimensions passed in as unmanaged array)
CORINFO_HELP_NEW_MDARR,// multi-dim array helper (with or without lower bounds - dimensions passed in as unmanaged array)
CORINFO_HELP_NEWARR_1_DIRECT, // helper for any one dimensional array creation
CORINFO_HELP_NEWARR_1_OBJ, // optimized 1-D object arrays
CORINFO_HELP_NEWARR_1_VC, // optimized 1-D value class arrays
Expand Down Expand Up @@ -622,7 +621,6 @@ enum CorInfoHelpSig
CORINFO_HELP_SIG_8_STACK,
CORINFO_HELP_SIG_12_STACK,
CORINFO_HELP_SIG_16_STACK,
CORINFO_HELP_SIG_8_VA, //2 arguments plus varargs

CORINFO_HELP_SIG_EBPCALL, //special calling convention that uses EDX and
//EBP as arguments
Expand Down
10 changes: 5 additions & 5 deletions src/coreclr/inc/jiteeversionguid.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID;
#define GUID_DEFINED
#endif // !GUID_DEFINED

constexpr GUID JITEEVersionIdentifier = { /* 29ff53ef-3c61-4fc4-bdab-82e39a3d7970 */
0x29ff53ef,
0x3c61,
0x4fc4,
{0xbd, 0xab, 0x82, 0xe3, 0x9a, 0x3d, 0x79, 0x70}
constexpr GUID JITEEVersionIdentifier = { /* 1d61ee87-b3be-48ae-a12e-2fb9b5b1cee7 */
0x1d61ee87,
0xb3be,
0x48ae,
{0xa1, 0x2e, 0x2f, 0xb9, 0xb5, 0xb1, 0xce, 0xe7}
};

//////////////////////////////////////////////////////////////////////////////////////////////////////////
Expand Down
3 changes: 1 addition & 2 deletions src/coreclr/inc/jithelpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,7 @@
DYNAMICJITHELPER(CORINFO_HELP_NEWSFAST_ALIGN8, JIT_New, CORINFO_HELP_SIG_REG_ONLY)
JITHELPER(CORINFO_HELP_NEWSFAST_ALIGN8_VC, NULL, CORINFO_HELP_SIG_REG_ONLY)
JITHELPER(CORINFO_HELP_NEWSFAST_ALIGN8_FINALIZE, NULL, CORINFO_HELP_SIG_REG_ONLY)
JITHELPER(CORINFO_HELP_NEW_MDARR, JIT_NewMDArr,CORINFO_HELP_SIG_8_VA)
JITHELPER(CORINFO_HELP_NEW_MDARR_NONVARARG, JIT_NewMDArrNonVarArg,CORINFO_HELP_SIG_4_STACK)
JITHELPER(CORINFO_HELP_NEW_MDARR, JIT_NewMDArr,CORINFO_HELP_SIG_4_STACK)
JITHELPER(CORINFO_HELP_NEWARR_1_DIRECT, JIT_NewArr1,CORINFO_HELP_SIG_REG_ONLY)
DYNAMICJITHELPER(CORINFO_HELP_NEWARR_1_OBJ, JIT_NewArr1,CORINFO_HELP_SIG_REG_ONLY)
DYNAMICJITHELPER(CORINFO_HELP_NEWARR_1_VC, JIT_NewArr1,CORINFO_HELP_SIG_REG_ONLY)
Expand Down
113 changes: 56 additions & 57 deletions src/coreclr/inc/readytorun.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,90 +297,89 @@ enum ReadyToRunHelper
READYTORUN_HELPER_Unbox = 0x5A,
READYTORUN_HELPER_Unbox_Nullable = 0x5B,
READYTORUN_HELPER_NewMultiDimArr = 0x5C,
READYTORUN_HELPER_NewMultiDimArr_NonVarArg = 0x5D,

// Helpers used with generic handle lookup cases
READYTORUN_HELPER_NewObject = 0x60,
READYTORUN_HELPER_NewArray = 0x61,
READYTORUN_HELPER_CheckCastAny = 0x62,
READYTORUN_HELPER_CheckInstanceAny = 0x63,
READYTORUN_HELPER_GenericGcStaticBase = 0x64,
READYTORUN_HELPER_GenericNonGcStaticBase = 0x65,
READYTORUN_HELPER_GenericGcTlsBase = 0x66,
READYTORUN_HELPER_GenericNonGcTlsBase = 0x67,
READYTORUN_HELPER_VirtualFuncPtr = 0x68,
READYTORUN_HELPER_NewObject = 0x5F,
READYTORUN_HELPER_NewArray = 0x60,
READYTORUN_HELPER_CheckCastAny = 0x61,
READYTORUN_HELPER_CheckInstanceAny = 0x62,
READYTORUN_HELPER_GenericGcStaticBase = 0x63,
READYTORUN_HELPER_GenericNonGcStaticBase = 0x64,
READYTORUN_HELPER_GenericGcTlsBase = 0x65,
READYTORUN_HELPER_GenericNonGcTlsBase = 0x66,
READYTORUN_HELPER_VirtualFuncPtr = 0x67,

// Long mul/div/shift ops
READYTORUN_HELPER_LMul = 0xC0,
READYTORUN_HELPER_LMulOfv = 0xC1,
READYTORUN_HELPER_ULMulOvf = 0xC2,
READYTORUN_HELPER_LDiv = 0xC3,
READYTORUN_HELPER_LMod = 0xC4,
READYTORUN_HELPER_ULDiv = 0xC5,
READYTORUN_HELPER_ULMod = 0xC6,
READYTORUN_HELPER_LLsh = 0xC7,
READYTORUN_HELPER_LRsh = 0xC8,
READYTORUN_HELPER_LRsz = 0xC9,
READYTORUN_HELPER_Lng2Dbl = 0xCA,
READYTORUN_HELPER_ULng2Dbl = 0xCB,
READYTORUN_HELPER_LMul = 0xBF,
READYTORUN_HELPER_LMulOfv = 0xC0,
READYTORUN_HELPER_ULMulOvf = 0xC1,
READYTORUN_HELPER_LDiv = 0xC2,
READYTORUN_HELPER_LMod = 0xC3,
READYTORUN_HELPER_ULDiv = 0xC4,
READYTORUN_HELPER_ULMod = 0xC5,
READYTORUN_HELPER_LLsh = 0xC6,
READYTORUN_HELPER_LRsh = 0xC7,
READYTORUN_HELPER_LRsz = 0xC8,
READYTORUN_HELPER_Lng2Dbl = 0xC9,
READYTORUN_HELPER_ULng2Dbl = 0xCA,

// 32-bit division helpers
READYTORUN_HELPER_Div = 0xCC,
READYTORUN_HELPER_Mod = 0xCD,
READYTORUN_HELPER_UDiv = 0xCE,
READYTORUN_HELPER_UMod = 0xCF,
READYTORUN_HELPER_Div = 0xCB,
READYTORUN_HELPER_Mod = 0xCC,
READYTORUN_HELPER_UDiv = 0xCD,
READYTORUN_HELPER_UMod = 0xCE,

// Floating point conversions
READYTORUN_HELPER_Dbl2Int = 0xD0,
READYTORUN_HELPER_Dbl2IntOvf = 0xD1,
READYTORUN_HELPER_Dbl2Lng = 0xD2,
READYTORUN_HELPER_Dbl2LngOvf = 0xD3,
READYTORUN_HELPER_Dbl2UInt = 0xD4,
READYTORUN_HELPER_Dbl2UIntOvf = 0xD5,
READYTORUN_HELPER_Dbl2ULng = 0xD6,
READYTORUN_HELPER_Dbl2ULngOvf = 0xD7,
READYTORUN_HELPER_Dbl2Int = 0xCF,
READYTORUN_HELPER_Dbl2IntOvf = 0xD0,
READYTORUN_HELPER_Dbl2Lng = 0xD1,
READYTORUN_HELPER_Dbl2LngOvf = 0xD2,
READYTORUN_HELPER_Dbl2UInt = 0xD3,
READYTORUN_HELPER_Dbl2UIntOvf = 0xD4,
READYTORUN_HELPER_Dbl2ULng = 0xD5,
READYTORUN_HELPER_Dbl2ULngOvf = 0xD6,

// Floating point ops
READYTORUN_HELPER_DblRem = 0xE0,
READYTORUN_HELPER_FltRem = 0xE1,
READYTORUN_HELPER_DblRound = 0xE2,
READYTORUN_HELPER_FltRound = 0xE3,
READYTORUN_HELPER_DblRem = 0xDF,
READYTORUN_HELPER_FltRem = 0xE0,
READYTORUN_HELPER_DblRound = 0xE1,
READYTORUN_HELPER_FltRound = 0xE2,

#ifdef FEATURE_EH_FUNCLETS
// Personality rountines
READYTORUN_HELPER_PersonalityRoutine = 0xF0,
READYTORUN_HELPER_PersonalityRoutineFilterFunclet = 0xF1,
READYTORUN_HELPER_PersonalityRoutine = 0xEF,
READYTORUN_HELPER_PersonalityRoutineFilterFunclet = 0xF0,
#endif

// Synchronized methods
READYTORUN_HELPER_MonitorEnter = 0xF8,
READYTORUN_HELPER_MonitorExit = 0xF9,
READYTORUN_HELPER_MonitorEnter = 0xF7,
READYTORUN_HELPER_MonitorExit = 0xF8,

//
// Deprecated/legacy
//

// JIT32 x86-specific write barriers
READYTORUN_HELPER_WriteBarrier_EAX = 0x100,
READYTORUN_HELPER_WriteBarrier_EBX = 0x101,
READYTORUN_HELPER_WriteBarrier_ECX = 0x102,
READYTORUN_HELPER_WriteBarrier_ESI = 0x103,
READYTORUN_HELPER_WriteBarrier_EDI = 0x104,
READYTORUN_HELPER_WriteBarrier_EBP = 0x105,
READYTORUN_HELPER_CheckedWriteBarrier_EAX = 0x106,
READYTORUN_HELPER_CheckedWriteBarrier_EBX = 0x107,
READYTORUN_HELPER_CheckedWriteBarrier_ECX = 0x108,
READYTORUN_HELPER_CheckedWriteBarrier_ESI = 0x109,
READYTORUN_HELPER_CheckedWriteBarrier_EDI = 0x10A,
READYTORUN_HELPER_CheckedWriteBarrier_EBP = 0x10B,
READYTORUN_HELPER_WriteBarrier_EAX = 0xFF,
READYTORUN_HELPER_WriteBarrier_EBX = 0x100,
READYTORUN_HELPER_WriteBarrier_ECX = 0x101,
READYTORUN_HELPER_WriteBarrier_ESI = 0x102,
READYTORUN_HELPER_WriteBarrier_EDI = 0x103,
READYTORUN_HELPER_WriteBarrier_EBP = 0x104,
READYTORUN_HELPER_CheckedWriteBarrier_EAX = 0x105,
READYTORUN_HELPER_CheckedWriteBarrier_EBX = 0x106,
READYTORUN_HELPER_CheckedWriteBarrier_ECX = 0x107,
READYTORUN_HELPER_CheckedWriteBarrier_ESI = 0x108,
READYTORUN_HELPER_CheckedWriteBarrier_EDI = 0x109,
READYTORUN_HELPER_CheckedWriteBarrier_EBP = 0x10A,

// JIT32 x86-specific exception handling
READYTORUN_HELPER_EndCatch = 0x110,
READYTORUN_HELPER_EndCatch = 0x10F,

// Stack probing helper
READYTORUN_HELPER_StackProbe = 0x111,
READYTORUN_HELPER_StackProbe = 0x110,

READYTORUN_HELPER_GetCurrentManagedThreadId = 0x112,
READYTORUN_HELPER_GetCurrentManagedThreadId = 0x111,
};

#include "readytoruninstructionset.h"
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/inc/readytorunhelpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ HELPER(READYTORUN_HELPER_Box_Nullable, CORINFO_HELP_BOX_NULLABLE,
HELPER(READYTORUN_HELPER_Unbox, CORINFO_HELP_UNBOX, )
HELPER(READYTORUN_HELPER_Unbox_Nullable, CORINFO_HELP_UNBOX_NULLABLE, )
HELPER(READYTORUN_HELPER_NewMultiDimArr, CORINFO_HELP_NEW_MDARR, )
HELPER(READYTORUN_HELPER_NewMultiDimArr_NonVarArg, CORINFO_HELP_NEW_MDARR_NONVARARG, )

HELPER(READYTORUN_HELPER_NewObject, CORINFO_HELP_NEWFAST, )
HELPER(READYTORUN_HELPER_NewArray, CORINFO_HELP_NEWARR_1_DIRECT, )
Expand Down
Loading