summaryrefslogtreecommitdiff
path: root/architecture.cpp
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2017-11-13 17:09:13 -0500
committerBrian Potchik <brian@vector35.com>2017-11-13 17:09:13 -0500
commit0cff612e91e59a343fad898daa6fa51ab525a789 (patch)
tree551ff0b624ffc18be23824757fab1a13fd9819e7 /architecture.cpp
parent32b22a22aaf7b76d47e91ed49a3246b66b431991 (diff)
Add GetInstructionAlignment Callback to Architecture.
Diffstat (limited to 'architecture.cpp')
-rw-r--r--architecture.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/architecture.cpp b/architecture.cpp
index eb588394..17d02909 100644
--- a/architecture.cpp
+++ b/architecture.cpp
@@ -111,6 +111,13 @@ size_t Architecture::GetDefaultIntegerSizeCallback(void* ctxt)
}
+size_t Architecture::GetInstructionAlignmentCallback(void* ctxt)
+{
+ Architecture* arch = (Architecture*)ctxt;
+ return arch->GetInstructionAlignment();
+}
+
+
size_t Architecture::GetMaxInstructionLengthCallback(void* ctxt)
{
Architecture* arch = (Architecture*)ctxt;
@@ -443,6 +450,7 @@ void Architecture::Register(Architecture* arch)
callbacks.getEndianness = GetEndiannessCallback;
callbacks.getAddressSize = GetAddressSizeCallback;
callbacks.getDefaultIntegerSize = GetDefaultIntegerSizeCallback;
+ callbacks.getInstructionAlignment = GetInstructionAlignmentCallback;
callbacks.getMaxInstructionLength = GetMaxInstructionLengthCallback;
callbacks.getOpcodeDisplayLength = GetOpcodeDisplayLengthCallback;
callbacks.getAssociatedArchitectureByAddress = GetAssociatedArchitectureByAddressCallback;
@@ -523,6 +531,12 @@ size_t Architecture::GetDefaultIntegerSize() const
}
+size_t Architecture::GetInstructionAlignment() const
+{
+ return 1;
+}
+
+
size_t Architecture::GetMaxInstructionLength() const
{
return BN_DEFAULT_NSTRUCTION_LENGTH;
@@ -905,6 +919,12 @@ size_t CoreArchitecture::GetDefaultIntegerSize() const
}
+size_t CoreArchitecture::GetInstructionAlignment() const
+{
+ return BNGetArchitectureInstructionAlignment(m_object);
+}
+
+
size_t CoreArchitecture::GetMaxInstructionLength() const
{
return BNGetArchitectureMaxInstructionLength(m_object);