| 
    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 | swap (callregs_t &r) | 
| swap two instances  | |
| void | init_regs (cm_t cc) | 
| Init policy & registers for given CC.  | |
| bool | by_slots () const | 
| void | set (argreg_policy_t _policy, const int *gprs, const int *fprs) | 
| Init policy & registers (arrays are -1-terminated)  | |
| void | set_registers (reg_kind_t kind, int first_reg, int last_reg) | 
| 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) | 
Public Types | |
| enum | reg_kind_t { GPREGS , FPREGS } | 
| Init registers (sequential)  | |
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