LWM(GetGSCookie, DWORD, DLDL)
LWM(GetHelperFtn, DWORD, DLDL)
LWM(GetHelperName, DWORD, DWORD)
+LWM(GetHFAType, DWORDLONG, DWORD)
LWM(GetInlinedCallFrameVptr, DWORD, DLDL)
LWM(GetIntConfigValue, Agnostic_ConfigIntInfo, DWORD)
LWM(GetIntrinsicID, DWORDLONG, DD)
return (CORINFO_CLASS_HANDLE)value.result;
}
+void MethodContext::recGetHFAType(CORINFO_CLASS_HANDLE clsHnd, CorInfoType result)
+{
+ if (GetHFAType == nullptr)
+ GetHFAType = new LightWeightMap<DWORDLONG, DWORD>();
+
+ GetHFAType->Add((DWORDLONG)clsHnd, (DWORD)result);
+ DEBUG_REC(dmpGetHFAType((DWORDLONG)clsHnd, (DWORD)result));
+ return;
+}
+
+void MethodContext::dmpGetHFAType(DWORDLONG key, DWORD value)
+{
+ printf("GetHFATypet key %016llX, value %u ", key, value);
+ return;
+}
+
+CorInfoType MethodContext::repGetHFAType(CORINFO_CLASS_HANDLE clsHnd)
+{
+ DWORD value;
+
+ AssertCodeMsg(GetHFAType != nullptr, EXCEPTIONCODE_MC, "Didn't find anything for %016llX", (DWORDLONG)clsHnd);
+ AssertCodeMsg(GetHFAType->GetIndex((DWORDLONG)clsHnd) != -1, EXCEPTIONCODE_MC, "Didn't find %016llX", (DWORDLONG)clsHnd);
+
+ value = GetHFAType->Get((DWORDLONG)clsHnd);
+ DEBUG_REP(dmpGetHFAType((DWORDLONG)clsHnd, value));
+ return (CorInfoType)value;
+}
+
void MethodContext::recGetMethodInfo(CORINFO_METHOD_HANDLE ftn, CORINFO_METHOD_INFO *info, bool result, DWORD exceptionCode)
{
if (GetMethodInfo == nullptr)
void dmpGetArgClass(const Agnostic_GetArgClass& key, const Agnostic_GetArgClass_Value& value);
CORINFO_CLASS_HANDLE repGetArgClass(CORINFO_SIG_INFO* sig, CORINFO_ARG_LIST_HANDLE args, DWORD *exceptionCode);
+ void recGetHFAType(CORINFO_CLASS_HANDLE clsHnd, CorInfoType result);
+ void dmpGetHFAType(DWORDLONG key, DWORD value);
+ CorInfoType repGetHFAType(CORINFO_CLASS_HANDLE clsHnd);
+
void recGetMethodInfo(CORINFO_METHOD_HANDLE ftn, CORINFO_METHOD_INFO *info, bool result, DWORD exceptionCode);
void dmpGetMethodInfo(DWORDLONG key, const Agnostic_GetMethodInfo& value);
bool repGetMethodInfo(CORINFO_METHOD_HANDLE ftn, CORINFO_METHOD_INFO *info, DWORD *exceptionCode);
// ********************* Please keep this up-to-date to ease adding more ***************
-// Highest packet number: 158
+// Highest packet number: 159
// *************************************************************************************
enum mcPackets
{
Packet_GetAddrOfCaptureThreadGlobal = 27,
Retired1 = 28,
Packet_GetArgClass = 139, //retired as 28 on 2013/07/03
+ Packet_GetHFAType = 159,
Packet_GetArgNext = 29,
Retired2 = 30,
Packet_GetArgType = 140, //retired as 30 on 2013/07/03
)
{
mc->cr->AddCall("getHFAType");
- return original_ICorJitInfo->getHFAType(hClass);
+ CorInfoType temp = original_ICorJitInfo->getHFAType(hClass);
+ this->mc->recGetHFAType(hClass, temp);
+ return temp;
}
/*****************************************************************************
)
{
jitInstance->mc->cr->AddCall("getHFAType");
- LogError("Hit unimplemented getHFAType");
- DebugBreakorAV(75);
- return (CorInfoType)0;
+ CorInfoType value = jitInstance->mc->repGetHFAType(hClass);
+ return value;
}
/*****************************************************************************
}
#elif defined(_TARGET_X86_)
SpmiTargetArchitecture = SPMI_TARGET_ARCHITECTURE_X86;
+#elif defined(_TARGET_ARM_)
+ SpmiTargetArchitecture = SPMI_TARGET_ARCHITECTURE_ARM;
#endif
}
{
SPMI_TARGET_ARCHITECTURE_X86,
SPMI_TARGET_ARCHITECTURE_AMD64,
- SPMI_TARGET_ARCHITECTURE_ARM64
+ SPMI_TARGET_ARCHITECTURE_ARM64,
+ SPMI_TARGET_ARCHITECTURE_ARM
};
extern SPMI_TARGET_ARCHITECTURE SpmiTargetArchitecture;