MCPcopy Create free account
hub / github.com/GJDuck/e9patch / getCanonicalReg

Function getCanonicalReg

src/e9tool/e9codegen.cpp:173–230  ·  view source on GitHub ↗

* Convert a register into a canonical register. */

Source from the content-addressed store, hash-verified

171 * Convert a register into a canonical register.
172 */
173Register getCanonicalReg(Register reg)
174{
175 switch (reg)
176 {
177 case REGISTER_DI: case REGISTER_DIL: case REGISTER_EDI:
178 case REGISTER_RDI:
179 return REGISTER_RDI;
180 case REGISTER_SI: case REGISTER_SIL: case REGISTER_ESI:
181 case REGISTER_RSI:
182 return REGISTER_RSI;
183 case REGISTER_DH: case REGISTER_DL:
184 case REGISTER_DX: case REGISTER_EDX: case REGISTER_RDX:
185 return REGISTER_RDX;
186 case REGISTER_CH: case REGISTER_CL:
187 case REGISTER_CX: case REGISTER_ECX: case REGISTER_RCX:
188 return REGISTER_RCX;
189 case REGISTER_R8B: case REGISTER_R8W: case REGISTER_R8D:
190 case REGISTER_R8:
191 return REGISTER_R8;
192 case REGISTER_R9B: case REGISTER_R9W: case REGISTER_R9D:
193 case REGISTER_R9:
194 return REGISTER_R9;
195 case REGISTER_AH: case REGISTER_AL:
196 case REGISTER_AX: case REGISTER_EAX: case REGISTER_RAX:
197 return REGISTER_RAX;
198 case REGISTER_R10B: case REGISTER_R10W: case REGISTER_R10D:
199 case REGISTER_R10:
200 return REGISTER_R10;
201 case REGISTER_R11B: case REGISTER_R11W: case REGISTER_R11D:
202 case REGISTER_R11:
203 return REGISTER_R11;
204 case REGISTER_BH: case REGISTER_BL:
205 case REGISTER_BX: case REGISTER_EBX: case REGISTER_RBX:
206 return REGISTER_RBX;
207 case REGISTER_BP: case REGISTER_BPL: case REGISTER_EBP:
208 case REGISTER_RBP:
209 return REGISTER_RBP;
210 case REGISTER_R12B: case REGISTER_R12W: case REGISTER_R12D:
211 case REGISTER_R12:
212 return REGISTER_R12;
213 case REGISTER_R13B: case REGISTER_R13W: case REGISTER_R13D:
214 case REGISTER_R13:
215 return REGISTER_R13;
216 case REGISTER_R14B: case REGISTER_R14W: case REGISTER_R14D:
217 case REGISTER_R14:
218 return REGISTER_R14;
219 case REGISTER_R15B: case REGISTER_R15W: case REGISTER_R15D:
220 case REGISTER_R15:
221 return REGISTER_R15;
222 case REGISTER_SP: case REGISTER_SPL: case REGISTER_ESP:
223 case REGISTER_RSP:
224 return REGISTER_RSP;
225 case REGISTER_IP: case REGISTER_EIP: case REGISTER_RIP:
226 return REGISTER_RIP;
227 default:
228 return reg;
229 }
230}

Callers 3

getInfoMethod · 0.85
pushMethod · 0.85
sendLoadFromMemOpToR64Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected