in Source/PLCrashAsyncThread_x86.c [487:558]
static void plcrash_async_thread_state_set_reg_64 (plcrash_async_thread_state_t *thread_state, plcrash_regnum_t regnum, plcrash_greg_t reg) {
plcrash_async_thread_state_t *ts = thread_state;
switch (regnum) {
case PLCRASH_X86_64_RAX:
SETGEN(rax, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RBX:
SETGEN(rbx, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RCX:
SETGEN(rcx, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RDX:
SETGEN(rdx, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RDI:
SETGEN(rdi, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RSI:
SETGEN(rsi, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RBP:
SETGEN(rbp, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RSP:
SETGEN(rsp, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_R8:
SETGEN(r8, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_R9:
SETGEN(r9, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_R10:
SETGEN(r10, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_R11:
SETGEN(r11, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_R12:
SETGEN(r12, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_R13:
SETGEN(r13, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_R14:
SETGEN(r14, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_R15:
SETGEN(r15, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RIP:
SETGEN(rip, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_RFLAGS:
SETGEN(rflags, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_CS:
SETGEN(cs, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_FS:
SETGEN(fs, thread.uts.ts64, ts, regnum, reg);
case PLCRASH_X86_64_GS:
SETGEN(gs, thread.uts.ts64, ts, regnum, reg);
default:
// Unsupported register
__builtin_trap();
}
}