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

Value interval (register or stack range) More...

#include <hexrays.hpp>

Inheritance diagram for vivl_t:
voff_t

Public Member Functions

 vivl_t (mopt_t _type=mop_z, sval_t _off=-1, int _size=0)
 
 vivl_t (const class chain_t &ch)
 
 vivl_t (const mop_t &op)
 
void set (mopt_t _type, sval_t _off, int _size=0)
 
void set (const voff_t &voff, int _size)
 
void set_stkoff (sval_t stkoff, int sz=0)
 
void set_reg (mreg_t mreg, int sz=0)
 
bool extend_to_cover (const vivl_t &r)
 Extend a value interval using another value interval of the same type. More...
 
uval_t intersect (const vivl_t &r)
 Intersect value intervals the same type. More...
 
bool overlap (const vivl_t &r) const
 Do two value intervals overlap? More...
 
bool includes (const vivl_t &r) const
 Does our value interval include another? More...
 
bool contains (const voff_t &voff2) const
 Does our value interval contain the specified value offset? More...
 
 DECLARE_COMPARISONS (vivl_t)
 
bool operator== (const mop_t &mop) const
 
void print (qstring *vout) const
 
const char * dstr () const
 
- Public Member Functions inherited from voff_t
 voff_t (mopt_t _type, sval_t _off)
 
 voff_t (const mop_t &op)
 
void set (mopt_t _type, sval_t _off)
 
void set_stkoff (sval_t stkoff)
 
void set_reg (mreg_t mreg)
 
void undef ()
 
bool defined () const
 
bool is_reg () const
 
bool is_stkoff () const
 
mreg_t get_reg () const
 
sval_t get_stkoff () const
 
void inc (sval_t delta)
 
voff_t add (int width) const
 
sval_t diff (const voff_t &r) const
 
 DECLARE_COMPARISONS (voff_t)
 

Public Attributes

int size
 Interval size in bytes. More...
 
- Public Attributes inherited from voff_t
sval_t off = -1
 register number or stack offset More...
 
mopt_t type = mop_z
 mop_r - register, mop_S - stack, mop_z - undefined More...
 

Detailed Description

Value interval (register or stack range)

Definition at line 3242 of file hexrays.hpp.

Constructor & Destructor Documentation

◆ vivl_t() [1/2]

vivl_t::vivl_t ( mopt_t  _type = mop_z,
sval_t  _off = -1,
int  _size = 0 
)

Definition at line 3246 of file hexrays.hpp.

◆ vivl_t() [2/2]

vivl_t::vivl_t ( const mop_t op)

Definition at line 3249 of file hexrays.hpp.

Member Function Documentation

◆ contains()

bool vivl_t::contains ( const voff_t voff2) const

Does our value interval contain the specified value offset?

Definition at line 3281 of file hexrays.hpp.

References voff_t::off, and voff_t::type.

◆ DECLARE_COMPARISONS()

vivl_t::DECLARE_COMPARISONS ( vivl_t  )

Definition at line 3288 of file hexrays.hpp.

◆ dstr()

const char * vivl_t::dstr ( ) const

Definition at line 10843 of file hexrays.hpp.

◆ extend_to_cover()

bool vivl_t::extend_to_cover ( const vivl_t r)

Extend a value interval using another value interval of the same type.

Returns
success

Definition at line 10823 of file hexrays.hpp.

◆ includes()

bool vivl_t::includes ( const vivl_t r) const

Does our value interval include another?

Definition at line 3274 of file hexrays.hpp.

References voff_t::off, size, and voff_t::type.

◆ intersect()

uval_t vivl_t::intersect ( const vivl_t r)

Intersect value intervals the same type.

Returns
size of the resulting intersection

Definition at line 10829 of file hexrays.hpp.

◆ operator==()

bool vivl_t::operator== ( const mop_t mop) const

Definition at line 3293 of file hexrays.hpp.

◆ overlap()

bool vivl_t::overlap ( const vivl_t r) const

Do two value intervals overlap?

Definition at line 3268 of file hexrays.hpp.

References voff_t::off, size, and voff_t::type.

◆ print()

void vivl_t::print ( qstring *  vout) const

Definition at line 10837 of file hexrays.hpp.

◆ set() [1/2]

void vivl_t::set ( const voff_t voff,
int  _size 
)

Definition at line 3254 of file hexrays.hpp.

◆ set() [2/2]

void vivl_t::set ( mopt_t  _type,
sval_t  _off,
int  _size = 0 
)

Definition at line 3252 of file hexrays.hpp.

◆ set_reg()

void vivl_t::set_reg ( mreg_t  mreg,
int  sz = 0 
)

Definition at line 3257 of file hexrays.hpp.

◆ set_stkoff()

void vivl_t::set_stkoff ( sval_t  stkoff,
int  sz = 0 
)

Definition at line 3256 of file hexrays.hpp.

Member Data Documentation

◆ size

int vivl_t::size

Interval size in bytes.

Definition at line 3244 of file hexrays.hpp.

Referenced by includes(), and overlap().