Modules | |
Argument location types | |
Standard C-language models for x86 | |
Classes | |
struct | rrel_t |
Register-relative argument location. More... | |
struct | custloc_desc_t |
Description of a custom argloc. More... | |
class | argloc_t |
Describes an argument location. More... | |
struct | argpart_t |
Subsection of an argument location. More... | |
class | scattered_aloc_t |
Used to manage arguments that are described by multiple locations (also see ALOC_DIST) More... | |
struct | aloc_visitor_t |
Visit all argument locations. More... | |
struct | const_aloc_visitor_t |
Same as aloc_visitor_t, but may not modify the argloc. More... | |
Macros | |
#define | PRALOC_VERIFY 0x01 |
interr if illegal argloc | |
#define | PRALOC_STKOFF 0x02 |
print stack offsets | |
Typedefs | |
typedef int | argloc_type_t |
Specifies the location type of a function argument - see Argument location types. | |
typedef qvector< argloc_t > | arglocs_t |
vector of argument locations | |
typedef qvector< argpart_t > | argpartvec_t |
Enumerations | |
enum | argreg_policy_t { ARGREGS_POLICY_UNDEFINED , ARGREGS_GP_ONLY , ARGREGS_INDEPENDENT , ARGREGS_BY_SLOTS , ARGREGS_FP_CONSUME_GP , ARGREGS_MIPS_O32 } |
Function argument passing: how GP & FP registers cooperate with each other. More... | |
Functions | |
idaman int ida_export | install_custom_argloc (const custloc_desc_t *custloc) |
Save a custom argloc. | |
idaman bool ida_export | remove_custom_argloc (int idx) |
Delete the custom argloc at the given index. | |
idaman const custloc_desc_t *ida_export | retrieve_custom_argloc (int idx) |
Retrieve the custom argloc at the given index. | |
idaman int ida_export | verify_argloc (const argloc_t &vloc, int size, const rangeset_t *gaps) |
Verify argloc_t. More... | |
idaman bool ida_export | optimize_argloc (argloc_t *vloc, int size, const rangeset_t *gaps) |
Verify and optimize scattered argloc into simple form. More... | |
idaman size_t ida_export | print_argloc (char *buf, size_t bufsize, const argloc_t &vloc, int size=0, int vflags=0) |
Convert an argloc to human readable form. | |
idaman int ida_export | for_all_arglocs (aloc_visitor_t &vv, argloc_t &vloc, int size, int off=0) |
Compress larger argloc types and initiate the aloc visitor. | |
int idaapi | for_all_const_arglocs (const_aloc_visitor_t &vv, const argloc_t &vloc, int size, int off=0) |
See for_all_arglocs() | |
constexpr THREAD_SAFE cm_t | get_cc (cm_t cm) |
Get the calling convention. | |
cm_t | get_effective_cc (cm_t cm) |
Get effective calling convention (with respect to default CC) | |
constexpr THREAD_SAFE bool | is_user_cc (cm_t cm) |
Does the calling convention specify argument locations explicitly? | |
constexpr THREAD_SAFE bool | is_vararg_cc (cm_t cm) |
Does the calling convention use ellipsis? | |
constexpr THREAD_SAFE bool | is_purging_cc (cm_t cm) |
Does the calling convention clean the stack arguments upon return?. More... | |
constexpr bool | is_golang_cc (cm_t cc) |
GO language calling convention (return value in stack)? | |
constexpr bool | is_swift_cc (cm_t cc) |
Swift calling convention (arguments and return values in registers)? | |
Detailed Description
Enumeration Type Documentation
◆ argreg_policy_t
enum argreg_policy_t |
Function argument passing: how GP & FP registers cooperate with each other.
Function Documentation
◆ verify_argloc()
idaman int ida_export verify_argloc | ( | const argloc_t & | vloc, |
int | size, | ||
const rangeset_t * | gaps | ||
) |
Verify argloc_t.
- Parameters
-
vloc argloc to verify size total size of the variable gaps if not nullptr, specifies gaps in structure definition. these gaps should not map to any argloc, but everything else must be covered
- Returns
- 0 if ok, otherwise an interr code.
◆ optimize_argloc()
idaman bool ida_export optimize_argloc | ( | argloc_t * | vloc, |
int | size, | ||
const rangeset_t * | gaps | ||
) |
Verify and optimize scattered argloc into simple form.
All new arglocs must be processed by this function.
- Return values
-
true success false the input argloc was illegal
◆ is_purging_cc()
|
inlineconstexpr |
Does the calling convention clean the stack arguments upon return?.
- Note
- this function is valid only for x86 code
Generated by 1.9.3