#include #ifndef REGISTER_ADDRESS_H_ #define REGISTER_ADDRESS_H_ enum register_type { REGISTER_TYPE_NONE, REGISTER_TYPE_TEMP, REGISTER_TYPE_CONST, REGISTER_TYPE_IN, REGISTER_TYPE_OUT, REGISTER_TYPE_IMMEDIATE, REGISTER_TYPE_PRIVATE }; enum swizzle { SWIZZLE_EMPTY, SWIZZLE_X, SWIZZLE_Y, SWIZZLE_Z, SWIZZLE_W }; class register_address { public: register_address( register_type type, unsigned int index, enum swizzle swizzle); register_address(); register_address( register_type type, unsigned int int_val); std::string to_string(); static std::string register_type_to_string(enum register_type type); static std::string swizzle_to_string(enum swizzle swz); unsigned int to_int(); register_type m_type; unsigned int m_index; enum swizzle m_swizzle; }; #endif //REGISTER_ADDRESS_H_