summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-09-10 20:31:23 -0400
committerRusty Wagner <rusty@vector35.com>2018-09-13 15:35:12 -0400
commit409de0f7804a49b6dcc9c8a14307de2be29ecd60 (patch)
tree92b04e17f71473ef39d87c62440b6e72b72ed9fb /binaryninjaapi.h
parent59a2824b1ad36ea5d0520919e86ad779cd97cc8f (diff)
Add callee saved registers on calling conventions to specify which registers are assumed to be preserved (used in heuristics to avoid incomplete data flow cloberring these registers)
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 901ea65d..b3f1c87a 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -3597,6 +3597,7 @@ namespace BinaryNinja
static void FreeCallback(void* ctxt);
static uint32_t* GetCallerSavedRegistersCallback(void* ctxt, size_t* count);
+ static uint32_t* GetCalleeSavedRegistersCallback(void* ctxt, size_t* count);
static uint32_t* GetIntegerArgumentRegistersCallback(void* ctxt, size_t* count);
static uint32_t* GetFloatArgumentRegistersCallback(void* ctxt, size_t* count);
static void FreeRegisterListCallback(void* ctxt, uint32_t* regs);
@@ -3624,6 +3625,7 @@ namespace BinaryNinja
std::string GetName() const;
virtual std::vector<uint32_t> GetCallerSavedRegisters();
+ virtual std::vector<uint32_t> GetCalleeSavedRegisters();
virtual std::vector<uint32_t> GetIntegerArgumentRegisters();
virtual std::vector<uint32_t> GetFloatArgumentRegisters();
@@ -3650,6 +3652,7 @@ namespace BinaryNinja
CoreCallingConvention(BNCallingConvention* cc);
virtual std::vector<uint32_t> GetCallerSavedRegisters() override;
+ virtual std::vector<uint32_t> GetCalleeSavedRegisters() override;
virtual std::vector<uint32_t> GetIntegerArgumentRegisters() override;
virtual std::vector<uint32_t> GetFloatArgumentRegisters() override;