/******************************************************************** created: 2005/06/06 created: 6:6:2005 14:47 filename: c:\Axis\Share\Common\SEnum.h file path: c:\Axis\Share\Common file base: SEnum file ext: h author: ¾¦°« purpose: // solution 1 limit size 100 SENUM_3( MODE, 1, 2, 3 ); // solution 2 no limit #define ENUM_BODY_MODE( value ) ENUM_BODY( MODE, value ) #define SENUM_ADD_MODE( value ) SENUM_ADD( MODE, value ) #define MODE_ENUM_LIST( _ ) \ _( 1 ) \ _( 2 ) \ _( 3 ) DEFINE_ENUM( MODE, MODE_ENUM_LIST ); // use auto define MODE_MAX : 3 not match string const tstring& str1 = MODE_CONVERTER( MODE_1 ); // return "1" MODE m = MODE_CONVERTER( _T( "1" ) ); // return MODE_1 : 0 // solition 3 is same soulution 2 but can use special string #define ENUM_BODY_MODE( value, str ) ENUM_BODY_PAIR( MODE, value, str ) #define SENUM_ADD_MODE( value, str ) SENUM_ADD_PAIR( MODE, value, str ) #define MODE_ENUM_LIST( _ ) \ _( A, a ) \ _( B, b ) \ _( C, c ) DEFINE_ENUM( MODE, MODE_ENUM_LIST ); // use auto define MODE_MAX : 3 not match string const tstring& str1 = MODE_CONVERTER( MODE_A ); // return "a" MODE m = MODE_CONVERTER( _T( "a" ) ); // return MODE_A : 0 - history 2005.06.06 : »ý¼º 2005.06.07 : lib¿¡¼­ »ç¿ëÇÒ ¶§ÀÇ ¹ö±× ¼öÁ¤ 2005.07.07 : Á÷Á¢ ½ºÆ®¸µÀ» ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï Ãß°¡ 2005.07.08 : type¸í Á¦¿ÜÇÏ°í »ç¿ëÇϵµ·Ï ¼öÁ¤ 2005.07.08 : ¹ö±× ¼öÁ¤¹× °ËÁõ ·çƾ Ãß°¡ *********************************************************************/ #pragma once #include "SAssert.h" #include #include using std::vector; using stdext::hash_map; #pragma warning( disable: 4505) // SEnum 1 #define SENUM_BEGIN( TYPE, TYPE_SIZE ) \ \ class TYPE##_CONVERTER_MANAGER \ { \ private: \ typedef vector TYPE_STRING; \ typedef hash_map TYPE_MAP; \ \ TYPE_STRING m_TypeStrings; \ TYPE_MAP m_TypeMap; \ \ public: \ __declspec(noinline) static TYPE##_CONVERTER_MANAGER& Instance() \ { \ static TYPE##_CONVERTER_MANAGER s_Instance; \ return s_Instance; \ } \ \ ~TYPE##_CONVERTER_MANAGER() \ { \ m_TypeStrings.clear(); \ m_TypeMap.clear(); \ } \ \ __forceinline OUT const tstring& operator()( IN const TYPE type ) const \ { \ SUPERASSERT( type < (TYPE)m_TypeStrings.size() ); \ \ return m_TypeStrings.at( type ); \ } \ \ __forceinline OUT const tstring& operator()( IN const DWORD type ) const \ { \ SUPERASSERT( type < m_TypeStrings.size() ); \ \ return m_TypeStrings.at( type ); \ } \ \ __forceinline OUT const TYPE operator()( IN const tstring &rStrType ) const \ { \ SASSERT( m_TypeMap.find( rStrType ) != m_TypeMap.end(), rStrType.c_str() ); \ \ return m_TypeMap.find( rStrType )->second; \ } \ \ private: \ TYPE##_CONVERTER_MANAGER() \ { \ m_TypeStrings.reserve( TYPE_SIZE ); #define SENUM_END( TYPE, TYPE_SIZE ) \ SUPERASSERT( m_TypeStrings.size() == TYPE_SIZE ); \ SUPERASSERT( m_TypeMap.size() == TYPE_SIZE ); \ } }; \ \ static __forceinline OUT const tstring& TYPE##_CONVERTER( IN const TYPE type ) \ { \ return TYPE##_CONVERTER_MANAGER::Instance()( type ); \ } \ \ static __forceinline OUT const tstring& TYPE##_CONVERTER( IN const DWORD type ) \ { \ return TYPE##_CONVERTER_MANAGER::Instance()( type ); \ } \ \ static __forceinline OUT const TYPE TYPE##_CONVERTER( IN const tstring& rStrType ) \ { \ return TYPE##_CONVERTER_MANAGER::Instance()( rStrType ); \ } \ #define MAKE_TYPE_VALUE( TYPE, value ) TYPE##_##value #define SENUM_ADD( TYPE, value ) \ m_TypeStrings.push_back( _T( #value ) ); \ m_TypeMap.insert( TYPE_MAP::value_type( _T( #value ), MAKE_TYPE_VALUE( TYPE, value ) ) ); #define SENUM_ADD_PAIR( TYPE, value, str ) \ m_TypeStrings.push_back( _T( #str ) ); \ m_TypeMap.insert( TYPE_MAP::value_type( _T( #str ), MAKE_TYPE_VALUE( TYPE, value ) ) ); #define SENUM_ADD_TYPE( TYPE ) SENUM_ADD_##TYPE #define ENUM_BODY_TYPE( TYPE ) ENUM_BODY_##TYPE // SEnum 2 #define ENUM_BODY( TYPE, value ) MAKE_TYPE_VALUE( TYPE, value ), #define ENUM_BODY_PAIR( TYPE, value, dummy ) MAKE_TYPE_VALUE( TYPE, value ), #define DEFINE_ENUM( TYPE, LIST ) \ enum TYPE \ { \ LIST( ENUM_BODY_TYPE( TYPE ) ) \ MAKE_TYPE_VALUE( TYPE, MAX ) \ }; \ SENUM_BEGIN( TYPE, MAKE_TYPE_VALUE( TYPE, MAX ) ) \ LIST( SENUM_ADD_TYPE( TYPE ) ) \ SENUM_END( TYPE, MAKE_TYPE_VALUE( TYPE, MAX ) ) #define DEFINE_ENUM_PAIR( TYPE, LIST ) \ enum TYPE \ { \ LIST( ENUM_BODY_TYPE( TYPE ) ) \ MAKE_TYPE_VALUE( TYPE, MAX ) \ }; \ SENUM_BEGIN( TYPE, MAKE_TYPE_VALUE( TYPE, MAX ) ) \ LIST( SENUM_ADD_TYPE( TYPE ) ) \ SENUM_END( TYPE, MAKE_TYPE_VALUE( TYPE, MAX ) ) // enum defines #define SENUM_1( TYPE, v0 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 1 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_END( TYPE, 1 ) #define SENUM_2( TYPE, v0, v1 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 2 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_END( TYPE, 2 ) #define SENUM_3( TYPE, v0, v1, v2 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 3 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_END( TYPE, 3 ) #define SENUM_4( TYPE, v0, v1, v2, v3 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 4 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_END( TYPE, 4 ) #define SENUM_5( TYPE, v0, v1, v2, v3, v4 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 5 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_END( TYPE, 5 ) #define SENUM_6( TYPE, v0, v1, v2, v3, v4, v5 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 6 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_END( TYPE, 6 ) #define SENUM_7( TYPE, v0, v1, v2, v3, v4, v5, v6 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 7 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_END( TYPE, 7 ) #define SENUM_8( TYPE, v0, v1, v2, v3, v4, v5, v6, v7 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 8 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_END( TYPE, 8 ) #define SENUM_9( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 9 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_END( TYPE, 9 ) #define SENUM_10( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 10 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_END( TYPE, 10 ) #define SENUM_11( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 11 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_END( TYPE, 11 ) #define SENUM_12( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 12 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_END( TYPE, 12 ) #define SENUM_13( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 13 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_END( TYPE, 13 ) #define SENUM_14( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 14 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_END( TYPE, 14 ) #define SENUM_15( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 15 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_END( TYPE, 15 ) #define SENUM_16( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 16 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_END( TYPE, 16 ) #define SENUM_17( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 17 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_END( TYPE, 17 ) #define SENUM_18( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 18 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_END( TYPE, 18 ) #define SENUM_19( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 19 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_END( TYPE, 19 ) #define SENUM_20( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 20 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_END( TYPE, 20 ) #define SENUM_21( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 21 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_END( TYPE, 21 ) #define SENUM_22( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 22 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_END( TYPE, 22 ) #define SENUM_23( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 23 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_END( TYPE, 23 ) #define SENUM_24( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 24 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_END( TYPE, 24 ) #define SENUM_25( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 25 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_END( TYPE, 25 ) #define SENUM_26( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 26 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_END( TYPE, 26 ) #define SENUM_27( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 27 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_END( TYPE, 27 ) #define SENUM_28( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 28 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_END( TYPE, 28 ) #define SENUM_29( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 29 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_END( TYPE, 29 ) #define SENUM_30( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 30 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_END( TYPE, 30 ) #define SENUM_31( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 31 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_END( TYPE, 31 ) #define SENUM_32( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 32 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_END( TYPE, 32 ) #define SENUM_33( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 33 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_END( TYPE, 33 ) #define SENUM_34( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 34 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_END( TYPE, 34 ) #define SENUM_35( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 35 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_END( TYPE, 35 ) #define SENUM_36( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 36 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_END( TYPE, 36 ) #define SENUM_37( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 37 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_END( TYPE, 37 ) #define SENUM_38( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 38 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_END( TYPE, 38 ) #define SENUM_39( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 39 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_END( TYPE, 39 ) #define SENUM_40( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 40 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_END( TYPE, 40 ) #define SENUM_41( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 41 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_END( TYPE, 41 ) #define SENUM_42( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 42 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_END( TYPE, 42 ) #define SENUM_43( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 43 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_END( TYPE, 43 ) #define SENUM_44( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 44 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_END( TYPE, 44 ) #define SENUM_45( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 45 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_END( TYPE, 45 ) #define SENUM_46( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 46 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_END( TYPE, 46 ) #define SENUM_47( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 47 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_END( TYPE, 47 ) #define SENUM_48( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 48 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_END( TYPE, 48 ) #define SENUM_49( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 49 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_END( TYPE, 49 ) #define SENUM_50( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 50 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_END( TYPE, 50 ) #define SENUM_51( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 51 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_END( TYPE, 51 ) #define SENUM_52( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 52 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_END( TYPE, 52 ) #define SENUM_53( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 53 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_END( TYPE, 53 ) #define SENUM_54( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 54 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_END( TYPE, 54 ) #define SENUM_55( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 55 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_END( TYPE, 55 ) #define SENUM_56( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 56 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_END( TYPE, 56 ) #define SENUM_57( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 57 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_END( TYPE, 57 ) #define SENUM_58( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 58 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_END( TYPE, 58 ) #define SENUM_59( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 59 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_END( TYPE, 59 ) #define SENUM_60( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 60 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_END( TYPE, 60 ) #define SENUM_61( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 61 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_END( TYPE, 61 ) #define SENUM_62( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 62 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_END( TYPE, 62 ) #define SENUM_63( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 63 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_END( TYPE, 63 ) #define SENUM_64( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 64 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_END( TYPE, 64 ) #define SENUM_65( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 65 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_END( TYPE, 65 ) #define SENUM_66( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 66 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_END( TYPE, 66 ) #define SENUM_67( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 67 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_END( TYPE, 67 ) #define SENUM_68( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 68 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_END( TYPE, 68 ) #define SENUM_69( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 69 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_END( TYPE, 69 ) #define SENUM_70( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 70 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_END( TYPE, 70 ) #define SENUM_71( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 71 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_END( TYPE, 71 ) #define SENUM_72( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 72 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_END( TYPE, 72 ) #define SENUM_73( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 73 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_END( TYPE, 73 ) #define SENUM_74( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 74 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_END( TYPE, 74 ) #define SENUM_75( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 75 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_END( TYPE, 75 ) #define SENUM_76( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 76 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_END( TYPE, 76 ) #define SENUM_77( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 77 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_END( TYPE, 77 ) #define SENUM_78( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 78 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_END( TYPE, 78 ) #define SENUM_79( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 79 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_END( TYPE, 79 ) #define SENUM_80( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 80 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_END( TYPE, 80 ) #define SENUM_81( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 81 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_END( TYPE, 81 ) #define SENUM_82( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 82 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_END( TYPE, 82 ) #define SENUM_83( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 83 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_END( TYPE, 83 ) #define SENUM_84( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 84 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_END( TYPE, 84 ) #define SENUM_85( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 85 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_END( TYPE, 85 ) #define SENUM_86( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 86 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_END( TYPE, 86 ) #define SENUM_87( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 87 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_END( TYPE, 87 ) #define SENUM_88( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 88 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_END( TYPE, 88 ) #define SENUM_89( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 89 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_END( TYPE, 89 ) #define SENUM_90( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 90 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_END( TYPE, 90 ) #define SENUM_91( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 91 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_END( TYPE, 91 ) #define SENUM_92( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 92 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_END( TYPE, 92 ) #define SENUM_93( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, v92 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 93 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_ADD( TYPE, v92 ) \ SENUM_END( TYPE, 93 ) #define SENUM_94( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, v92 ), \ MAKE_TYPE_VALUE( TYPE, v93 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 94 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_ADD( TYPE, v92 ) \ SENUM_ADD( TYPE, v93 ) \ SENUM_END( TYPE, 94 ) #define SENUM_95( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, v92 ), \ MAKE_TYPE_VALUE( TYPE, v93 ), \ MAKE_TYPE_VALUE( TYPE, v94 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 95 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_ADD( TYPE, v92 ) \ SENUM_ADD( TYPE, v93 ) \ SENUM_ADD( TYPE, v94 ) \ SENUM_END( TYPE, 95 ) #define SENUM_96( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, v92 ), \ MAKE_TYPE_VALUE( TYPE, v93 ), \ MAKE_TYPE_VALUE( TYPE, v94 ), \ MAKE_TYPE_VALUE( TYPE, v95 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 96 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_ADD( TYPE, v92 ) \ SENUM_ADD( TYPE, v93 ) \ SENUM_ADD( TYPE, v94 ) \ SENUM_ADD( TYPE, v95 ) \ SENUM_END( TYPE, 96 ) #define SENUM_97( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, v92 ), \ MAKE_TYPE_VALUE( TYPE, v93 ), \ MAKE_TYPE_VALUE( TYPE, v94 ), \ MAKE_TYPE_VALUE( TYPE, v95 ), \ MAKE_TYPE_VALUE( TYPE, v96 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 97 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_ADD( TYPE, v92 ) \ SENUM_ADD( TYPE, v93 ) \ SENUM_ADD( TYPE, v94 ) \ SENUM_ADD( TYPE, v95 ) \ SENUM_ADD( TYPE, v96 ) \ SENUM_END( TYPE, 97 ) #define SENUM_98( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, v92 ), \ MAKE_TYPE_VALUE( TYPE, v93 ), \ MAKE_TYPE_VALUE( TYPE, v94 ), \ MAKE_TYPE_VALUE( TYPE, v95 ), \ MAKE_TYPE_VALUE( TYPE, v96 ), \ MAKE_TYPE_VALUE( TYPE, v97 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 98 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_ADD( TYPE, v92 ) \ SENUM_ADD( TYPE, v93 ) \ SENUM_ADD( TYPE, v94 ) \ SENUM_ADD( TYPE, v95 ) \ SENUM_ADD( TYPE, v96 ) \ SENUM_ADD( TYPE, v97 ) \ SENUM_END( TYPE, 98 ) #define SENUM_99( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, v92 ), \ MAKE_TYPE_VALUE( TYPE, v93 ), \ MAKE_TYPE_VALUE( TYPE, v94 ), \ MAKE_TYPE_VALUE( TYPE, v95 ), \ MAKE_TYPE_VALUE( TYPE, v96 ), \ MAKE_TYPE_VALUE( TYPE, v97 ), \ MAKE_TYPE_VALUE( TYPE, v98 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 99 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_ADD( TYPE, v92 ) \ SENUM_ADD( TYPE, v93 ) \ SENUM_ADD( TYPE, v94 ) \ SENUM_ADD( TYPE, v95 ) \ SENUM_ADD( TYPE, v96 ) \ SENUM_ADD( TYPE, v97 ) \ SENUM_ADD( TYPE, v98 ) \ SENUM_END( TYPE, 99 ) #define SENUM_100( TYPE, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99 ) \ enum TYPE \ { \ MAKE_TYPE_VALUE( TYPE, v0 ), \ MAKE_TYPE_VALUE( TYPE, v1 ), \ MAKE_TYPE_VALUE( TYPE, v2 ), \ MAKE_TYPE_VALUE( TYPE, v3 ), \ MAKE_TYPE_VALUE( TYPE, v4 ), \ MAKE_TYPE_VALUE( TYPE, v5 ), \ MAKE_TYPE_VALUE( TYPE, v6 ), \ MAKE_TYPE_VALUE( TYPE, v7 ), \ MAKE_TYPE_VALUE( TYPE, v8 ), \ MAKE_TYPE_VALUE( TYPE, v9 ), \ MAKE_TYPE_VALUE( TYPE, v10 ), \ MAKE_TYPE_VALUE( TYPE, v11 ), \ MAKE_TYPE_VALUE( TYPE, v12 ), \ MAKE_TYPE_VALUE( TYPE, v13 ), \ MAKE_TYPE_VALUE( TYPE, v14 ), \ MAKE_TYPE_VALUE( TYPE, v15 ), \ MAKE_TYPE_VALUE( TYPE, v16 ), \ MAKE_TYPE_VALUE( TYPE, v17 ), \ MAKE_TYPE_VALUE( TYPE, v18 ), \ MAKE_TYPE_VALUE( TYPE, v19 ), \ MAKE_TYPE_VALUE( TYPE, v20 ), \ MAKE_TYPE_VALUE( TYPE, v21 ), \ MAKE_TYPE_VALUE( TYPE, v22 ), \ MAKE_TYPE_VALUE( TYPE, v23 ), \ MAKE_TYPE_VALUE( TYPE, v24 ), \ MAKE_TYPE_VALUE( TYPE, v25 ), \ MAKE_TYPE_VALUE( TYPE, v26 ), \ MAKE_TYPE_VALUE( TYPE, v27 ), \ MAKE_TYPE_VALUE( TYPE, v28 ), \ MAKE_TYPE_VALUE( TYPE, v29 ), \ MAKE_TYPE_VALUE( TYPE, v30 ), \ MAKE_TYPE_VALUE( TYPE, v31 ), \ MAKE_TYPE_VALUE( TYPE, v32 ), \ MAKE_TYPE_VALUE( TYPE, v33 ), \ MAKE_TYPE_VALUE( TYPE, v34 ), \ MAKE_TYPE_VALUE( TYPE, v35 ), \ MAKE_TYPE_VALUE( TYPE, v36 ), \ MAKE_TYPE_VALUE( TYPE, v37 ), \ MAKE_TYPE_VALUE( TYPE, v38 ), \ MAKE_TYPE_VALUE( TYPE, v39 ), \ MAKE_TYPE_VALUE( TYPE, v40 ), \ MAKE_TYPE_VALUE( TYPE, v41 ), \ MAKE_TYPE_VALUE( TYPE, v42 ), \ MAKE_TYPE_VALUE( TYPE, v43 ), \ MAKE_TYPE_VALUE( TYPE, v44 ), \ MAKE_TYPE_VALUE( TYPE, v45 ), \ MAKE_TYPE_VALUE( TYPE, v46 ), \ MAKE_TYPE_VALUE( TYPE, v47 ), \ MAKE_TYPE_VALUE( TYPE, v48 ), \ MAKE_TYPE_VALUE( TYPE, v49 ), \ MAKE_TYPE_VALUE( TYPE, v50 ), \ MAKE_TYPE_VALUE( TYPE, v51 ), \ MAKE_TYPE_VALUE( TYPE, v52 ), \ MAKE_TYPE_VALUE( TYPE, v53 ), \ MAKE_TYPE_VALUE( TYPE, v54 ), \ MAKE_TYPE_VALUE( TYPE, v55 ), \ MAKE_TYPE_VALUE( TYPE, v56 ), \ MAKE_TYPE_VALUE( TYPE, v57 ), \ MAKE_TYPE_VALUE( TYPE, v58 ), \ MAKE_TYPE_VALUE( TYPE, v59 ), \ MAKE_TYPE_VALUE( TYPE, v60 ), \ MAKE_TYPE_VALUE( TYPE, v61 ), \ MAKE_TYPE_VALUE( TYPE, v62 ), \ MAKE_TYPE_VALUE( TYPE, v63 ), \ MAKE_TYPE_VALUE( TYPE, v64 ), \ MAKE_TYPE_VALUE( TYPE, v65 ), \ MAKE_TYPE_VALUE( TYPE, v66 ), \ MAKE_TYPE_VALUE( TYPE, v67 ), \ MAKE_TYPE_VALUE( TYPE, v68 ), \ MAKE_TYPE_VALUE( TYPE, v69 ), \ MAKE_TYPE_VALUE( TYPE, v70 ), \ MAKE_TYPE_VALUE( TYPE, v71 ), \ MAKE_TYPE_VALUE( TYPE, v72 ), \ MAKE_TYPE_VALUE( TYPE, v73 ), \ MAKE_TYPE_VALUE( TYPE, v74 ), \ MAKE_TYPE_VALUE( TYPE, v75 ), \ MAKE_TYPE_VALUE( TYPE, v76 ), \ MAKE_TYPE_VALUE( TYPE, v77 ), \ MAKE_TYPE_VALUE( TYPE, v78 ), \ MAKE_TYPE_VALUE( TYPE, v79 ), \ MAKE_TYPE_VALUE( TYPE, v80 ), \ MAKE_TYPE_VALUE( TYPE, v81 ), \ MAKE_TYPE_VALUE( TYPE, v82 ), \ MAKE_TYPE_VALUE( TYPE, v83 ), \ MAKE_TYPE_VALUE( TYPE, v84 ), \ MAKE_TYPE_VALUE( TYPE, v85 ), \ MAKE_TYPE_VALUE( TYPE, v86 ), \ MAKE_TYPE_VALUE( TYPE, v87 ), \ MAKE_TYPE_VALUE( TYPE, v88 ), \ MAKE_TYPE_VALUE( TYPE, v89 ), \ MAKE_TYPE_VALUE( TYPE, v90 ), \ MAKE_TYPE_VALUE( TYPE, v91 ), \ MAKE_TYPE_VALUE( TYPE, v92 ), \ MAKE_TYPE_VALUE( TYPE, v93 ), \ MAKE_TYPE_VALUE( TYPE, v94 ), \ MAKE_TYPE_VALUE( TYPE, v95 ), \ MAKE_TYPE_VALUE( TYPE, v96 ), \ MAKE_TYPE_VALUE( TYPE, v97 ), \ MAKE_TYPE_VALUE( TYPE, v98 ), \ MAKE_TYPE_VALUE( TYPE, v99 ), \ MAKE_TYPE_VALUE( TYPE, MAX ), \ }; \ SENUM_BEGIN( TYPE, 100 ) \ SENUM_ADD( TYPE, v0 ) \ SENUM_ADD( TYPE, v1 ) \ SENUM_ADD( TYPE, v2 ) \ SENUM_ADD( TYPE, v3 ) \ SENUM_ADD( TYPE, v4 ) \ SENUM_ADD( TYPE, v5 ) \ SENUM_ADD( TYPE, v6 ) \ SENUM_ADD( TYPE, v7 ) \ SENUM_ADD( TYPE, v8 ) \ SENUM_ADD( TYPE, v9 ) \ SENUM_ADD( TYPE, v10 ) \ SENUM_ADD( TYPE, v11 ) \ SENUM_ADD( TYPE, v12 ) \ SENUM_ADD( TYPE, v13 ) \ SENUM_ADD( TYPE, v14 ) \ SENUM_ADD( TYPE, v15 ) \ SENUM_ADD( TYPE, v16 ) \ SENUM_ADD( TYPE, v17 ) \ SENUM_ADD( TYPE, v18 ) \ SENUM_ADD( TYPE, v19 ) \ SENUM_ADD( TYPE, v20 ) \ SENUM_ADD( TYPE, v21 ) \ SENUM_ADD( TYPE, v22 ) \ SENUM_ADD( TYPE, v23 ) \ SENUM_ADD( TYPE, v24 ) \ SENUM_ADD( TYPE, v25 ) \ SENUM_ADD( TYPE, v26 ) \ SENUM_ADD( TYPE, v27 ) \ SENUM_ADD( TYPE, v28 ) \ SENUM_ADD( TYPE, v29 ) \ SENUM_ADD( TYPE, v30 ) \ SENUM_ADD( TYPE, v31 ) \ SENUM_ADD( TYPE, v32 ) \ SENUM_ADD( TYPE, v33 ) \ SENUM_ADD( TYPE, v34 ) \ SENUM_ADD( TYPE, v35 ) \ SENUM_ADD( TYPE, v36 ) \ SENUM_ADD( TYPE, v37 ) \ SENUM_ADD( TYPE, v38 ) \ SENUM_ADD( TYPE, v39 ) \ SENUM_ADD( TYPE, v40 ) \ SENUM_ADD( TYPE, v41 ) \ SENUM_ADD( TYPE, v42 ) \ SENUM_ADD( TYPE, v43 ) \ SENUM_ADD( TYPE, v44 ) \ SENUM_ADD( TYPE, v45 ) \ SENUM_ADD( TYPE, v46 ) \ SENUM_ADD( TYPE, v47 ) \ SENUM_ADD( TYPE, v48 ) \ SENUM_ADD( TYPE, v49 ) \ SENUM_ADD( TYPE, v50 ) \ SENUM_ADD( TYPE, v51 ) \ SENUM_ADD( TYPE, v52 ) \ SENUM_ADD( TYPE, v53 ) \ SENUM_ADD( TYPE, v54 ) \ SENUM_ADD( TYPE, v55 ) \ SENUM_ADD( TYPE, v56 ) \ SENUM_ADD( TYPE, v57 ) \ SENUM_ADD( TYPE, v58 ) \ SENUM_ADD( TYPE, v59 ) \ SENUM_ADD( TYPE, v60 ) \ SENUM_ADD( TYPE, v61 ) \ SENUM_ADD( TYPE, v62 ) \ SENUM_ADD( TYPE, v63 ) \ SENUM_ADD( TYPE, v64 ) \ SENUM_ADD( TYPE, v65 ) \ SENUM_ADD( TYPE, v66 ) \ SENUM_ADD( TYPE, v67 ) \ SENUM_ADD( TYPE, v68 ) \ SENUM_ADD( TYPE, v69 ) \ SENUM_ADD( TYPE, v70 ) \ SENUM_ADD( TYPE, v71 ) \ SENUM_ADD( TYPE, v72 ) \ SENUM_ADD( TYPE, v73 ) \ SENUM_ADD( TYPE, v74 ) \ SENUM_ADD( TYPE, v75 ) \ SENUM_ADD( TYPE, v76 ) \ SENUM_ADD( TYPE, v77 ) \ SENUM_ADD( TYPE, v78 ) \ SENUM_ADD( TYPE, v79 ) \ SENUM_ADD( TYPE, v80 ) \ SENUM_ADD( TYPE, v81 ) \ SENUM_ADD( TYPE, v82 ) \ SENUM_ADD( TYPE, v83 ) \ SENUM_ADD( TYPE, v84 ) \ SENUM_ADD( TYPE, v85 ) \ SENUM_ADD( TYPE, v86 ) \ SENUM_ADD( TYPE, v87 ) \ SENUM_ADD( TYPE, v88 ) \ SENUM_ADD( TYPE, v89 ) \ SENUM_ADD( TYPE, v90 ) \ SENUM_ADD( TYPE, v91 ) \ SENUM_ADD( TYPE, v92 ) \ SENUM_ADD( TYPE, v93 ) \ SENUM_ADD( TYPE, v94 ) \ SENUM_ADD( TYPE, v95 ) \ SENUM_ADD( TYPE, v96 ) \ SENUM_ADD( TYPE, v97 ) \ SENUM_ADD( TYPE, v98 ) \ SENUM_ADD( TYPE, v99 ) \ SENUM_END( TYPE, 100 )