static void plcrash_async_thread_state_set_reg_32()

in Source/PLCrashAsyncThread_x86.c [424:481]


static void plcrash_async_thread_state_set_reg_32 (plcrash_async_thread_state_t *thread_state, plcrash_regnum_t regnum, plcrash_greg_t reg) {
    plcrash_async_thread_state_t *ts = thread_state;
    
    /* All word-sized registers */
    switch (regnum) {
        case PLCRASH_X86_EAX:
            SETGEN(eax, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_EDX:
            SETGEN(edx, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_ECX:
            SETGEN(ecx, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_EBX:
            SETGEN(ebx, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_EBP:
            SETGEN(ebp, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_ESI:
            SETGEN(esi, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_EDI:
            SETGEN(edi, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_ESP:
            SETGEN(esp, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_EIP:
            SETGEN(eip, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_EFLAGS:
            SETGEN(eflags, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_TRAPNO:
            SETGEN(trapno, exception.ues.es32, ts, regnum, reg);
            
        case PLCRASH_X86_CS:
            SETGEN(cs, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_DS:
            SETGEN(ds, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_ES:
            SETGEN(es, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_FS:
            SETGEN(fs, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        case PLCRASH_X86_GS:
            SETGEN(gs, thread.uts.ts32, ts, regnum, (uint32_t)reg);
            
        default:
            // Unsupported register
            __builtin_trap();
    }
}