⛏️ index : haiku.git

/*
 * 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;
	}
}