DynamoRIO
_drreg_reserve_info_t Struct Reference

#include <drreg.h>

Data Fields

size_t size
 
bool reserved
 
bool holds_app_value
 
bool app_value_retained
 
bool is_dr_slot
 
opnd_t opnd
 
int tls_offs
 

Detailed Description

Contains information about a register's reservation and restoration status.

Field Documentation

◆ app_value_retained

bool _drreg_reserve_info_t::app_value_retained

Whether the application's value is stored somewhere (it may not be if the register is dead and conservative is not set in drreg_options_t).

◆ holds_app_value

bool _drreg_reserve_info_t::holds_app_value

Whether the register currently holds the application value.

◆ is_dr_slot

bool _drreg_reserve_info_t::is_dr_slot

True if the register's TLS slot is a DR slot (and can thus be accessed by dr_read_saved_reg()) and false if either the slot is inside the dr_raw_tls_calloc() allocation used by drreg or the "slot" is another register.

◆ opnd

opnd_t _drreg_reserve_info_t::opnd

An operand that references the location storing the application value. If too many slots are in use and the register is stored in a non-directly-addressable slot, this is set to a null opnd_t. If the register is being kept in a different register, this will be a register operand holding that location. If app_value_retained is false, this is set to a null opnd_t.

◆ reserved

bool _drreg_reserve_info_t::reserved

Whether the register is currently reserved.

◆ size

size_t _drreg_reserve_info_t::size

The size of this structure. It must be set by the caller before querying.

◆ tls_offs

int _drreg_reserve_info_t::tls_offs

If the register's application value is not stored in a TLS slot, this is -1. If so, and the slot is a DR slot, this holds the DR slot index; if it is not a DR slot, this holds the offset from the TLS base of the slot assigned to the register.


The documentation for this struct was generated from the following file:
  • /home/runner/work/dynamorio/dynamorio/ext/drreg/drreg.h