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

Function getRegSize

src/e9tool/e9codegen.cpp:235–338  ·  view source on GitHub ↗

* Get the storage size of a register. */

Source from the content-addressed store, hash-verified

233 * Get the storage size of a register.
234 */
235int32_t getRegSize(Register reg)
236{
237 switch (reg)
238 {
239 case REGISTER_AH: case REGISTER_AL: case REGISTER_BH:
240 case REGISTER_BL: case REGISTER_CH: case REGISTER_CL:
241 case REGISTER_BPL: case REGISTER_DIL: case REGISTER_DL:
242 case REGISTER_DH: case REGISTER_SIL: case REGISTER_SPL:
243 case REGISTER_R8B: case REGISTER_R9B: case REGISTER_R10B:
244 case REGISTER_R11B: case REGISTER_R12B: case REGISTER_R13B:
245 case REGISTER_R14B: case REGISTER_R15B:
246 return sizeof(int8_t);
247
248 case REGISTER_AX: case REGISTER_BP: case REGISTER_BX:
249 case REGISTER_CX: case REGISTER_DX: case REGISTER_DI:
250 case REGISTER_IP: case REGISTER_SI: case REGISTER_SP:
251 case REGISTER_R8W: case REGISTER_R9W: case REGISTER_R10W:
252 case REGISTER_R11W: case REGISTER_R12W: case REGISTER_R13W:
253 case REGISTER_R14W: case REGISTER_R15W: case REGISTER_FLAGS:
254 return sizeof(int16_t);
255
256 case REGISTER_EAX: case REGISTER_EBP: case REGISTER_EBX:
257 case REGISTER_ECX: case REGISTER_EDI: case REGISTER_EDX:
258 case REGISTER_EIP: case REGISTER_ESI: case REGISTER_ESP:
259 case REGISTER_R8D: case REGISTER_R9D: case REGISTER_R10D:
260 case REGISTER_R11D: case REGISTER_R12D: case REGISTER_R13D:
261 case REGISTER_R14D: case REGISTER_R15D:
262 return sizeof(int32_t);
263
264 case REGISTER_RAX: case REGISTER_RBP: case REGISTER_RBX:
265 case REGISTER_RCX: case REGISTER_RDI: case REGISTER_RDX:
266 case REGISTER_RIP: case REGISTER_RSI: case REGISTER_RSP:
267 case REGISTER_R8: case REGISTER_R9: case REGISTER_R10:
268 case REGISTER_R11: case REGISTER_R12: case REGISTER_R13:
269 case REGISTER_R14: case REGISTER_R15: case REGISTER_RFLAGS:
270 return sizeof(int64_t);
271
272 case REGISTER_XMM0: case REGISTER_XMM1: case REGISTER_XMM2:
273 case REGISTER_XMM3: case REGISTER_XMM4: case REGISTER_XMM5:
274 case REGISTER_XMM6: case REGISTER_XMM7: case REGISTER_XMM8:
275 case REGISTER_XMM9: case REGISTER_XMM10: case REGISTER_XMM11:
276 case REGISTER_XMM12: case REGISTER_XMM13: case REGISTER_XMM14:
277 case REGISTER_XMM15: case REGISTER_XMM16: case REGISTER_XMM17:
278 case REGISTER_XMM18: case REGISTER_XMM19: case REGISTER_XMM20:
279 case REGISTER_XMM21: case REGISTER_XMM22: case REGISTER_XMM23:
280 case REGISTER_XMM24: case REGISTER_XMM25: case REGISTER_XMM26:
281 case REGISTER_XMM27: case REGISTER_XMM28: case REGISTER_XMM29:
282 case REGISTER_XMM30: case REGISTER_XMM31:
283 return 2 * sizeof(int64_t);
284
285 case REGISTER_YMM0: case REGISTER_YMM1: case REGISTER_YMM2:
286 case REGISTER_YMM3: case REGISTER_YMM4: case REGISTER_YMM5:
287 case REGISTER_YMM6: case REGISTER_YMM7: case REGISTER_YMM8:
288 case REGISTER_YMM9: case REGISTER_YMM10: case REGISTER_YMM11:
289 case REGISTER_YMM12: case REGISTER_YMM13: case REGISTER_YMM14:
290 case REGISTER_YMM15: case REGISTER_YMM16: case REGISTER_YMM17:
291 case REGISTER_YMM18: case REGISTER_YMM19: case REGISTER_YMM20:
292 case REGISTER_YMM21: case REGISTER_YMM22: case REGISTER_YMM23:

Callers 5

pushMethod · 0.85
sendLoadRegToArgFunction · 0.85
sendLoadArgumentMetadataFunction · 0.85
sendPushFunction · 0.85
sendPopFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected