root/src/kits/debugger/arch/Register.cpp
/*
 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
 * Copyright 2014, Rene Gollent, rene@gollent.com.
 * Distributed under the terms of the MIT License.
 */


#include "Register.h"

#include <TypeConstants.h>


Register::Register(int32 index, const char* name, uint32 bitSize,
        uint32 valueType, register_type type, bool calleePreserved)
        :
        fIndex(index),
        fName(name),
        fBitSize(bitSize),
        fValueType(valueType),
        fType(type),
        fCalleePreserved(calleePreserved)
{
        switch (fValueType) {
                case B_INT8_TYPE:
                case B_UINT8_TYPE:
                case B_INT16_TYPE:
                case B_UINT16_TYPE:
                case B_INT32_TYPE:
                case B_UINT32_TYPE:
                case B_INT64_TYPE:
                case B_UINT64_TYPE:
                        fFormat = REGISTER_FORMAT_INTEGER;
                        break;
                case B_FLOAT_TYPE:
                case B_DOUBLE_TYPE:
                        fFormat = REGISTER_FORMAT_FLOAT;
                        break;
                case B_RAW_TYPE:
                        fFormat = REGISTER_FORMAT_SIMD;
                        break;
                default:
                        fFormat = REGISTER_FORMAT_INTEGER;
                        break;
        }
}