From 409de0f7804a49b6dcc9c8a14307de2be29ecd60 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Mon, 10 Sep 2018 20:31:23 -0400 Subject: 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) --- binaryninjaapi.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'binaryninjaapi.h') 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 GetCallerSavedRegisters(); + virtual std::vector GetCalleeSavedRegisters(); virtual std::vector GetIntegerArgumentRegisters(); virtual std::vector GetFloatArgumentRegisters(); @@ -3650,6 +3652,7 @@ namespace BinaryNinja CoreCallingConvention(BNCallingConvention* cc); virtual std::vector GetCallerSavedRegisters() override; + virtual std::vector GetCalleeSavedRegisters() override; virtual std::vector GetIntegerArgumentRegisters() override; virtual std::vector GetFloatArgumentRegisters() override; -- cgit v1.3.1