* Convert a register into a register index. */
| 111 | * Convert a register into a register index. |
| 112 | */ |
| 113 | int getRegIdx(Register reg) |
| 114 | { |
| 115 | switch (reg) |
| 116 | { |
| 117 | case REGISTER_DI: case REGISTER_DIL: case REGISTER_EDI: |
| 118 | case REGISTER_RDI: |
| 119 | return RDI_IDX; |
| 120 | case REGISTER_SI: case REGISTER_SIL: case REGISTER_ESI: |
| 121 | case REGISTER_RSI: |
| 122 | return RSI_IDX; |
| 123 | case REGISTER_DH: case REGISTER_DL: |
| 124 | case REGISTER_DX: case REGISTER_EDX: case REGISTER_RDX: |
| 125 | return RDX_IDX; |
| 126 | case REGISTER_CH: case REGISTER_CL: |
| 127 | case REGISTER_CX: case REGISTER_ECX: case REGISTER_RCX: |
| 128 | return RCX_IDX; |
| 129 | case REGISTER_R8B: case REGISTER_R8W: case REGISTER_R8D: |
| 130 | case REGISTER_R8: |
| 131 | return R8_IDX; |
| 132 | case REGISTER_R9B: case REGISTER_R9W: case REGISTER_R9D: |
| 133 | case REGISTER_R9: |
| 134 | return R9_IDX; |
| 135 | case REGISTER_AH: case REGISTER_AL: |
| 136 | case REGISTER_AX: case REGISTER_EAX: case REGISTER_RAX: |
| 137 | return RAX_IDX; |
| 138 | case REGISTER_R10B: case REGISTER_R10W: case REGISTER_R10D: |
| 139 | case REGISTER_R10: |
| 140 | return R10_IDX; |
| 141 | case REGISTER_R11B: case REGISTER_R11W: case REGISTER_R11D: |
| 142 | case REGISTER_R11: |
| 143 | return R11_IDX; |
| 144 | case REGISTER_BH: case REGISTER_BL: |
| 145 | case REGISTER_BX: case REGISTER_EBX: case REGISTER_RBX: |
| 146 | return RBX_IDX; |
| 147 | case REGISTER_BP: case REGISTER_BPL: case REGISTER_EBP: |
| 148 | case REGISTER_RBP: |
| 149 | return RBP_IDX; |
| 150 | case REGISTER_R12B: case REGISTER_R12W: case REGISTER_R12D: |
| 151 | case REGISTER_R12: |
| 152 | return R12_IDX; |
| 153 | case REGISTER_R13B: case REGISTER_R13W: case REGISTER_R13D: |
| 154 | case REGISTER_R13: |
| 155 | return R13_IDX; |
| 156 | case REGISTER_R14B: case REGISTER_R14W: case REGISTER_R14D: |
| 157 | case REGISTER_R14: |
| 158 | return R14_IDX; |
| 159 | case REGISTER_R15B: case REGISTER_R15W: case REGISTER_R15D: |
| 160 | case REGISTER_R15: |
| 161 | return R15_IDX; |
| 162 | case REGISTER_SP: case REGISTER_SPL: case REGISTER_ESP: |
| 163 | case REGISTER_RSP: |
| 164 | return RSP_IDX; |
| 165 | default: |
| 166 | return -1; |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | /* |
no outgoing calls
no test coverage detected