diff options
| author | Rusty Wagner <rusty@vector35.com> | 2018-09-10 20:31:23 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2018-09-13 15:35:12 -0400 |
| commit | 409de0f7804a49b6dcc9c8a14307de2be29ecd60 (patch) | |
| tree | 92b04e17f71473ef39d87c62440b6e72b72ed9fb /binaryninjaapi.h | |
| parent | 59a2824b1ad36ea5d0520919e86ad779cd97cc8f (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.h | 3 |
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; |
