|
IDA SDK
|
Register allocation calling convention.
(allocation policy, arrays of GP and FP registers)
Public Attributes | |
| argreg_policy_t | policy |
| argument policy | |
| int | nregs |
| max number of registers that can be used in a call | |
| intvec_t | gpregs |
| array of gp registers | |
| intvec_t | fpregs |
| array of fp registers | |
Public Member Functions | |
| callregs_t () | |
| Constructor. | |
| callregs_t (cm_t cc) | |
| Constructor - initialize with the given request (see init_regs()) | |
| void | init_regs (cm_t cc) |
| Init policy & registers for given CC. | |
| void | set (argreg_policy_t _policy, const int *gprs, const int *fprs) |
| Init policy & registers (arrays are -1-terminated) | |
| void | reset () |
| Set policy and registers to invalid values. | |
| bool | reginds (int *gp_ind, int *fp_ind, int r) const |
| Get register indexes within GP/FP arrays. More... | |
Static Public Member Functions | |
| static int | regcount (cm_t cc) |
| Get max number of registers may be used in a function call. | |
| static int | findreg (const intvec_t ®s, int r) |
Protected Member Functions | |
| bool | findregs (int *gp_ind, int *fp_ind, int r, const intvec_t &gprs, const intvec_t &fprs) const |
| Search for register r in gprs and fprs. More... | |
|
inline |
Get register indexes within GP/FP arrays.
(-1 -> is not present in the corresponding array)
|
inlineprotected |
Search for register r in gprs and fprs.
If found, fill gp_ind and fp_ind based on policy
1.8.9.1