summaryrefslogtreecommitdiff
path: root/architecture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'architecture.cpp')
-rw-r--r--architecture.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/architecture.cpp b/architecture.cpp
index 7c9cc9b5..979ba3e2 100644
--- a/architecture.cpp
+++ b/architecture.cpp
@@ -595,6 +595,13 @@ void Architecture::GetRegisterStackInfoCallback(void* ctxt, uint32_t regStack, B
}
+BNIntrinsicClass Architecture::GetIntrinsicClassCallback(void* ctxt, uint32_t intrinsic)
+{
+ CallbackRef<Architecture> arch(ctxt);
+ return arch->GetIntrinsicClass(intrinsic);
+}
+
+
char* Architecture::GetIntrinsicNameCallback(void* ctxt, uint32_t intrinsic)
{
CallbackRef<Architecture> arch(ctxt);
@@ -803,6 +810,7 @@ void Architecture::Register(Architecture* arch)
callbacks.getRegisterStackName = GetRegisterStackNameCallback;
callbacks.getAllRegisterStacks = GetAllRegisterStacksCallback;
callbacks.getRegisterStackInfo = GetRegisterStackInfoCallback;
+ callbacks.getIntrinsicClass = GetIntrinsicClassCallback;
callbacks.getIntrinsicName = GetIntrinsicNameCallback;
callbacks.getAllIntrinsics = GetAllIntrinsicsCallback;
callbacks.getIntrinsicInputs = GetIntrinsicInputsCallback;
@@ -1118,6 +1126,12 @@ uint32_t Architecture::GetRegisterStackForRegister(uint32_t reg)
}
+BNIntrinsicClass Architecture::GetIntrinsicClass(uint32_t intrinsic)
+{
+ return GeneralIntrinsicClass;
+}
+
+
string Architecture::GetIntrinsicName(uint32_t intrinsic)
{
return fmt::format("intrinsic_{}", intrinsic);
@@ -1756,6 +1770,12 @@ BNRegisterStackInfo CoreArchitecture::GetRegisterStackInfo(uint32_t regStack)
}
+BNIntrinsicClass CoreArchitecture::GetIntrinsicClass(uint32_t intrinsic)
+{
+ return BNGetArchitectureIntrinsicClass(m_object, intrinsic);
+}
+
+
string CoreArchitecture::GetIntrinsicName(uint32_t intrinsic)
{
char* name = BNGetArchitectureIntrinsicName(m_object, intrinsic);
@@ -2129,6 +2149,12 @@ BNRegisterStackInfo ArchitectureExtension::GetRegisterStackInfo(uint32_t regStac
}
+BNIntrinsicClass ArchitectureExtension::GetIntrinsicClass(uint32_t intrinsic)
+{
+ return m_base->GetIntrinsicClass(intrinsic);
+}
+
+
string ArchitectureExtension::GetIntrinsicName(uint32_t intrinsic)
{
return m_base->GetIntrinsicName(intrinsic);