diff options
| author | Brian Potchik <brian@vector35.com> | 2024-03-02 14:38:47 -0500 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2024-03-02 14:38:47 -0500 |
| commit | 2e3b9c925390cc8b1d72a41d0564bb2862d3dba2 (patch) | |
| tree | f40495cd494b8c157a0298259019873a624dc7e2 /architecture.cpp | |
| parent | ff2aa7435c3847f6969364f5d04d0943918429be (diff) | |
Add support for memory intrinsics.
Diffstat (limited to 'architecture.cpp')
| -rw-r--r-- | architecture.cpp | 26 |
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); |
