static plcrash_error_t plcrash_async_map_register_name()

in Source/PLCrashAsyncCompactUnwindEncoding.c [593:659]


static plcrash_error_t plcrash_async_map_register_name (uint32_t orig_reg, plcrash_regnum_t *result, cpu_type_t cpu_type) {
    if (cpu_type == CPU_TYPE_X86) {
        switch (orig_reg) {
            case UNWIND_X86_REG_NONE:
                *result = PLCRASH_REG_INVALID;
                return PLCRASH_ESUCCESS;
    
            case UNWIND_X86_REG_EBX:
                *result = PLCRASH_X86_EBX;
                return PLCRASH_ESUCCESS;

            case UNWIND_X86_REG_ECX:
                *result = PLCRASH_X86_ECX;
                return PLCRASH_ESUCCESS;
                
            case UNWIND_X86_REG_EDX:
                *result = PLCRASH_X86_EDX;
                return PLCRASH_ESUCCESS;
                
            case UNWIND_X86_REG_EDI:
                *result = PLCRASH_X86_EDI;
                return PLCRASH_ESUCCESS;
                
            case UNWIND_X86_REG_ESI:
                *result = PLCRASH_X86_ESI;
                return PLCRASH_ESUCCESS;
                
            case UNWIND_X86_REG_EBP:
                *result = PLCRASH_X86_EBP;
                return PLCRASH_ESUCCESS;
            default:
                PLCF_DEBUG("Requested register mapping for unknown register %" PRId32, orig_reg);
                return PLCRASH_EINVAL;
        }
    } else if (cpu_type == CPU_TYPE_X86_64) {
        switch (orig_reg) {
            case UNWIND_X86_64_REG_NONE:
                *result = PLCRASH_REG_INVALID;
                return PLCRASH_ESUCCESS;
    
            case UNWIND_X86_64_REG_RBX:
                *result = PLCRASH_X86_64_RBX;
                return PLCRASH_ESUCCESS;
            case UNWIND_X86_64_REG_R12:
                *result = PLCRASH_X86_64_R12;
                return PLCRASH_ESUCCESS;
            case UNWIND_X86_64_REG_R13:
                *result = PLCRASH_X86_64_R13;
                return PLCRASH_ESUCCESS;
            case UNWIND_X86_64_REG_R14:
                *result = PLCRASH_X86_64_R14;
                return PLCRASH_ESUCCESS;
            case UNWIND_X86_64_REG_R15:
                *result = PLCRASH_X86_64_R15;
                return PLCRASH_ESUCCESS;
            case UNWIND_X86_64_REG_RBP:
                *result = PLCRASH_X86_64_RBP;
                return PLCRASH_ESUCCESS;
            default:
                PLCF_DEBUG("Requested register mapping for unknown register %" PRId32, orig_reg);
                return PLCRASH_EINVAL;
        }
    } else {
        PLCF_DEBUG("Requested register mapping for unknown cpu type %" PRIu32, cpu_type);
        return PLCRASH_ENOTSUP;
    }
}