summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2026-02-04 17:23:47 -0500
committerRusty Wagner <rusty.wagner@gmail.com>2026-02-20 16:03:45 -0500
commite2e420c91147f2a83cf59b37c973f57e209ef67a (patch)
tree841ec88e8ab8100ccb7af8af153e85a7ec7e943a /binaryninjacore.h
parent4573354f23da495099983dac4b665988cd837ff5 (diff)
Allow calling conventions to specify a list of registers that are required to be considered for heuristic calling convention detection
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 77cfcc77..92e9200f 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -2833,6 +2833,8 @@ extern "C"
uint32_t* (*getCalleeSavedRegisters)(void* ctxt, size_t* count);
uint32_t* (*getIntegerArgumentRegisters)(void* ctxt, size_t* count);
uint32_t* (*getFloatArgumentRegisters)(void* ctxt, size_t* count);
+ uint32_t* (*getRequiredArgumentRegisters)(void* ctxt, size_t* count);
+ uint32_t* (*getRequiredClobberedRegisters)(void* ctxt, size_t* count);
void (*freeRegisterList)(void* ctxt, uint32_t* regs, size_t len);
bool (*areArgumentRegistersSharedIndex)(void* ctxt);
@@ -7496,6 +7498,8 @@ extern "C"
BINARYNINJACOREAPI uint32_t* BNGetIntegerArgumentRegisters(BNCallingConvention* cc, size_t* count);
BINARYNINJACOREAPI uint32_t* BNGetFloatArgumentRegisters(BNCallingConvention* cc, size_t* count);
+ BINARYNINJACOREAPI uint32_t* BNGetRequiredArgumentRegisters(BNCallingConvention* cc, size_t* count);
+ BINARYNINJACOREAPI uint32_t* BNGetRequiredClobberedRegisters(BNCallingConvention* cc, size_t* count);
BINARYNINJACOREAPI bool BNAreArgumentRegistersSharedIndex(BNCallingConvention* cc);
BINARYNINJACOREAPI bool BNAreArgumentRegistersUsedForVarArgs(BNCallingConvention* cc);
BINARYNINJACOREAPI bool BNIsStackReservedForArgumentRegisters(BNCallingConvention* cc);