Latest available version: IDA and decompilers v8.4.240320sp1 see all releases
Hex-Rays logo State-of-the-art binary code analysis tools
email icon

Subsection of an argument location. More...

#include <typeinf.hpp>

Inherits argloc_t.

Public Member Functions

 argpart_t (const argloc_t &a)
 Constructor.
 
 argpart_t ()
 Constructor.
 
argpart_tcopy_from (const argloc_t &a)
 
bool bad_offset () const
 Does this argpart have a valid offset?
 
bool bad_size () const
 Does this argpart have a valid size?
 
bool operator< (const argpart_t &r) const
 Compare two argparts, based on their offset.
 
void swap (argpart_t &r)
 Assign this = r and r = this.
 
- Public Member Functions inherited from argloc_t
 argloc_t ()
 Constructor.
 
 argloc_t (const argloc_t &r)
 Constructor.
 
 ~argloc_t ()
 Destructor.
 
argloc_toperator= (const argloc_t &r)
 Constructor.
 
void swap (argloc_t &r)
 Assign this == r and r == this.
 
const char * dstr () const
 
argloc_type_t atype () const
 Get type (Argument location types)
 
bool is_reg1 () const
 See ALOC_REG1.
 
bool is_reg2 () const
 See ALOC_REG2.
 
bool is_reg () const
 is_reg1() || is_reg2()
 
bool is_rrel () const
 See ALOC_RREL.
 
bool is_ea () const
 See ALOC_STATIC.
 
bool is_stkoff () const
 See ALOC_STACK.
 
bool is_scattered () const
 See ALOC_DIST.
 
bool has_reg () const
 TRUE if argloc has a register part.
 
bool has_stkoff () const
 TRUE if argloc has a stack part.
 
bool is_mixed_scattered () const
 mixed scattered: consists of register and stack parts
 
bool in_stack () const
 TRUE if argloc is in stack entirely.
 
bool is_fragmented () const
 is_scattered() || is_reg2()
 
bool is_custom () const
 See ALOC_CUSTOM.
 
bool is_badloc () const
 See ALOC_NONE.
 
int reg1 () const
 Get the register info. More...
 
int regoff () const
 Get offset from the beginning of the register in bytes. More...
 
int reg2 () const
 Get info for the second register. More...
 
uint32 get_reginfo () const
 Get all register info. More...
 
sval_t stkoff () const
 Get the stack offset. More...
 
ea_t get_ea () const
 Get the global address. More...
 
scattered_aloc_tscattered ()
 Get scattered argument info. More...
 
const scattered_aloc_tscattered () const
 Get scattered argument info. More...
 
rrel_tget_rrel ()
 Get register-relative info. More...
 
const rrel_tget_rrel () const
 Get register-relative info. More...
 
void * get_custom () const
 Get custom argloc info. More...
 
biggest_t get_biggest () const
 Get largest element in internal union.
 
void _set_badloc ()
 Use set_badloc()
 
void _set_reg1 (int reg, int off=0)
 Use set_reg1()
 
void _set_reg2 (int _reg1, int _reg2)
 Use set_reg2()
 
void _set_stkoff (sval_t off)
 Use set_stkoff()
 
void _set_ea (ea_t _ea)
 Use set_ea.
 
bool _consume_rrel (rrel_t *p)
 Use consume_rrel()
 
bool _consume_scattered (scattered_aloc_t *p)
 Use consume_scattered()
 
void _set_custom (argloc_type_t ct, void *pdata)
 Set custom argument location (careful - this function does not clean up!)
 
void _set_biggest (argloc_type_t ct, biggest_t data)
 Set biggest element in internal union (careful - this function does not clean up!)
 
void set_reg1 (int reg, int off=0)
 Set register location.
 
void set_reg2 (int _reg1, int _reg2)
 Set secondary register location.
 
void set_stkoff (sval_t off)
 Set stack offset location.
 
void set_ea (ea_t _ea)
 Set static ea location.
 
void consume_rrel (rrel_t *p)
 Set register-relative location - can't be nullptr.
 
void consume_scattered (scattered_aloc_t *p)
 Set distributed argument location.
 
void set_badloc ()
 Set to invalid location.
 
sval_t calc_offset () const
 Calculate offset that can be used to compare 2 similar arglocs.
 
bool advance (int delta)
 Move the location to point 'delta' bytes further.
 
void align_reg_high (size_t size, size_t _slotsize)
 Set register offset to align it to the upper part of _SLOTSIZE.
 
void align_stkoff_high (size_t size, size_t _slotsize)
 Set stack offset to align to the upper part of _SLOTSIZE.
 

Public Attributes

ushort off
 offset from the beginning of the argument
 
ushort size
 the number of bytes
 

Additional Inherited Members

- Public Types inherited from argloc_t
typedef size_t biggest_t
 

Detailed Description

Subsection of an argument location.


The documentation for this struct was generated from the following file: