#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 |
Contains information about a register's reservation and restoration status.
| 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).
| bool _drreg_reserve_info_t::holds_app_value |
Whether the register currently holds the application value.
| 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_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.
| bool _drreg_reserve_info_t::reserved |
Whether the register is currently reserved.
| size_t _drreg_reserve_info_t::size |
The size of this structure. It must be set by the caller before querying.
| 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.