summaryrefslogtreecommitdiff
path: root/src/ToolBox/superpmi/superpmi-shared/callutils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ToolBox/superpmi/superpmi-shared/callutils.h')
-rw-r--r--src/ToolBox/superpmi/superpmi-shared/callutils.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/ToolBox/superpmi/superpmi-shared/callutils.h b/src/ToolBox/superpmi/superpmi-shared/callutils.h
new file mode 100644
index 0000000000..f428d77795
--- /dev/null
+++ b/src/ToolBox/superpmi/superpmi-shared/callutils.h
@@ -0,0 +1,44 @@
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+//
+//----------------------------------------------------------
+// CallUtils.h - Utility code for analyzing and working with managed calls
+//----------------------------------------------------------
+#ifndef _CallUtils
+#define _CallUtils
+
+#include "methodcontext.h"
+
+enum CallType
+{
+ CallType_UserFunction = 0,
+ CallType_Helper,
+ CallType_Unknown = -1
+};
+
+class CallUtils
+{
+public:
+ static CallType GetRecordedCallSiteInfo(MethodContext *mc,
+ CompileResult *cr,
+ unsigned int callInstrOffset,
+ /*out*/ CORINFO_SIG_INFO *outSigInfo,
+ /*out*/ char **outCallTargetSymbol);
+ static CallType GetDirectCallSiteInfo(MethodContext *mc,
+ void *callTarget,
+ /*out*/ CORINFO_SIG_INFO *outSigInfo,
+ /*out*/ char **outCallTargetSymbol);
+ static bool HasRetBuffArg(MethodContext *mc, CORINFO_SIG_INFO args);
+ static CorInfoHelpFunc GetHelperNum(CORINFO_METHOD_HANDLE method);
+ static bool IsNativeMethod(CORINFO_METHOD_HANDLE method);
+ static CORINFO_METHOD_HANDLE GetMethodHandleForNative(CORINFO_METHOD_HANDLE method);
+ static const char *GetMethodName(MethodContext *mc,
+ CORINFO_METHOD_HANDLE method,
+ const char **classNamePtr);
+ static const char *GetMethodFullName(MethodContext *mc,
+ CORINFO_METHOD_HANDLE hnd,
+ CORINFO_SIG_INFO sig);
+};
+
+#endif \ No newline at end of file