Brig_new.hpp revision 11308
111308Santhony.gutierrez@amd.com// University of Illinois/NCSA 211308Santhony.gutierrez@amd.com// Open Source License 311308Santhony.gutierrez@amd.com// 411308Santhony.gutierrez@amd.com// Copyright (c) 2013-2015, Advanced Micro Devices, Inc. 511308Santhony.gutierrez@amd.com// All rights reserved. 611308Santhony.gutierrez@amd.com// 711308Santhony.gutierrez@amd.com// Developed by: 811308Santhony.gutierrez@amd.com// 911308Santhony.gutierrez@amd.com// HSA Team 1011308Santhony.gutierrez@amd.com// 1111308Santhony.gutierrez@amd.com// Advanced Micro Devices, Inc 1211308Santhony.gutierrez@amd.com// 1311308Santhony.gutierrez@amd.com// www.amd.com 1411308Santhony.gutierrez@amd.com// 1511308Santhony.gutierrez@amd.com// Permission is hereby granted, free of charge, to any person obtaining a copy of 1611308Santhony.gutierrez@amd.com// this software and associated documentation files (the "Software"), to deal with 1711308Santhony.gutierrez@amd.com// the Software without restriction, including without limitation the rights to 1811308Santhony.gutierrez@amd.com// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 1911308Santhony.gutierrez@amd.com// of the Software, and to permit persons to whom the Software is furnished to do 2011308Santhony.gutierrez@amd.com// so, subject to the following conditions: 2111308Santhony.gutierrez@amd.com// 2211308Santhony.gutierrez@amd.com// * Redistributions of source code must retain the above copyright notice, 2311308Santhony.gutierrez@amd.com// this list of conditions and the following disclaimers. 2411308Santhony.gutierrez@amd.com// 2511308Santhony.gutierrez@amd.com// * Redistributions in binary form must reproduce the above copyright notice, 2611308Santhony.gutierrez@amd.com// this list of conditions and the following disclaimers in the 2711308Santhony.gutierrez@amd.com// documentation and/or other materials provided with the distribution. 2811308Santhony.gutierrez@amd.com// 2911308Santhony.gutierrez@amd.com// * Neither the names of the LLVM Team, University of Illinois at 3011308Santhony.gutierrez@amd.com// Urbana-Champaign, nor the names of its contributors may be used to 3111308Santhony.gutierrez@amd.com// endorse or promote products derived from this Software without specific 3211308Santhony.gutierrez@amd.com// prior written permission. 3311308Santhony.gutierrez@amd.com// 3411308Santhony.gutierrez@amd.com// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 3511308Santhony.gutierrez@amd.com// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 3611308Santhony.gutierrez@amd.com// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 3711308Santhony.gutierrez@amd.com// CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 3811308Santhony.gutierrez@amd.com// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 3911308Santhony.gutierrez@amd.com// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE 4011308Santhony.gutierrez@amd.com// SOFTWARE. 4111308Santhony.gutierrez@amd.com 4211308Santhony.gutierrez@amd.com//.ignore{ 4311308Santhony.gutierrez@amd.com 4411308Santhony.gutierrez@amd.com#ifndef INCLUDED_BRIG_H 4511308Santhony.gutierrez@amd.com#define INCLUDED_BRIG_H 4611308Santhony.gutierrez@amd.com 4711308Santhony.gutierrez@amd.com#include <stdint.h> 4811308Santhony.gutierrez@amd.com 4911308Santhony.gutierrez@amd.comenum BrigAuxDefs { 5011308Santhony.gutierrez@amd.com MAX_OPERANDS_NUM = 6 5111308Santhony.gutierrez@amd.com}; 5211308Santhony.gutierrez@amd.com 5311308Santhony.gutierrez@amd.com//} 5411308Santhony.gutierrez@amd.com 5511308Santhony.gutierrez@amd.comtypedef uint32_t BrigVersion32_t; 5611308Santhony.gutierrez@amd.com 5711308Santhony.gutierrez@amd.comenum BrigVersion { 5811308Santhony.gutierrez@amd.com 5911308Santhony.gutierrez@amd.com //.nowrap 6011308Santhony.gutierrez@amd.com //.nodump 6111308Santhony.gutierrez@amd.com //.nollvm 6211308Santhony.gutierrez@amd.com 6311308Santhony.gutierrez@amd.com BRIG_VERSION_HSAIL_MAJOR = 1, 6411308Santhony.gutierrez@amd.com BRIG_VERSION_HSAIL_MINOR = 0, 6511308Santhony.gutierrez@amd.com BRIG_VERSION_BRIG_MAJOR = 1, 6611308Santhony.gutierrez@amd.com BRIG_VERSION_BRIG_MINOR = 0 6711308Santhony.gutierrez@amd.com}; 6811308Santhony.gutierrez@amd.com 6911308Santhony.gutierrez@amd.comtypedef uint8_t BrigAlignment8_t; //.defValue=BRIG_ALIGNMENT_NONE 7011308Santhony.gutierrez@amd.com 7111308Santhony.gutierrez@amd.comtypedef uint8_t BrigAllocation8_t; //.defValue=BRIG_ALLOCATION_NONE 7211308Santhony.gutierrez@amd.com 7311308Santhony.gutierrez@amd.comtypedef uint8_t BrigAluModifier8_t; 7411308Santhony.gutierrez@amd.com 7511308Santhony.gutierrez@amd.comtypedef uint8_t BrigAtomicOperation8_t; 7611308Santhony.gutierrez@amd.com 7711308Santhony.gutierrez@amd.comtypedef uint32_t BrigCodeOffset32_t; //.defValue=0 //.wtype=ItemRef<Code> 7811308Santhony.gutierrez@amd.com 7911308Santhony.gutierrez@amd.comtypedef uint8_t BrigCompareOperation8_t; 8011308Santhony.gutierrez@amd.com 8111308Santhony.gutierrez@amd.comtypedef uint16_t BrigControlDirective16_t; 8211308Santhony.gutierrez@amd.com 8311308Santhony.gutierrez@amd.comtypedef uint32_t BrigDataOffset32_t; 8411308Santhony.gutierrez@amd.com 8511308Santhony.gutierrez@amd.comtypedef BrigDataOffset32_t BrigDataOffsetCodeList32_t; //.wtype=ListRef<Code> //.defValue=0 8611308Santhony.gutierrez@amd.com 8711308Santhony.gutierrez@amd.comtypedef BrigDataOffset32_t BrigDataOffsetOperandList32_t; //.wtype=ListRef<Operand> //.defValue=0 8811308Santhony.gutierrez@amd.com 8911308Santhony.gutierrez@amd.comtypedef BrigDataOffset32_t BrigDataOffsetString32_t; //.wtype=StrRef //.defValue=0 9011308Santhony.gutierrez@amd.com 9111308Santhony.gutierrez@amd.comtypedef uint8_t BrigExecutableModifier8_t; 9211308Santhony.gutierrez@amd.com 9311308Santhony.gutierrez@amd.comtypedef uint8_t BrigImageChannelOrder8_t; //.defValue=BRIG_CHANNEL_ORDER_UNKNOWN 9411308Santhony.gutierrez@amd.com 9511308Santhony.gutierrez@amd.comtypedef uint8_t BrigImageChannelType8_t; //.defValue=BRIG_CHANNEL_TYPE_UNKNOWN 9611308Santhony.gutierrez@amd.com 9711308Santhony.gutierrez@amd.comtypedef uint8_t BrigImageGeometry8_t; //.defValue=BRIG_GEOMETRY_UNKNOWN 9811308Santhony.gutierrez@amd.com 9911308Santhony.gutierrez@amd.comtypedef uint8_t BrigImageQuery8_t; 10011308Santhony.gutierrez@amd.com 10111308Santhony.gutierrez@amd.comtypedef uint16_t BrigKind16_t; 10211308Santhony.gutierrez@amd.com 10311308Santhony.gutierrez@amd.comtypedef uint8_t BrigLinkage8_t; //.defValue=BRIG_LINKAGE_NONE 10411308Santhony.gutierrez@amd.com 10511308Santhony.gutierrez@amd.comtypedef uint8_t BrigMachineModel8_t; //.defValue=BRIG_MACHINE_LARGE 10611308Santhony.gutierrez@amd.com 10711308Santhony.gutierrez@amd.comtypedef uint8_t BrigMemoryModifier8_t; 10811308Santhony.gutierrez@amd.com 10911308Santhony.gutierrez@amd.comtypedef uint8_t BrigMemoryOrder8_t; //.defValue=BRIG_MEMORY_ORDER_RELAXED 11011308Santhony.gutierrez@amd.com 11111308Santhony.gutierrez@amd.comtypedef uint8_t BrigMemoryScope8_t; //.defValue=BRIG_MEMORY_SCOPE_SYSTEM 11211308Santhony.gutierrez@amd.com 11311308Santhony.gutierrez@amd.comtypedef uint16_t BrigOpcode16_t; 11411308Santhony.gutierrez@amd.com 11511308Santhony.gutierrez@amd.comtypedef uint32_t BrigOperandOffset32_t; //.defValue=0 //.wtype=ItemRef<Operand> 11611308Santhony.gutierrez@amd.com 11711308Santhony.gutierrez@amd.comtypedef uint8_t BrigPack8_t; //.defValue=BRIG_PACK_NONE 11811308Santhony.gutierrez@amd.com 11911308Santhony.gutierrez@amd.comtypedef uint8_t BrigProfile8_t; //.defValue=BRIG_PROFILE_FULL 12011308Santhony.gutierrez@amd.com 12111308Santhony.gutierrez@amd.comtypedef uint16_t BrigRegisterKind16_t; 12211308Santhony.gutierrez@amd.com 12311308Santhony.gutierrez@amd.comtypedef uint8_t BrigRound8_t; //.defValue=BRIG_ROUND_NONE 12411308Santhony.gutierrez@amd.com 12511308Santhony.gutierrez@amd.comtypedef uint8_t BrigSamplerAddressing8_t; //.defValue=BRIG_ADDRESSING_CLAMP_TO_EDGE 12611308Santhony.gutierrez@amd.com 12711308Santhony.gutierrez@amd.comtypedef uint8_t BrigSamplerCoordNormalization8_t; 12811308Santhony.gutierrez@amd.com 12911308Santhony.gutierrez@amd.comtypedef uint8_t BrigSamplerFilter8_t; 13011308Santhony.gutierrez@amd.com 13111308Santhony.gutierrez@amd.comtypedef uint8_t BrigSamplerQuery8_t; 13211308Santhony.gutierrez@amd.com 13311308Santhony.gutierrez@amd.comtypedef uint32_t BrigSectionIndex32_t; 13411308Santhony.gutierrez@amd.com 13511308Santhony.gutierrez@amd.comtypedef uint8_t BrigSegCvtModifier8_t; 13611308Santhony.gutierrez@amd.com 13711308Santhony.gutierrez@amd.comtypedef uint8_t BrigSegment8_t; //.defValue=BRIG_SEGMENT_NONE 13811308Santhony.gutierrez@amd.com 13911308Santhony.gutierrez@amd.comtypedef uint32_t BrigStringOffset32_t; //.defValue=0 //.wtype=StrRef 14011308Santhony.gutierrez@amd.com 14111308Santhony.gutierrez@amd.comtypedef uint16_t BrigType16_t; 14211308Santhony.gutierrez@amd.com 14311308Santhony.gutierrez@amd.comtypedef uint8_t BrigVariableModifier8_t; 14411308Santhony.gutierrez@amd.com 14511308Santhony.gutierrez@amd.comtypedef uint8_t BrigWidth8_t; 14611308Santhony.gutierrez@amd.com 14711308Santhony.gutierrez@amd.comtypedef uint32_t BrigExceptions32_t; 14811308Santhony.gutierrez@amd.com 14911308Santhony.gutierrez@amd.comenum BrigKind { 15011308Santhony.gutierrez@amd.com 15111308Santhony.gutierrez@amd.com //.nollvm 15211308Santhony.gutierrez@amd.com // 15311308Santhony.gutierrez@amd.com //.wname={ s/^BRIG_KIND//; MACRO2Name($_) } 15411308Santhony.gutierrez@amd.com //.mnemo=$wname{ $wname } 15511308Santhony.gutierrez@amd.com // 15611308Santhony.gutierrez@amd.com //.sizeof=$wname{ "sizeof(".$structs->{"Brig".$wname}->{rawbrig}.")" } 15711308Santhony.gutierrez@amd.com //.sizeof_switch //.sizeof_proto="int size_of_brig_record(unsigned arg)" //.sizeof_default="return -1" 15811308Santhony.gutierrez@amd.com // 15911308Santhony.gutierrez@amd.com //.isBodyOnly={ "false" } 16011308Santhony.gutierrez@amd.com //.isBodyOnly_switch //.isBodyOnly_proto="bool isBodyOnly(Directive d)" //.isBodyOnly_arg="d.kind()" 16111308Santhony.gutierrez@amd.com //.isBodyOnly_default="assert(false); return false" 16211308Santhony.gutierrez@amd.com // 16311308Santhony.gutierrez@amd.com //.isToplevelOnly={ "false" } 16411308Santhony.gutierrez@amd.com //.isToplevelOnly_switch //.isToplevelOnly_proto="bool isToplevelOnly(Directive d)" //.isToplevelOnly_arg="d.kind()" 16511308Santhony.gutierrez@amd.com //.isToplevelOnly_default="assert(false); return false" 16611308Santhony.gutierrez@amd.com 16711308Santhony.gutierrez@amd.com BRIG_KIND_NONE = 0x0000, //.skip 16811308Santhony.gutierrez@amd.com 16911308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_BEGIN = 0x1000, //.skip 17011308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_ARG_BLOCK_END = 0x1000, //.isBodyOnly=true 17111308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_ARG_BLOCK_START = 0x1001, //.isBodyOnly=true 17211308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_COMMENT = 0x1002, 17311308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_CONTROL = 0x1003, //.isBodyOnly=true 17411308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_EXTENSION = 0x1004, //.isToplevelOnly=true 17511308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_FBARRIER = 0x1005, 17611308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_FUNCTION = 0x1006, //.isToplevelOnly=true 17711308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_INDIRECT_FUNCTION = 0x1007, //.isToplevelOnly=true 17811308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_KERNEL = 0x1008, //.isToplevelOnly=true 17911308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_LABEL = 0x1009, //.isBodyOnly=true 18011308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_LOC = 0x100a, 18111308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_MODULE = 0x100b, //.isToplevelOnly=true 18211308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_PRAGMA = 0x100c, 18311308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_SIGNATURE = 0x100d, //.isToplevelOnly=true 18411308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_VARIABLE = 0x100e, 18511308Santhony.gutierrez@amd.com BRIG_KIND_DIRECTIVE_END = 0x100f, //.skip 18611308Santhony.gutierrez@amd.com 18711308Santhony.gutierrez@amd.com BRIG_KIND_INST_BEGIN = 0x2000, //.skip 18811308Santhony.gutierrez@amd.com BRIG_KIND_INST_ADDR = 0x2000, 18911308Santhony.gutierrez@amd.com BRIG_KIND_INST_ATOMIC = 0x2001, 19011308Santhony.gutierrez@amd.com BRIG_KIND_INST_BASIC = 0x2002, 19111308Santhony.gutierrez@amd.com BRIG_KIND_INST_BR = 0x2003, 19211308Santhony.gutierrez@amd.com BRIG_KIND_INST_CMP = 0x2004, 19311308Santhony.gutierrez@amd.com BRIG_KIND_INST_CVT = 0x2005, 19411308Santhony.gutierrez@amd.com BRIG_KIND_INST_IMAGE = 0x2006, 19511308Santhony.gutierrez@amd.com BRIG_KIND_INST_LANE = 0x2007, 19611308Santhony.gutierrez@amd.com BRIG_KIND_INST_MEM = 0x2008, 19711308Santhony.gutierrez@amd.com BRIG_KIND_INST_MEM_FENCE = 0x2009, 19811308Santhony.gutierrez@amd.com BRIG_KIND_INST_MOD = 0x200a, 19911308Santhony.gutierrez@amd.com BRIG_KIND_INST_QUERY_IMAGE = 0x200b, 20011308Santhony.gutierrez@amd.com BRIG_KIND_INST_QUERY_SAMPLER = 0x200c, 20111308Santhony.gutierrez@amd.com BRIG_KIND_INST_QUEUE = 0x200d, 20211308Santhony.gutierrez@amd.com BRIG_KIND_INST_SEG = 0x200e, 20311308Santhony.gutierrez@amd.com BRIG_KIND_INST_SEG_CVT = 0x200f, 20411308Santhony.gutierrez@amd.com BRIG_KIND_INST_SIGNAL = 0x2010, 20511308Santhony.gutierrez@amd.com BRIG_KIND_INST_SOURCE_TYPE = 0x2011, 20611308Santhony.gutierrez@amd.com BRIG_KIND_INST_END = 0x2012, //.skip 20711308Santhony.gutierrez@amd.com 20811308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_BEGIN = 0x3000, //.skip 20911308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_ADDRESS = 0x3000, 21011308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_ALIGN = 0x3001, 21111308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_CODE_LIST = 0x3002, 21211308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_CODE_REF = 0x3003, 21311308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_CONSTANT_BYTES = 0x3004, 21411308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_RESERVED = 0x3005, //.skip 21511308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_CONSTANT_IMAGE = 0x3006, 21611308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_CONSTANT_OPERAND_LIST = 0x3007, 21711308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_CONSTANT_SAMPLER = 0x3008, 21811308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_OPERAND_LIST = 0x3009, 21911308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_REGISTER = 0x300a, 22011308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_STRING = 0x300b, 22111308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_WAVESIZE = 0x300c, 22211308Santhony.gutierrez@amd.com BRIG_KIND_OPERAND_END = 0x300d //.skip 22311308Santhony.gutierrez@amd.com}; 22411308Santhony.gutierrez@amd.com 22511308Santhony.gutierrez@amd.comenum BrigAlignment { 22611308Santhony.gutierrez@amd.com 22711308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_ALIGNMENT_//; lc } 22811308Santhony.gutierrez@amd.com //.mnemo_proto="const char* align2str(unsigned arg)" 22911308Santhony.gutierrez@amd.com // 23011308Santhony.gutierrez@amd.com //.bytes={ /(\d+)/ ? $1 : undef } 23111308Santhony.gutierrez@amd.com //.bytes_switch //.bytes_proto="unsigned align2num(unsigned arg)" //.bytes_default="assert(false); return -1" 23211308Santhony.gutierrez@amd.com // 23311308Santhony.gutierrez@amd.com //.rbytes=$bytes{ $bytes } 23411308Santhony.gutierrez@amd.com //.rbytes_switch //.rbytes_reverse //.rbytes_proto="BrigAlignment num2align(uint64_t arg)" 23511308Santhony.gutierrez@amd.com //.rbytes_default="return BRIG_ALIGNMENT_LAST" 23611308Santhony.gutierrez@amd.com // 23711308Santhony.gutierrez@amd.com //.print=$bytes{ $bytes>1 ? "_align($bytes)" : "" } 23811308Santhony.gutierrez@amd.com 23911308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_NONE = 0, //.no_mnemo 24011308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_1 = 1, //.mnemo="" 24111308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_2 = 2, 24211308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_4 = 3, 24311308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_8 = 4, 24411308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_16 = 5, 24511308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_32 = 6, 24611308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_64 = 7, 24711308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_128 = 8, 24811308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_256 = 9, 24911308Santhony.gutierrez@amd.com 25011308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_LAST, //.skip 25111308Santhony.gutierrez@amd.com BRIG_ALIGNMENT_MAX = BRIG_ALIGNMENT_LAST - 1 //.skip 25211308Santhony.gutierrez@amd.com}; 25311308Santhony.gutierrez@amd.com 25411308Santhony.gutierrez@amd.comenum BrigAllocation { 25511308Santhony.gutierrez@amd.com 25611308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_ALLOCATION_//;lc } 25711308Santhony.gutierrez@amd.com //.mnemo_token=EAllocKind 25811308Santhony.gutierrez@amd.com 25911308Santhony.gutierrez@amd.com BRIG_ALLOCATION_NONE = 0, //.mnemo="" 26011308Santhony.gutierrez@amd.com BRIG_ALLOCATION_PROGRAM = 1, 26111308Santhony.gutierrez@amd.com BRIG_ALLOCATION_AGENT = 2, 26211308Santhony.gutierrez@amd.com BRIG_ALLOCATION_AUTOMATIC = 3 26311308Santhony.gutierrez@amd.com}; 26411308Santhony.gutierrez@amd.com 26511308Santhony.gutierrez@amd.comenum BrigAluModifierMask { 26611308Santhony.gutierrez@amd.com BRIG_ALU_FTZ = 1 26711308Santhony.gutierrez@amd.com}; 26811308Santhony.gutierrez@amd.com 26911308Santhony.gutierrez@amd.comenum BrigAtomicOperation { 27011308Santhony.gutierrez@amd.com 27111308Santhony.gutierrez@amd.com //.tdcaption="Atomic Operations" 27211308Santhony.gutierrez@amd.com // 27311308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_ATOMIC_//;lc } 27411308Santhony.gutierrez@amd.com //.mnemo_token=_EMAtomicOp 27511308Santhony.gutierrez@amd.com //.mnemo_context=EInstModifierInstAtomicContext 27611308Santhony.gutierrez@amd.com // 27711308Santhony.gutierrez@amd.com //.print=$mnemo{ "_$mnemo" } 27811308Santhony.gutierrez@amd.com 27911308Santhony.gutierrez@amd.com BRIG_ATOMIC_ADD = 0, 28011308Santhony.gutierrez@amd.com BRIG_ATOMIC_AND = 1, 28111308Santhony.gutierrez@amd.com BRIG_ATOMIC_CAS = 2, 28211308Santhony.gutierrez@amd.com BRIG_ATOMIC_EXCH = 3, 28311308Santhony.gutierrez@amd.com BRIG_ATOMIC_LD = 4, 28411308Santhony.gutierrez@amd.com BRIG_ATOMIC_MAX = 5, 28511308Santhony.gutierrez@amd.com BRIG_ATOMIC_MIN = 6, 28611308Santhony.gutierrez@amd.com BRIG_ATOMIC_OR = 7, 28711308Santhony.gutierrez@amd.com BRIG_ATOMIC_ST = 8, 28811308Santhony.gutierrez@amd.com BRIG_ATOMIC_SUB = 9, 28911308Santhony.gutierrez@amd.com BRIG_ATOMIC_WRAPDEC = 10, 29011308Santhony.gutierrez@amd.com BRIG_ATOMIC_WRAPINC = 11, 29111308Santhony.gutierrez@amd.com BRIG_ATOMIC_XOR = 12, 29211308Santhony.gutierrez@amd.com BRIG_ATOMIC_WAIT_EQ = 13, 29311308Santhony.gutierrez@amd.com BRIG_ATOMIC_WAIT_NE = 14, 29411308Santhony.gutierrez@amd.com BRIG_ATOMIC_WAIT_LT = 15, 29511308Santhony.gutierrez@amd.com BRIG_ATOMIC_WAIT_GTE = 16, 29611308Santhony.gutierrez@amd.com BRIG_ATOMIC_WAITTIMEOUT_EQ = 17, 29711308Santhony.gutierrez@amd.com BRIG_ATOMIC_WAITTIMEOUT_NE = 18, 29811308Santhony.gutierrez@amd.com BRIG_ATOMIC_WAITTIMEOUT_LT = 19, 29911308Santhony.gutierrez@amd.com BRIG_ATOMIC_WAITTIMEOUT_GTE = 20 30011308Santhony.gutierrez@amd.com}; 30111308Santhony.gutierrez@amd.com 30211308Santhony.gutierrez@amd.comenum BrigCompareOperation { 30311308Santhony.gutierrez@amd.com 30411308Santhony.gutierrez@amd.com //.tdcaption="Comparison Operators" 30511308Santhony.gutierrez@amd.com // 30611308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_COMPARE_//;lc } 30711308Santhony.gutierrez@amd.com //.mnemo_token=_EMCompare 30811308Santhony.gutierrez@amd.com // 30911308Santhony.gutierrez@amd.com //.print=$mnemo{ "_$mnemo" } 31011308Santhony.gutierrez@amd.com 31111308Santhony.gutierrez@amd.com BRIG_COMPARE_EQ = 0, 31211308Santhony.gutierrez@amd.com BRIG_COMPARE_NE = 1, 31311308Santhony.gutierrez@amd.com BRIG_COMPARE_LT = 2, 31411308Santhony.gutierrez@amd.com BRIG_COMPARE_LE = 3, 31511308Santhony.gutierrez@amd.com BRIG_COMPARE_GT = 4, 31611308Santhony.gutierrez@amd.com BRIG_COMPARE_GE = 5, 31711308Santhony.gutierrez@amd.com BRIG_COMPARE_EQU = 6, 31811308Santhony.gutierrez@amd.com BRIG_COMPARE_NEU = 7, 31911308Santhony.gutierrez@amd.com BRIG_COMPARE_LTU = 8, 32011308Santhony.gutierrez@amd.com BRIG_COMPARE_LEU = 9, 32111308Santhony.gutierrez@amd.com BRIG_COMPARE_GTU = 10, 32211308Santhony.gutierrez@amd.com BRIG_COMPARE_GEU = 11, 32311308Santhony.gutierrez@amd.com BRIG_COMPARE_NUM = 12, 32411308Santhony.gutierrez@amd.com BRIG_COMPARE_NAN = 13, 32511308Santhony.gutierrez@amd.com BRIG_COMPARE_SEQ = 14, 32611308Santhony.gutierrez@amd.com BRIG_COMPARE_SNE = 15, 32711308Santhony.gutierrez@amd.com BRIG_COMPARE_SLT = 16, 32811308Santhony.gutierrez@amd.com BRIG_COMPARE_SLE = 17, 32911308Santhony.gutierrez@amd.com BRIG_COMPARE_SGT = 18, 33011308Santhony.gutierrez@amd.com BRIG_COMPARE_SGE = 19, 33111308Santhony.gutierrez@amd.com BRIG_COMPARE_SGEU = 20, 33211308Santhony.gutierrez@amd.com BRIG_COMPARE_SEQU = 21, 33311308Santhony.gutierrez@amd.com BRIG_COMPARE_SNEU = 22, 33411308Santhony.gutierrez@amd.com BRIG_COMPARE_SLTU = 23, 33511308Santhony.gutierrez@amd.com BRIG_COMPARE_SLEU = 24, 33611308Santhony.gutierrez@amd.com BRIG_COMPARE_SNUM = 25, 33711308Santhony.gutierrez@amd.com BRIG_COMPARE_SNAN = 26, 33811308Santhony.gutierrez@amd.com BRIG_COMPARE_SGTU = 27 33911308Santhony.gutierrez@amd.com}; 34011308Santhony.gutierrez@amd.com 34111308Santhony.gutierrez@amd.comenum BrigControlDirective { 34211308Santhony.gutierrez@amd.com 34311308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_CONTROL_//;lc } 34411308Santhony.gutierrez@amd.com //.mnemo_token=EControl 34511308Santhony.gutierrez@amd.com // 34611308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 34711308Santhony.gutierrez@amd.com 34811308Santhony.gutierrez@amd.com BRIG_CONTROL_NONE = 0, //.skip 34911308Santhony.gutierrez@amd.com BRIG_CONTROL_ENABLEBREAKEXCEPTIONS = 1, 35011308Santhony.gutierrez@amd.com BRIG_CONTROL_ENABLEDETECTEXCEPTIONS = 2, 35111308Santhony.gutierrez@amd.com BRIG_CONTROL_MAXDYNAMICGROUPSIZE = 3, 35211308Santhony.gutierrez@amd.com BRIG_CONTROL_MAXFLATGRIDSIZE = 4, 35311308Santhony.gutierrez@amd.com BRIG_CONTROL_MAXFLATWORKGROUPSIZE = 5, 35411308Santhony.gutierrez@amd.com BRIG_CONTROL_REQUIREDDIM = 6, 35511308Santhony.gutierrez@amd.com BRIG_CONTROL_REQUIREDGRIDSIZE = 7, 35611308Santhony.gutierrez@amd.com BRIG_CONTROL_REQUIREDWORKGROUPSIZE = 8, 35711308Santhony.gutierrez@amd.com BRIG_CONTROL_REQUIRENOPARTIALWORKGROUPS = 9 35811308Santhony.gutierrez@amd.com}; 35911308Santhony.gutierrez@amd.com 36011308Santhony.gutierrez@amd.comenum BrigExecutableModifierMask { 36111308Santhony.gutierrez@amd.com //.nodump 36211308Santhony.gutierrez@amd.com BRIG_EXECUTABLE_DEFINITION = 1 36311308Santhony.gutierrez@amd.com}; 36411308Santhony.gutierrez@amd.com 36511308Santhony.gutierrez@amd.comenum BrigImageChannelOrder { 36611308Santhony.gutierrez@amd.com 36711308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_CHANNEL_ORDER_?//;lc } 36811308Santhony.gutierrez@amd.com //.mnemo_token=EImageOrder 36911308Santhony.gutierrez@amd.com //.mnemo_context=EImageOrderContext 37011308Santhony.gutierrez@amd.com // 37111308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 37211308Santhony.gutierrez@amd.com 37311308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_A = 0, 37411308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_R = 1, 37511308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_RX = 2, 37611308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_RG = 3, 37711308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_RGX = 4, 37811308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_RA = 5, 37911308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_RGB = 6, 38011308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_RGBX = 7, 38111308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_RGBA = 8, 38211308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_BGRA = 9, 38311308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_ARGB = 10, 38411308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_ABGR = 11, 38511308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_SRGB = 12, 38611308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_SRGBX = 13, 38711308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_SRGBA = 14, 38811308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_SBGRA = 15, 38911308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_INTENSITY = 16, 39011308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_LUMINANCE = 17, 39111308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_DEPTH = 18, 39211308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_DEPTH_STENCIL = 19, 39311308Santhony.gutierrez@amd.com 39411308Santhony.gutierrez@amd.com // used internally 39511308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_UNKNOWN, //.mnemo="" // used when no order is specified 39611308Santhony.gutierrez@amd.com 39711308Santhony.gutierrez@amd.com BRIG_CHANNEL_ORDER_FIRST_USER_DEFINED = 128 //.skip 39811308Santhony.gutierrez@amd.com 39911308Santhony.gutierrez@amd.com}; 40011308Santhony.gutierrez@amd.com 40111308Santhony.gutierrez@amd.comenum BrigImageChannelType { 40211308Santhony.gutierrez@amd.com 40311308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_CHANNEL_TYPE_//;lc } 40411308Santhony.gutierrez@amd.com //.mnemo_token=EImageFormat 40511308Santhony.gutierrez@amd.com // 40611308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 40711308Santhony.gutierrez@amd.com 40811308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_SNORM_INT8 = 0, 40911308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_SNORM_INT16 = 1, 41011308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNORM_INT8 = 2, 41111308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNORM_INT16 = 3, 41211308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNORM_INT24 = 4, 41311308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNORM_SHORT_555 = 5, 41411308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNORM_SHORT_565 = 6, 41511308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNORM_INT_101010 = 7, 41611308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_SIGNED_INT8 = 8, 41711308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_SIGNED_INT16 = 9, 41811308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_SIGNED_INT32 = 10, 41911308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNSIGNED_INT8 = 11, 42011308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNSIGNED_INT16 = 12, 42111308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNSIGNED_INT32 = 13, 42211308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_HALF_FLOAT = 14, 42311308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_FLOAT = 15, 42411308Santhony.gutierrez@amd.com 42511308Santhony.gutierrez@amd.com // used internally 42611308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_UNKNOWN, //.mnemo="" 42711308Santhony.gutierrez@amd.com 42811308Santhony.gutierrez@amd.com BRIG_CHANNEL_TYPE_FIRST_USER_DEFINED = 128 //.skip 42911308Santhony.gutierrez@amd.com}; 43011308Santhony.gutierrez@amd.com 43111308Santhony.gutierrez@amd.comenum BrigImageGeometry { 43211308Santhony.gutierrez@amd.com 43311308Santhony.gutierrez@amd.com //.tdcaption="Geometry" 43411308Santhony.gutierrez@amd.com // 43511308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_GEOMETRY_//;lc } 43611308Santhony.gutierrez@amd.com //.mnemo_token=EImageGeometry 43711308Santhony.gutierrez@amd.com // 43811308Santhony.gutierrez@amd.com //.dim={/_([0-9]+D)(A)?/ ? $1+(defined $2?1:0) : undef} 43911308Santhony.gutierrez@amd.com //.dim_switch //.dim_proto="unsigned getBrigGeometryDim(unsigned geo)" //.dim_arg="geo" 44011308Santhony.gutierrez@amd.com //.dim_default="assert(0); return 0" 44111308Santhony.gutierrez@amd.com // 44211308Santhony.gutierrez@amd.com //.depth={/DEPTH$/?"true":"false"} 44311308Santhony.gutierrez@amd.com //.depth_switch //.depth_proto="bool isBrigGeometryDepth(unsigned geo)" //.depth_arg="geo" 44411308Santhony.gutierrez@amd.com //.depth_default="return false" 44511308Santhony.gutierrez@amd.com 44611308Santhony.gutierrez@amd.com BRIG_GEOMETRY_1D = 0, 44711308Santhony.gutierrez@amd.com BRIG_GEOMETRY_2D = 1, 44811308Santhony.gutierrez@amd.com BRIG_GEOMETRY_3D = 2, 44911308Santhony.gutierrez@amd.com BRIG_GEOMETRY_1DA = 3, 45011308Santhony.gutierrez@amd.com BRIG_GEOMETRY_2DA = 4, 45111308Santhony.gutierrez@amd.com BRIG_GEOMETRY_1DB = 5, 45211308Santhony.gutierrez@amd.com BRIG_GEOMETRY_2DDEPTH = 6, 45311308Santhony.gutierrez@amd.com BRIG_GEOMETRY_2DADEPTH = 7, 45411308Santhony.gutierrez@amd.com 45511308Santhony.gutierrez@amd.com // used internally 45611308Santhony.gutierrez@amd.com BRIG_GEOMETRY_UNKNOWN, //.mnemo="" 45711308Santhony.gutierrez@amd.com 45811308Santhony.gutierrez@amd.com BRIG_GEOMETRY_FIRST_USER_DEFINED = 128 //.skip 45911308Santhony.gutierrez@amd.com}; 46011308Santhony.gutierrez@amd.com 46111308Santhony.gutierrez@amd.comenum BrigImageQuery { 46211308Santhony.gutierrez@amd.com 46311308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_IMAGE_QUERY_//;lc } 46411308Santhony.gutierrez@amd.com // 46511308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 46611308Santhony.gutierrez@amd.com 46711308Santhony.gutierrez@amd.com BRIG_IMAGE_QUERY_WIDTH = 0, 46811308Santhony.gutierrez@amd.com BRIG_IMAGE_QUERY_HEIGHT = 1, 46911308Santhony.gutierrez@amd.com BRIG_IMAGE_QUERY_DEPTH = 2, 47011308Santhony.gutierrez@amd.com BRIG_IMAGE_QUERY_ARRAY = 3, 47111308Santhony.gutierrez@amd.com BRIG_IMAGE_QUERY_CHANNELORDER = 4, 47211308Santhony.gutierrez@amd.com BRIG_IMAGE_QUERY_CHANNELTYPE = 5, 47311308Santhony.gutierrez@amd.com BRIG_IMAGE_QUERY_NUMMIPLEVELS = 6 47411308Santhony.gutierrez@amd.com}; 47511308Santhony.gutierrez@amd.com 47611308Santhony.gutierrez@amd.comenum BrigLinkage { 47711308Santhony.gutierrez@amd.com 47811308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_LINKAGE_//;s/NONE//;lc } 47911308Santhony.gutierrez@amd.com 48011308Santhony.gutierrez@amd.com BRIG_LINKAGE_NONE = 0, 48111308Santhony.gutierrez@amd.com BRIG_LINKAGE_PROGRAM = 1, 48211308Santhony.gutierrez@amd.com BRIG_LINKAGE_MODULE = 2, 48311308Santhony.gutierrez@amd.com BRIG_LINKAGE_FUNCTION = 3, 48411308Santhony.gutierrez@amd.com BRIG_LINKAGE_ARG = 4 48511308Santhony.gutierrez@amd.com}; 48611308Santhony.gutierrez@amd.com 48711308Santhony.gutierrez@amd.comenum BrigMachineModel { 48811308Santhony.gutierrez@amd.com 48911308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_MACHINE_//; '$'.lc } 49011308Santhony.gutierrez@amd.com //.mnemo_token=ETargetMachine 49111308Santhony.gutierrez@amd.com // 49211308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 49311308Santhony.gutierrez@amd.com 49411308Santhony.gutierrez@amd.com BRIG_MACHINE_SMALL = 0, 49511308Santhony.gutierrez@amd.com BRIG_MACHINE_LARGE = 1, 49611308Santhony.gutierrez@amd.com 49711308Santhony.gutierrez@amd.com BRIG_MACHINE_UNDEF = 2 //.skip 49811308Santhony.gutierrez@amd.com}; 49911308Santhony.gutierrez@amd.com 50011308Santhony.gutierrez@amd.comenum BrigMemoryModifierMask { //.tddef=0 50111308Santhony.gutierrez@amd.com BRIG_MEMORY_CONST = 1 50211308Santhony.gutierrez@amd.com}; 50311308Santhony.gutierrez@amd.com 50411308Santhony.gutierrez@amd.comenum BrigMemoryOrder { 50511308Santhony.gutierrez@amd.com 50611308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_MEMORY_ORDER_//; lc } 50711308Santhony.gutierrez@amd.com //.mnemo_token=_EMMemoryOrder 50811308Santhony.gutierrez@amd.com // 50911308Santhony.gutierrez@amd.com //.print=$mnemo{ "_$mnemo" } 51011308Santhony.gutierrez@amd.com 51111308Santhony.gutierrez@amd.com BRIG_MEMORY_ORDER_NONE = 0, //.mnemo="" 51211308Santhony.gutierrez@amd.com BRIG_MEMORY_ORDER_RELAXED = 1, //.mnemo=rlx 51311308Santhony.gutierrez@amd.com BRIG_MEMORY_ORDER_SC_ACQUIRE = 2, //.mnemo=scacq 51411308Santhony.gutierrez@amd.com BRIG_MEMORY_ORDER_SC_RELEASE = 3, //.mnemo=screl 51511308Santhony.gutierrez@amd.com BRIG_MEMORY_ORDER_SC_ACQUIRE_RELEASE = 4, //.mnemo=scar 51611308Santhony.gutierrez@amd.com 51711308Santhony.gutierrez@amd.com BRIG_MEMORY_ORDER_LAST = 5 //.skip 51811308Santhony.gutierrez@amd.com}; 51911308Santhony.gutierrez@amd.com 52011308Santhony.gutierrez@amd.comenum BrigMemoryScope { 52111308Santhony.gutierrez@amd.com 52211308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_MEMORY_SCOPE_//; lc } 52311308Santhony.gutierrez@amd.com //.mnemo_token=_EMMemoryScope 52411308Santhony.gutierrez@amd.com // 52511308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 52611308Santhony.gutierrez@amd.com 52711308Santhony.gutierrez@amd.com BRIG_MEMORY_SCOPE_NONE = 0, //.mnemo="" 52811308Santhony.gutierrez@amd.com BRIG_MEMORY_SCOPE_WORKITEM = 1, //.mnemo="" 52911308Santhony.gutierrez@amd.com BRIG_MEMORY_SCOPE_WAVEFRONT = 2, //.mnemo=wave 53011308Santhony.gutierrez@amd.com BRIG_MEMORY_SCOPE_WORKGROUP = 3, //.mnemo=wg 53111308Santhony.gutierrez@amd.com BRIG_MEMORY_SCOPE_AGENT = 4, //.mnemo=agent 53211308Santhony.gutierrez@amd.com BRIG_MEMORY_SCOPE_SYSTEM = 5, //.mnemo=system 53311308Santhony.gutierrez@amd.com 53411308Santhony.gutierrez@amd.com BRIG_MEMORY_SCOPE_LAST = 6 //.skip 53511308Santhony.gutierrez@amd.com}; 53611308Santhony.gutierrez@amd.com 53711308Santhony.gutierrez@amd.comenum BrigOpcode { 53811308Santhony.gutierrez@amd.com 53911308Santhony.gutierrez@amd.com //.tdcaption="Instruction Opcodes" 54011308Santhony.gutierrez@amd.com // 54111308Santhony.gutierrez@amd.com //.k={ "BASIC" } 54211308Santhony.gutierrez@amd.com //.pscode=$k{ MACRO2Name("_".$k) } 54311308Santhony.gutierrez@amd.com //.opcodeparser=$pscode{ return $pscode && "parseMnemo$pscode" } 54411308Santhony.gutierrez@amd.com //.opcodeparser_incfile=ParserUtilities 54511308Santhony.gutierrez@amd.com //.opcodeparser_switch //.opcodeparser_proto="OpcodeParser getOpcodeParser(BrigOpcode16_t arg)" //.opcodeparser_default="return parseMnemoBasic" 54611308Santhony.gutierrez@amd.com // 54711308Santhony.gutierrez@amd.com //.psopnd={undef} 54811308Santhony.gutierrez@amd.com //.opndparser=$psopnd{ return $psopnd && "&Parser::parse$psopnd" } 54911308Santhony.gutierrez@amd.com //.opndparser_incfile=ParserUtilities 55011308Santhony.gutierrez@amd.com //.opndparser_switch //.opndparser_proto="Parser::OperandParser Parser::getOperandParser(BrigOpcode16_t arg)" //.opndparser_default="return &Parser::parseOperands" 55111308Santhony.gutierrez@amd.com // 55211308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_OPCODE_//; s/GCN([^_])/GCN_$1/; lc } 55311308Santhony.gutierrez@amd.com //.mnemo_scanner=Instructions //.mnemo_token=EInstruction 55411308Santhony.gutierrez@amd.com //.mnemo_context=EDefaultContext 55511308Santhony.gutierrez@amd.com // 55611308Santhony.gutierrez@amd.com //.has_memory_order={undef} 55711308Santhony.gutierrez@amd.com //.semsupport=$has_memory_order{ return $has_memory_order && "true" } 55811308Santhony.gutierrez@amd.com // 55911308Santhony.gutierrez@amd.com //.hasType=$k{ return ($k and $k eq "BASIC_NO_TYPE") ? "false" : undef; } 56011308Santhony.gutierrez@amd.com //.hasType_switch //.hasType_proto="bool instHasType(BrigOpcode16_t arg)" //.hasType_default="return true" 56111308Santhony.gutierrez@amd.com // 56211308Santhony.gutierrez@amd.com //.opcodevis=$pscode{ s/^BRIG_OPCODE_//; sprintf("%-47s(","vis.visitOpcode_".$_) . ($pscode =~m/^(BasicOrMod|Nop)$/? "inst" : "HSAIL_ASM::Inst". ($pscode=~m/BasicNoType/? "Basic":$pscode) ."(inst)").")" } 56311308Santhony.gutierrez@amd.com //.opcodevis_switch //.opcodevis_proto="template <typename RetType, typename Visitor> RetType visitOpcode_gen(HSAIL_ASM::Inst inst, Visitor& vis)" 56411308Santhony.gutierrez@amd.com //.opcodevis_arg="inst.opcode()" //.opcodevis_default="return RetType()" 56511308Santhony.gutierrez@amd.com //.opcodevis_incfile=ItemUtils 56611308Santhony.gutierrez@amd.com // 56711308Santhony.gutierrez@amd.com //.ftz=$k{ return ($k eq "BASIC_OR_MOD" or $k eq "CMP" or $k eq "CVT") ? "true" : undef } 56811308Santhony.gutierrez@amd.com //.ftz_incfile=ItemUtils //.ftz_switch //.ftz_proto="inline bool instSupportsFtz(BrigOpcode16_t arg)" //.ftz_default="return false" 56911308Santhony.gutierrez@amd.com // 57011308Santhony.gutierrez@amd.com //.vecOpndIndex={undef} 57111308Santhony.gutierrez@amd.com //.vecOpndIndex_switch //.vecOpndIndex_proto="int vecOpndIndex(BrigOpcode16_t arg)" //.vecOpndIndex_default="return -1" 57211308Santhony.gutierrez@amd.com //.vecOpndIndex_incfile=ParserUtilities 57311308Santhony.gutierrez@amd.com // 57411308Santhony.gutierrez@amd.com //.numdst={undef} 57511308Santhony.gutierrez@amd.com //.numdst_switch //.numdst_proto="int instNumDstOperands(BrigOpcode16_t arg)" //.numdst_default="return 1" 57611308Santhony.gutierrez@amd.com // 57711308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 57811308Santhony.gutierrez@amd.com 57911308Santhony.gutierrez@amd.com BRIG_OPCODE_NOP = 0, //.k=NOP //.hasType=false 58011308Santhony.gutierrez@amd.com BRIG_OPCODE_ABS = 1, //.k=BASIC_OR_MOD 58111308Santhony.gutierrez@amd.com BRIG_OPCODE_ADD = 2, //.k=BASIC_OR_MOD 58211308Santhony.gutierrez@amd.com BRIG_OPCODE_BORROW = 3, 58311308Santhony.gutierrez@amd.com BRIG_OPCODE_CARRY = 4, 58411308Santhony.gutierrez@amd.com BRIG_OPCODE_CEIL = 5, //.k=BASIC_OR_MOD 58511308Santhony.gutierrez@amd.com BRIG_OPCODE_COPYSIGN = 6, //.k=BASIC_OR_MOD 58611308Santhony.gutierrez@amd.com BRIG_OPCODE_DIV = 7, //.k=BASIC_OR_MOD 58711308Santhony.gutierrez@amd.com BRIG_OPCODE_FLOOR = 8, //.k=BASIC_OR_MOD 58811308Santhony.gutierrez@amd.com BRIG_OPCODE_FMA = 9, //.k=BASIC_OR_MOD 58911308Santhony.gutierrez@amd.com BRIG_OPCODE_FRACT = 10, //.k=BASIC_OR_MOD 59011308Santhony.gutierrez@amd.com BRIG_OPCODE_MAD = 11, //.k=BASIC_OR_MOD 59111308Santhony.gutierrez@amd.com BRIG_OPCODE_MAX = 12, //.k=BASIC_OR_MOD 59211308Santhony.gutierrez@amd.com BRIG_OPCODE_MIN = 13, //.k=BASIC_OR_MOD 59311308Santhony.gutierrez@amd.com BRIG_OPCODE_MUL = 14, //.k=BASIC_OR_MOD 59411308Santhony.gutierrez@amd.com BRIG_OPCODE_MULHI = 15, //.k=BASIC_OR_MOD 59511308Santhony.gutierrez@amd.com BRIG_OPCODE_NEG = 16, //.k=BASIC_OR_MOD 59611308Santhony.gutierrez@amd.com BRIG_OPCODE_REM = 17, 59711308Santhony.gutierrez@amd.com BRIG_OPCODE_RINT = 18, //.k=BASIC_OR_MOD 59811308Santhony.gutierrez@amd.com BRIG_OPCODE_SQRT = 19, //.k=BASIC_OR_MOD 59911308Santhony.gutierrez@amd.com BRIG_OPCODE_SUB = 20, //.k=BASIC_OR_MOD 60011308Santhony.gutierrez@amd.com BRIG_OPCODE_TRUNC = 21, //.k=BASIC_OR_MOD 60111308Santhony.gutierrez@amd.com BRIG_OPCODE_MAD24 = 22, 60211308Santhony.gutierrez@amd.com BRIG_OPCODE_MAD24HI = 23, 60311308Santhony.gutierrez@amd.com BRIG_OPCODE_MUL24 = 24, 60411308Santhony.gutierrez@amd.com BRIG_OPCODE_MUL24HI = 25, 60511308Santhony.gutierrez@amd.com BRIG_OPCODE_SHL = 26, 60611308Santhony.gutierrez@amd.com BRIG_OPCODE_SHR = 27, 60711308Santhony.gutierrez@amd.com BRIG_OPCODE_AND = 28, 60811308Santhony.gutierrez@amd.com BRIG_OPCODE_NOT = 29, 60911308Santhony.gutierrez@amd.com BRIG_OPCODE_OR = 30, 61011308Santhony.gutierrez@amd.com BRIG_OPCODE_POPCOUNT = 31, //.k=SOURCE_TYPE 61111308Santhony.gutierrez@amd.com BRIG_OPCODE_XOR = 32, 61211308Santhony.gutierrez@amd.com BRIG_OPCODE_BITEXTRACT = 33, 61311308Santhony.gutierrez@amd.com BRIG_OPCODE_BITINSERT = 34, 61411308Santhony.gutierrez@amd.com BRIG_OPCODE_BITMASK = 35, 61511308Santhony.gutierrez@amd.com BRIG_OPCODE_BITREV = 36, 61611308Santhony.gutierrez@amd.com BRIG_OPCODE_BITSELECT = 37, 61711308Santhony.gutierrez@amd.com BRIG_OPCODE_FIRSTBIT = 38, //.k=SOURCE_TYPE 61811308Santhony.gutierrez@amd.com BRIG_OPCODE_LASTBIT = 39, //.k=SOURCE_TYPE 61911308Santhony.gutierrez@amd.com BRIG_OPCODE_COMBINE = 40, //.k=SOURCE_TYPE //.vecOpndIndex=1 62011308Santhony.gutierrez@amd.com BRIG_OPCODE_EXPAND = 41, //.k=SOURCE_TYPE //.vecOpndIndex=0 62111308Santhony.gutierrez@amd.com BRIG_OPCODE_LDA = 42, //.k=ADDR 62211308Santhony.gutierrez@amd.com BRIG_OPCODE_MOV = 43, 62311308Santhony.gutierrez@amd.com BRIG_OPCODE_SHUFFLE = 44, 62411308Santhony.gutierrez@amd.com BRIG_OPCODE_UNPACKHI = 45, 62511308Santhony.gutierrez@amd.com BRIG_OPCODE_UNPACKLO = 46, 62611308Santhony.gutierrez@amd.com BRIG_OPCODE_PACK = 47, //.k=SOURCE_TYPE 62711308Santhony.gutierrez@amd.com BRIG_OPCODE_UNPACK = 48, //.k=SOURCE_TYPE 62811308Santhony.gutierrez@amd.com BRIG_OPCODE_CMOV = 49, 62911308Santhony.gutierrez@amd.com BRIG_OPCODE_CLASS = 50, //.k=SOURCE_TYPE 63011308Santhony.gutierrez@amd.com BRIG_OPCODE_NCOS = 51, 63111308Santhony.gutierrez@amd.com BRIG_OPCODE_NEXP2 = 52, 63211308Santhony.gutierrez@amd.com BRIG_OPCODE_NFMA = 53, 63311308Santhony.gutierrez@amd.com BRIG_OPCODE_NLOG2 = 54, 63411308Santhony.gutierrez@amd.com BRIG_OPCODE_NRCP = 55, 63511308Santhony.gutierrez@amd.com BRIG_OPCODE_NRSQRT = 56, 63611308Santhony.gutierrez@amd.com BRIG_OPCODE_NSIN = 57, 63711308Santhony.gutierrez@amd.com BRIG_OPCODE_NSQRT = 58, 63811308Santhony.gutierrez@amd.com BRIG_OPCODE_BITALIGN = 59, 63911308Santhony.gutierrez@amd.com BRIG_OPCODE_BYTEALIGN = 60, 64011308Santhony.gutierrez@amd.com BRIG_OPCODE_PACKCVT = 61, //.k=SOURCE_TYPE 64111308Santhony.gutierrez@amd.com BRIG_OPCODE_UNPACKCVT = 62, //.k=SOURCE_TYPE 64211308Santhony.gutierrez@amd.com BRIG_OPCODE_LERP = 63, 64311308Santhony.gutierrez@amd.com BRIG_OPCODE_SAD = 64, //.k=SOURCE_TYPE 64411308Santhony.gutierrez@amd.com BRIG_OPCODE_SADHI = 65, //.k=SOURCE_TYPE 64511308Santhony.gutierrez@amd.com BRIG_OPCODE_SEGMENTP = 66, //.k=SEG_CVT 64611308Santhony.gutierrez@amd.com BRIG_OPCODE_FTOS = 67, //.k=SEG_CVT 64711308Santhony.gutierrez@amd.com BRIG_OPCODE_STOF = 68, //.k=SEG_CVT 64811308Santhony.gutierrez@amd.com BRIG_OPCODE_CMP = 69, //.k=CMP 64911308Santhony.gutierrez@amd.com BRIG_OPCODE_CVT = 70, //.k=CVT 65011308Santhony.gutierrez@amd.com BRIG_OPCODE_LD = 71, //.k=MEM //.has_memory_order //.vecOpndIndex=0 65111308Santhony.gutierrez@amd.com BRIG_OPCODE_ST = 72, //.k=MEM //.has_memory_order //.vecOpndIndex=0 //.numdst=0 65211308Santhony.gutierrez@amd.com BRIG_OPCODE_ATOMIC = 73, //.k=ATOMIC 65311308Santhony.gutierrez@amd.com BRIG_OPCODE_ATOMICNORET = 74, //.k=ATOMIC //.numdst=0 65411308Santhony.gutierrez@amd.com BRIG_OPCODE_SIGNAL = 75, //.k=SIGNAL 65511308Santhony.gutierrez@amd.com BRIG_OPCODE_SIGNALNORET = 76, //.k=SIGNAL //.numdst=0 65611308Santhony.gutierrez@amd.com BRIG_OPCODE_MEMFENCE = 77, //.k=MEM_FENCE //.numdst=0 65711308Santhony.gutierrez@amd.com BRIG_OPCODE_RDIMAGE = 78, //.k=IMAGE //.vecOpndIndex=0 65811308Santhony.gutierrez@amd.com BRIG_OPCODE_LDIMAGE = 79, //.k=IMAGE //.vecOpndIndex=0 65911308Santhony.gutierrez@amd.com BRIG_OPCODE_STIMAGE = 80, //.k=IMAGE //.vecOpndIndex=0 //.numdst=0 66011308Santhony.gutierrez@amd.com BRIG_OPCODE_IMAGEFENCE = 81, //.k=BASIC_NO_TYPE 66111308Santhony.gutierrez@amd.com BRIG_OPCODE_QUERYIMAGE = 82, //.k=QUERY_IMAGE 66211308Santhony.gutierrez@amd.com BRIG_OPCODE_QUERYSAMPLER = 83, //.k=QUERY_SAMPLER 66311308Santhony.gutierrez@amd.com BRIG_OPCODE_CBR = 84, //.k=BR //.numdst=0 66411308Santhony.gutierrez@amd.com BRIG_OPCODE_BR = 85, //.k=BR //.numdst=0 //.hasType=false 66511308Santhony.gutierrez@amd.com BRIG_OPCODE_SBR = 86, //.k=BR //.numdst=0 //.psopnd=SbrOperands 66611308Santhony.gutierrez@amd.com BRIG_OPCODE_BARRIER = 87, //.k=BR //.numdst=0 //.hasType=false 66711308Santhony.gutierrez@amd.com BRIG_OPCODE_WAVEBARRIER = 88, //.k=BR //.numdst=0 //.hasType=false 66811308Santhony.gutierrez@amd.com BRIG_OPCODE_ARRIVEFBAR = 89, //.k=BR //.numdst=0 //.hasType=false 66911308Santhony.gutierrez@amd.com BRIG_OPCODE_INITFBAR = 90, //.k=BASIC_NO_TYPE //.numdst=0 //.hasType=false 67011308Santhony.gutierrez@amd.com BRIG_OPCODE_JOINFBAR = 91, //.k=BR //.numdst=0 //.hasType=false 67111308Santhony.gutierrez@amd.com BRIG_OPCODE_LEAVEFBAR = 92, //.k=BR //.numdst=0 //.hasType=false 67211308Santhony.gutierrez@amd.com BRIG_OPCODE_RELEASEFBAR = 93, //.k=BASIC_NO_TYPE //.numdst=0 67311308Santhony.gutierrez@amd.com BRIG_OPCODE_WAITFBAR = 94, //.k=BR //.numdst=0 //.hasType=false 67411308Santhony.gutierrez@amd.com BRIG_OPCODE_LDF = 95, 67511308Santhony.gutierrez@amd.com BRIG_OPCODE_ACTIVELANECOUNT = 96, //.k=LANE 67611308Santhony.gutierrez@amd.com BRIG_OPCODE_ACTIVELANEID = 97, //.k=LANE 67711308Santhony.gutierrez@amd.com BRIG_OPCODE_ACTIVELANEMASK = 98, //.k=LANE //.vecOpndIndex=0 67811308Santhony.gutierrez@amd.com BRIG_OPCODE_ACTIVELANEPERMUTE = 99, //.k=LANE 67911308Santhony.gutierrez@amd.com BRIG_OPCODE_CALL = 100, //.k=BR //.psopnd=CallOperands //.numdst=0 //.hasType=false 68011308Santhony.gutierrez@amd.com BRIG_OPCODE_SCALL = 101, //.k=BR //.psopnd=CallOperands //.numdst=0 68111308Santhony.gutierrez@amd.com BRIG_OPCODE_ICALL = 102, //.k=BR //.psopnd=CallOperands //.numdst=0 68211308Santhony.gutierrez@amd.com BRIG_OPCODE_RET = 103, //.k=BASIC_NO_TYPE 68311308Santhony.gutierrez@amd.com BRIG_OPCODE_ALLOCA = 104, //.k=MEM 68411308Santhony.gutierrez@amd.com BRIG_OPCODE_CURRENTWORKGROUPSIZE = 105, 68511308Santhony.gutierrez@amd.com BRIG_OPCODE_CURRENTWORKITEMFLATID = 106, 68611308Santhony.gutierrez@amd.com BRIG_OPCODE_DIM = 107, 68711308Santhony.gutierrez@amd.com BRIG_OPCODE_GRIDGROUPS = 108, 68811308Santhony.gutierrez@amd.com BRIG_OPCODE_GRIDSIZE = 109, 68911308Santhony.gutierrez@amd.com BRIG_OPCODE_PACKETCOMPLETIONSIG = 110, 69011308Santhony.gutierrez@amd.com BRIG_OPCODE_PACKETID = 111, 69111308Santhony.gutierrez@amd.com BRIG_OPCODE_WORKGROUPID = 112, 69211308Santhony.gutierrez@amd.com BRIG_OPCODE_WORKGROUPSIZE = 113, 69311308Santhony.gutierrez@amd.com BRIG_OPCODE_WORKITEMABSID = 114, 69411308Santhony.gutierrez@amd.com BRIG_OPCODE_WORKITEMFLATABSID = 115, 69511308Santhony.gutierrez@amd.com BRIG_OPCODE_WORKITEMFLATID = 116, 69611308Santhony.gutierrez@amd.com BRIG_OPCODE_WORKITEMID = 117, 69711308Santhony.gutierrez@amd.com BRIG_OPCODE_CLEARDETECTEXCEPT = 118, //.numdst=0 69811308Santhony.gutierrez@amd.com BRIG_OPCODE_GETDETECTEXCEPT = 119, 69911308Santhony.gutierrez@amd.com BRIG_OPCODE_SETDETECTEXCEPT = 120, //.numdst=0 70011308Santhony.gutierrez@amd.com BRIG_OPCODE_ADDQUEUEWRITEINDEX = 121, //.k=QUEUE 70111308Santhony.gutierrez@amd.com BRIG_OPCODE_CASQUEUEWRITEINDEX = 122, //.k=QUEUE 70211308Santhony.gutierrez@amd.com BRIG_OPCODE_LDQUEUEREADINDEX = 123, //.k=QUEUE 70311308Santhony.gutierrez@amd.com BRIG_OPCODE_LDQUEUEWRITEINDEX = 124, //.k=QUEUE 70411308Santhony.gutierrez@amd.com BRIG_OPCODE_STQUEUEREADINDEX = 125, //.k=QUEUE //.numdst=0 70511308Santhony.gutierrez@amd.com BRIG_OPCODE_STQUEUEWRITEINDEX = 126, //.k=QUEUE //.numdst=0 70611308Santhony.gutierrez@amd.com BRIG_OPCODE_CLOCK = 127, 70711308Santhony.gutierrez@amd.com BRIG_OPCODE_CUID = 128, 70811308Santhony.gutierrez@amd.com BRIG_OPCODE_DEBUGTRAP = 129, //.numdst=0 70911308Santhony.gutierrez@amd.com BRIG_OPCODE_GROUPBASEPTR = 130, 71011308Santhony.gutierrez@amd.com BRIG_OPCODE_KERNARGBASEPTR = 131, 71111308Santhony.gutierrez@amd.com BRIG_OPCODE_LANEID = 132, 71211308Santhony.gutierrez@amd.com BRIG_OPCODE_MAXCUID = 133, 71311308Santhony.gutierrez@amd.com BRIG_OPCODE_MAXWAVEID = 134, 71411308Santhony.gutierrez@amd.com BRIG_OPCODE_NULLPTR = 135, //.k=SEG 71511308Santhony.gutierrez@amd.com BRIG_OPCODE_WAVEID = 136, 71611308Santhony.gutierrez@amd.com BRIG_OPCODE_FIRST_USER_DEFINED = 32768, //.skip 71711308Santhony.gutierrez@amd.com 71811308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMADU = (1u << 15) | 0, //.k=BASIC_NO_TYPE 71911308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMADS = (1u << 15) | 1, //.k=BASIC_NO_TYPE 72011308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMAX3 = (1u << 15) | 2, 72111308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMIN3 = (1u << 15) | 3, 72211308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMED3 = (1u << 15) | 4, 72311308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNFLDEXP = (1u << 15) | 5, //.k=BASIC_OR_MOD 72411308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNFREXP_EXP = (1u << 15) | 6, //.k=BASIC_OR_MOD 72511308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNFREXP_MANT = (1u << 15) | 7, //.k=BASIC_OR_MOD 72611308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNTRIG_PREOP = (1u << 15) | 8, //.k=BASIC_OR_MOD 72711308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNBFM = (1u << 15) | 9, 72811308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNLD = (1u << 15) | 10, //.k=MEM //.has_memory_order //.vecOpndIndex=0 72911308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNST = (1u << 15) | 11, //.k=MEM //.has_memory_order //.vecOpndIndex=0 73011308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNATOMIC = (1u << 15) | 12, //.k=ATOMIC 73111308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNATOMICNORET = (1u << 15) | 13, //.k=ATOMIC //.mnemo=gcn_atomicNoRet 73211308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNSLEEP = (1u << 15) | 14, 73311308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNPRIORITY = (1u << 15) | 15, 73411308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNREGIONALLOC = (1u << 15) | 16, //.k=BASIC_NO_TYPE //.mnemo=gcn_region_alloc 73511308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMSAD = (1u << 15) | 17, 73611308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNQSAD = (1u << 15) | 18, 73711308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMQSAD = (1u << 15) | 19, 73811308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMQSAD4 = (1u << 15) | 20, //.k=BASIC_NO_TYPE 73911308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNSADW = (1u << 15) | 21, 74011308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNSADD = (1u << 15) | 22, 74111308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNCONSUME = (1u << 15) | 23, //.k=ADDR //.mnemo=gcn_atomic_consume 74211308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNAPPEND = (1u << 15) | 24, //.k=ADDR //.mnemo=gcn_atomic_append 74311308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNB4XCHG = (1u << 15) | 25, //.mnemo=gcn_b4xchg 74411308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNB32XCHG = (1u << 15) | 26, //.mnemo=gcn_b32xchg 74511308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMAX = (1u << 15) | 27, 74611308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNMIN = (1u << 15) | 28, 74711308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNDIVRELAXED = (1u << 15) | 29, //.k=BASIC_OR_MOD 74811308Santhony.gutierrez@amd.com BRIG_OPCODE_GCNDIVRELAXEDNARROW = (1u << 15) | 30, 74911308Santhony.gutierrez@amd.com 75011308Santhony.gutierrez@amd.com BRIG_OPCODE_AMDRDIMAGELOD = (1u << 15) | 31, //.k=IMAGE //.mnemo=amd_rdimagelod //.vecOpndIndex=0 75111308Santhony.gutierrez@amd.com BRIG_OPCODE_AMDRDIMAGEGRAD = (1u << 15) | 32, //.k=IMAGE //.mnemo=amd_rdimagegrad //.vecOpndIndex=0 75211308Santhony.gutierrez@amd.com BRIG_OPCODE_AMDLDIMAGEMIP = (1u << 15) | 33, //.k=IMAGE //.mnemo=amd_ldimagemip //.vecOpndIndex=0 75311308Santhony.gutierrez@amd.com BRIG_OPCODE_AMDSTIMAGEMIP = (1u << 15) | 34, //.k=IMAGE //.mnemo=amd_stimagemip //.vecOpndIndex=0 //.numdst=0 75411308Santhony.gutierrez@amd.com BRIG_OPCODE_AMDQUERYIMAGE = (1u << 15) | 35 //.k=QUERY_IMAGE //.mnemo=amd_queryimage 75511308Santhony.gutierrez@amd.com}; 75611308Santhony.gutierrez@amd.com 75711308Santhony.gutierrez@amd.comenum BrigPack { 75811308Santhony.gutierrez@amd.com 75911308Santhony.gutierrez@amd.com //.tdcaption="Packing" 76011308Santhony.gutierrez@amd.com // 76111308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_PACK_//;s/SAT$/_sat/;lc } 76211308Santhony.gutierrez@amd.com //.mnemo_token=_EMPacking 76311308Santhony.gutierrez@amd.com // 76411308Santhony.gutierrez@amd.com //.print=$mnemo{ "_$mnemo" } 76511308Santhony.gutierrez@amd.com 76611308Santhony.gutierrez@amd.com BRIG_PACK_NONE = 0, //.mnemo="" 76711308Santhony.gutierrez@amd.com BRIG_PACK_PP = 1, 76811308Santhony.gutierrez@amd.com BRIG_PACK_PS = 2, 76911308Santhony.gutierrez@amd.com BRIG_PACK_SP = 3, 77011308Santhony.gutierrez@amd.com BRIG_PACK_SS = 4, 77111308Santhony.gutierrez@amd.com BRIG_PACK_S = 5, 77211308Santhony.gutierrez@amd.com BRIG_PACK_P = 6, 77311308Santhony.gutierrez@amd.com BRIG_PACK_PPSAT = 7, 77411308Santhony.gutierrez@amd.com BRIG_PACK_PSSAT = 8, 77511308Santhony.gutierrez@amd.com BRIG_PACK_SPSAT = 9, 77611308Santhony.gutierrez@amd.com BRIG_PACK_SSSAT = 10, 77711308Santhony.gutierrez@amd.com BRIG_PACK_SSAT = 11, 77811308Santhony.gutierrez@amd.com BRIG_PACK_PSAT = 12 77911308Santhony.gutierrez@amd.com}; 78011308Santhony.gutierrez@amd.com 78111308Santhony.gutierrez@amd.comenum BrigProfile { 78211308Santhony.gutierrez@amd.com 78311308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_PROFILE_//;'$'.lc } 78411308Santhony.gutierrez@amd.com //.mnemo_token=ETargetProfile 78511308Santhony.gutierrez@amd.com // 78611308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 78711308Santhony.gutierrez@amd.com 78811308Santhony.gutierrez@amd.com BRIG_PROFILE_BASE = 0, 78911308Santhony.gutierrez@amd.com BRIG_PROFILE_FULL = 1, 79011308Santhony.gutierrez@amd.com 79111308Santhony.gutierrez@amd.com BRIG_PROFILE_UNDEF = 2 //.skip 79211308Santhony.gutierrez@amd.com}; 79311308Santhony.gutierrez@amd.com 79411308Santhony.gutierrez@amd.comenum BrigRegisterKind { 79511308Santhony.gutierrez@amd.com 79611308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_REGISTER_KIND_//;'$'.lc(substr($_,0,1)) } 79711308Santhony.gutierrez@amd.com // 79811308Santhony.gutierrez@amd.com //.bits={ } 79911308Santhony.gutierrez@amd.com //.bits_switch //.bits_proto="unsigned getRegBits(BrigRegisterKind16_t arg)" //.bits_default="return (unsigned)-1" 80011308Santhony.gutierrez@amd.com // 80111308Santhony.gutierrez@amd.com //.nollvm 80211308Santhony.gutierrez@amd.com 80311308Santhony.gutierrez@amd.com BRIG_REGISTER_KIND_CONTROL = 0, //.bits=1 80411308Santhony.gutierrez@amd.com BRIG_REGISTER_KIND_SINGLE = 1, //.bits=32 80511308Santhony.gutierrez@amd.com BRIG_REGISTER_KIND_DOUBLE = 2, //.bits=64 80611308Santhony.gutierrez@amd.com BRIG_REGISTER_KIND_QUAD = 3 //.bits=128 80711308Santhony.gutierrez@amd.com}; 80811308Santhony.gutierrez@amd.com 80911308Santhony.gutierrez@amd.comenum BrigRound { 81011308Santhony.gutierrez@amd.com 81111308Santhony.gutierrez@amd.com //.mnemo={} 81211308Santhony.gutierrez@amd.com //.mnemo_fn=round2str //.mnemo_token=_EMRound 81311308Santhony.gutierrez@amd.com // 81411308Santhony.gutierrez@amd.com //.sat={/_SAT$/? "true" : "false"} 81511308Santhony.gutierrez@amd.com //.sat_switch //.sat_proto="bool isSatRounding(unsigned rounding)" //.sat_arg="rounding" 81611308Santhony.gutierrez@amd.com //.sat_default="return false" 81711308Santhony.gutierrez@amd.com // 81811308Santhony.gutierrez@amd.com //.sig={/_SIGNALING_/? "true" : "false"} 81911308Santhony.gutierrez@amd.com //.sig_switch //.sig_proto="bool isSignalingRounding(unsigned rounding)" //.sig_arg="rounding" 82011308Santhony.gutierrez@amd.com //.sig_default="return false" 82111308Santhony.gutierrez@amd.com // 82211308Santhony.gutierrez@amd.com //.int={/_INTEGER_/? "true" : "false"} 82311308Santhony.gutierrez@amd.com //.int_switch //.int_proto="bool isIntRounding(unsigned rounding)" //.int_arg="rounding" 82411308Santhony.gutierrez@amd.com //.int_default="return false" 82511308Santhony.gutierrez@amd.com // 82611308Santhony.gutierrez@amd.com //.flt={/_FLOAT_/? "true" : "false"} 82711308Santhony.gutierrez@amd.com //.flt_switch //.flt_proto="bool isFloatRounding(unsigned rounding)" //.flt_arg="rounding" 82811308Santhony.gutierrez@amd.com //.flt_default="return false" 82911308Santhony.gutierrez@amd.com // 83011308Santhony.gutierrez@amd.com //.print=$mnemo{ "_$mnemo" } 83111308Santhony.gutierrez@amd.com 83211308Santhony.gutierrez@amd.com BRIG_ROUND_NONE = 0, //.no_mnemo 83311308Santhony.gutierrez@amd.com BRIG_ROUND_FLOAT_DEFAULT = 1, //.no_mnemo 83411308Santhony.gutierrez@amd.com BRIG_ROUND_FLOAT_NEAR_EVEN = 2, //.mnemo=near 83511308Santhony.gutierrez@amd.com BRIG_ROUND_FLOAT_ZERO = 3, //.mnemo=zero 83611308Santhony.gutierrez@amd.com BRIG_ROUND_FLOAT_PLUS_INFINITY = 4, //.mnemo=up 83711308Santhony.gutierrez@amd.com BRIG_ROUND_FLOAT_MINUS_INFINITY = 5, //.mnemo=down 83811308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_NEAR_EVEN = 6, //.mnemo=neari 83911308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_ZERO = 7, //.mnemo=zeroi 84011308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_PLUS_INFINITY = 8, //.mnemo=upi 84111308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_MINUS_INFINITY = 9, //.mnemo=downi 84211308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_NEAR_EVEN_SAT = 10, //.mnemo=neari_sat 84311308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_ZERO_SAT = 11, //.mnemo=zeroi_sat 84411308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_PLUS_INFINITY_SAT = 12, //.mnemo=upi_sat 84511308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_MINUS_INFINITY_SAT = 13, //.mnemo=downi_sat 84611308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_SIGNALING_NEAR_EVEN = 14, //.mnemo=sneari 84711308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_SIGNALING_ZERO = 15, //.mnemo=szeroi 84811308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_SIGNALING_PLUS_INFINITY = 16, //.mnemo=supi 84911308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_SIGNALING_MINUS_INFINITY = 17, //.mnemo=sdowni 85011308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_SIGNALING_NEAR_EVEN_SAT = 18, //.mnemo=sneari_sat 85111308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_SIGNALING_ZERO_SAT = 19, //.mnemo=szeroi_sat 85211308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_SIGNALING_PLUS_INFINITY_SAT = 20, //.mnemo=supi_sat 85311308Santhony.gutierrez@amd.com BRIG_ROUND_INTEGER_SIGNALING_MINUS_INFINITY_SAT = 21 //.mnemo=sdowni_sat 85411308Santhony.gutierrez@amd.com}; 85511308Santhony.gutierrez@amd.com 85611308Santhony.gutierrez@amd.comenum BrigSamplerAddressing { 85711308Santhony.gutierrez@amd.com 85811308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_ADDRESSING_//;lc } 85911308Santhony.gutierrez@amd.com //.mnemo_token=ESamplerAddressingMode 86011308Santhony.gutierrez@amd.com 86111308Santhony.gutierrez@amd.com BRIG_ADDRESSING_UNDEFINED = 0, 86211308Santhony.gutierrez@amd.com BRIG_ADDRESSING_CLAMP_TO_EDGE = 1, 86311308Santhony.gutierrez@amd.com BRIG_ADDRESSING_CLAMP_TO_BORDER = 2, 86411308Santhony.gutierrez@amd.com BRIG_ADDRESSING_REPEAT = 3, 86511308Santhony.gutierrez@amd.com BRIG_ADDRESSING_MIRRORED_REPEAT = 4, 86611308Santhony.gutierrez@amd.com 86711308Santhony.gutierrez@amd.com BRIG_ADDRESSING_FIRST_USER_DEFINED = 128 //.skip 86811308Santhony.gutierrez@amd.com}; 86911308Santhony.gutierrez@amd.com 87011308Santhony.gutierrez@amd.comenum BrigSamplerCoordNormalization { 87111308Santhony.gutierrez@amd.com 87211308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_COORD_//;lc } 87311308Santhony.gutierrez@amd.com //.mnemo_token=ESamplerCoord 87411308Santhony.gutierrez@amd.com // 87511308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 87611308Santhony.gutierrez@amd.com 87711308Santhony.gutierrez@amd.com BRIG_COORD_UNNORMALIZED = 0, 87811308Santhony.gutierrez@amd.com BRIG_COORD_NORMALIZED = 1 87911308Santhony.gutierrez@amd.com}; 88011308Santhony.gutierrez@amd.com 88111308Santhony.gutierrez@amd.comenum BrigSamplerFilter { 88211308Santhony.gutierrez@amd.com 88311308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_FILTER_//;lc } 88411308Santhony.gutierrez@amd.com // 88511308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 88611308Santhony.gutierrez@amd.com 88711308Santhony.gutierrez@amd.com BRIG_FILTER_NEAREST = 0, 88811308Santhony.gutierrez@amd.com BRIG_FILTER_LINEAR = 1, 88911308Santhony.gutierrez@amd.com 89011308Santhony.gutierrez@amd.com BRIG_FILTER_FIRST_USER_DEFINED = 128 //.skip 89111308Santhony.gutierrez@amd.com}; 89211308Santhony.gutierrez@amd.com 89311308Santhony.gutierrez@amd.comenum BrigSamplerQuery { 89411308Santhony.gutierrez@amd.com 89511308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_SAMPLER_QUERY_//;lc } 89611308Santhony.gutierrez@amd.com //.mnemo_token=_EMSamplerQuery 89711308Santhony.gutierrez@amd.com // 89811308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo } 89911308Santhony.gutierrez@amd.com 90011308Santhony.gutierrez@amd.com BRIG_SAMPLER_QUERY_ADDRESSING = 0, 90111308Santhony.gutierrez@amd.com BRIG_SAMPLER_QUERY_COORD = 1, 90211308Santhony.gutierrez@amd.com BRIG_SAMPLER_QUERY_FILTER = 2 90311308Santhony.gutierrez@amd.com}; 90411308Santhony.gutierrez@amd.com 90511308Santhony.gutierrez@amd.comenum BrigSectionIndex { 90611308Santhony.gutierrez@amd.com 90711308Santhony.gutierrez@amd.com //.nollvm 90811308Santhony.gutierrez@amd.com // 90911308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_SECTION_INDEX_/HSA_/;lc } 91011308Santhony.gutierrez@amd.com 91111308Santhony.gutierrez@amd.com BRIG_SECTION_INDEX_DATA = 0, 91211308Santhony.gutierrez@amd.com BRIG_SECTION_INDEX_CODE = 1, 91311308Santhony.gutierrez@amd.com BRIG_SECTION_INDEX_OPERAND = 2, 91411308Santhony.gutierrez@amd.com BRIG_SECTION_INDEX_BEGIN_IMPLEMENTATION_DEFINED = 3, 91511308Santhony.gutierrez@amd.com 91611308Santhony.gutierrez@amd.com // used internally 91711308Santhony.gutierrez@amd.com BRIG_SECTION_INDEX_IMPLEMENTATION_DEFINED = BRIG_SECTION_INDEX_BEGIN_IMPLEMENTATION_DEFINED //.skip 91811308Santhony.gutierrez@amd.com}; 91911308Santhony.gutierrez@amd.com 92011308Santhony.gutierrez@amd.comenum BrigSegCvtModifierMask { 92111308Santhony.gutierrez@amd.com BRIG_SEG_CVT_NONULL = 1 //.mnemo="nonull" //.print="_nonull" 92211308Santhony.gutierrez@amd.com}; 92311308Santhony.gutierrez@amd.com 92411308Santhony.gutierrez@amd.comenum BrigSegment { 92511308Santhony.gutierrez@amd.com 92611308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_SEGMENT_//;lc} 92711308Santhony.gutierrez@amd.com //.mnemo_token=_EMSegment 92811308Santhony.gutierrez@amd.com //.mnemo_context=EInstModifierContext 92911308Santhony.gutierrez@amd.com // 93011308Santhony.gutierrez@amd.com //.print=$mnemo{ $mnemo ? "_$mnemo" : "" } 93111308Santhony.gutierrez@amd.com 93211308Santhony.gutierrez@amd.com BRIG_SEGMENT_NONE = 0, //.mnemo="" 93311308Santhony.gutierrez@amd.com BRIG_SEGMENT_FLAT = 1, //.mnemo="" 93411308Santhony.gutierrez@amd.com BRIG_SEGMENT_GLOBAL = 2, 93511308Santhony.gutierrez@amd.com BRIG_SEGMENT_READONLY = 3, 93611308Santhony.gutierrez@amd.com BRIG_SEGMENT_KERNARG = 4, 93711308Santhony.gutierrez@amd.com BRIG_SEGMENT_GROUP = 5, 93811308Santhony.gutierrez@amd.com BRIG_SEGMENT_PRIVATE = 6, 93911308Santhony.gutierrez@amd.com BRIG_SEGMENT_SPILL = 7, 94011308Santhony.gutierrez@amd.com BRIG_SEGMENT_ARG = 8, 94111308Santhony.gutierrez@amd.com 94211308Santhony.gutierrez@amd.com BRIG_SEGMENT_FIRST_USER_DEFINED = 128, //.skip 94311308Santhony.gutierrez@amd.com 94411308Santhony.gutierrez@amd.com BRIG_SEGMENT_AMD_GCN = 9, //.mnemo="region" 94511308Santhony.gutierrez@amd.com}; 94611308Santhony.gutierrez@amd.com 94711308Santhony.gutierrez@amd.comenum BrigPackedTypeBits { 94811308Santhony.gutierrez@amd.com 94911308Santhony.gutierrez@amd.com //.nodump 95011308Santhony.gutierrez@amd.com // 95111308Santhony.gutierrez@amd.com //.nollvm 95211308Santhony.gutierrez@amd.com 95311308Santhony.gutierrez@amd.com BRIG_TYPE_BASE_SIZE = 5, 95411308Santhony.gutierrez@amd.com BRIG_TYPE_PACK_SIZE = 2, 95511308Santhony.gutierrez@amd.com BRIG_TYPE_ARRAY_SIZE = 1, 95611308Santhony.gutierrez@amd.com 95711308Santhony.gutierrez@amd.com BRIG_TYPE_BASE_SHIFT = 0, 95811308Santhony.gutierrez@amd.com BRIG_TYPE_PACK_SHIFT = BRIG_TYPE_BASE_SHIFT + BRIG_TYPE_BASE_SIZE, 95911308Santhony.gutierrez@amd.com BRIG_TYPE_ARRAY_SHIFT = BRIG_TYPE_PACK_SHIFT + BRIG_TYPE_PACK_SIZE, 96011308Santhony.gutierrez@amd.com 96111308Santhony.gutierrez@amd.com BRIG_TYPE_BASE_MASK = ((1 << BRIG_TYPE_BASE_SIZE) - 1) << BRIG_TYPE_BASE_SHIFT, 96211308Santhony.gutierrez@amd.com BRIG_TYPE_PACK_MASK = ((1 << BRIG_TYPE_PACK_SIZE) - 1) << BRIG_TYPE_PACK_SHIFT, 96311308Santhony.gutierrez@amd.com BRIG_TYPE_ARRAY_MASK = ((1 << BRIG_TYPE_ARRAY_SIZE) - 1) << BRIG_TYPE_ARRAY_SHIFT, 96411308Santhony.gutierrez@amd.com 96511308Santhony.gutierrez@amd.com BRIG_TYPE_PACK_NONE = 0 << BRIG_TYPE_PACK_SHIFT, 96611308Santhony.gutierrez@amd.com BRIG_TYPE_PACK_32 = 1 << BRIG_TYPE_PACK_SHIFT, 96711308Santhony.gutierrez@amd.com BRIG_TYPE_PACK_64 = 2 << BRIG_TYPE_PACK_SHIFT, 96811308Santhony.gutierrez@amd.com BRIG_TYPE_PACK_128 = 3 << BRIG_TYPE_PACK_SHIFT, 96911308Santhony.gutierrez@amd.com 97011308Santhony.gutierrez@amd.com BRIG_TYPE_ARRAY = 1 << BRIG_TYPE_ARRAY_SHIFT 97111308Santhony.gutierrez@amd.com}; 97211308Santhony.gutierrez@amd.com 97311308Santhony.gutierrez@amd.comenum BrigType { 97411308Santhony.gutierrez@amd.com 97511308Santhony.gutierrez@amd.com //.numBits={ /ARRAY$/ ? undef : /([0-9]+)X([0-9]+)/ ? $1*$2 : /([0-9]+)/ ? $1 : undef } 97611308Santhony.gutierrez@amd.com //.numBits_switch //.numBits_proto="unsigned getBrigTypeNumBits(unsigned arg)" //.numBits_default="assert(0); return 0" 97711308Santhony.gutierrez@amd.com //.numBytes=$numBits{ $numBits > 1 ? $numBits/8 : undef } 97811308Santhony.gutierrez@amd.com //.numBytes_switch //.numBytes_proto="unsigned getBrigTypeNumBytes(unsigned arg)" //.numBytes_default="assert(0); return 0" 97911308Santhony.gutierrez@amd.com // 98011308Santhony.gutierrez@amd.com //.mnemo={ s/^BRIG_TYPE_//;lc } 98111308Santhony.gutierrez@amd.com //.mnemo_token=_EMType 98211308Santhony.gutierrez@amd.com // 98311308Santhony.gutierrez@amd.com //.array={/ARRAY$/?"true":"false"} 98411308Santhony.gutierrez@amd.com //.array_switch //.array_proto="bool isArrayType(unsigned type)" //.array_arg="type" 98511308Santhony.gutierrez@amd.com //.array_default="return false" 98611308Santhony.gutierrez@amd.com // 98711308Santhony.gutierrez@amd.com //.a2e={/(.*)_ARRAY$/? $1 : "BRIG_TYPE_NONE"} 98811308Santhony.gutierrez@amd.com //.a2e_switch //.a2e_proto="unsigned arrayType2elementType(unsigned type)" //.a2e_arg="type" 98911308Santhony.gutierrez@amd.com //.a2e_default="return BRIG_TYPE_NONE" 99011308Santhony.gutierrez@amd.com // 99111308Santhony.gutierrez@amd.com //.e2a={/_ARRAY$/? "BRIG_TYPE_NONE" : /_NONE$/ ? "BRIG_TYPE_NONE" : /_B1$/ ? "BRIG_TYPE_NONE" : $_ . "_ARRAY"} 99211308Santhony.gutierrez@amd.com //.e2a_switch //.e2a_proto="unsigned elementType2arrayType(unsigned type)" //.e2a_arg="type" 99311308Santhony.gutierrez@amd.com //.e2a_default="return BRIG_TYPE_NONE" 99411308Santhony.gutierrez@amd.com // 99511308Santhony.gutierrez@amd.com //.t2s={s/^BRIG_TYPE_//;lc s/_ARRAY$/[]/;lc} 99611308Santhony.gutierrez@amd.com //.t2s_switch //.t2s_proto="const char* type2name(unsigned type)" //.t2s_arg="type" 99711308Santhony.gutierrez@amd.com //.t2s_default="return NULL" 99811308Santhony.gutierrez@amd.com // 99911308Santhony.gutierrez@amd.com //.dispatch_switch //.dispatch_incfile=TemplateUtilities 100011308Santhony.gutierrez@amd.com //.dispatch_proto="template<typename RetType, typename Visitor>\nRetType dispatchByType_gen(unsigned type, Visitor& v)" 100111308Santhony.gutierrez@amd.com //.dispatch={ /ARRAY$/ ? "v.visitNone(type)" : /^BRIG_TYPE_([BUSF]|SIG)[0-9]+/ ? "v.template visit< BrigTypeTraits<$_> >()" : "v.visitNone(type)" } 100211308Santhony.gutierrez@amd.com //.dispatch_arg="type" //.dispatch_default="return v.visitNone(type)" 100311308Santhony.gutierrez@amd.com // 100411308Santhony.gutierrez@amd.com //- .tdname=BrigType 100511308Santhony.gutierrez@amd.com // 100611308Santhony.gutierrez@amd.com //.print=$mnemo{ "_$mnemo" } 100711308Santhony.gutierrez@amd.com 100811308Santhony.gutierrez@amd.com BRIG_TYPE_NONE = 0, //.mnemo="" //.print="" 100911308Santhony.gutierrez@amd.com BRIG_TYPE_U8 = 1, //.ctype=uint8_t 101011308Santhony.gutierrez@amd.com BRIG_TYPE_U16 = 2, //.ctype=uint16_t 101111308Santhony.gutierrez@amd.com BRIG_TYPE_U32 = 3, //.ctype=uint32_t 101211308Santhony.gutierrez@amd.com BRIG_TYPE_U64 = 4, //.ctype=uint64_t 101311308Santhony.gutierrez@amd.com BRIG_TYPE_S8 = 5, //.ctype=int8_t 101411308Santhony.gutierrez@amd.com BRIG_TYPE_S16 = 6, //.ctype=int16_t 101511308Santhony.gutierrez@amd.com BRIG_TYPE_S32 = 7, //.ctype=int32_t 101611308Santhony.gutierrez@amd.com BRIG_TYPE_S64 = 8, //.ctype=int64_t 101711308Santhony.gutierrez@amd.com BRIG_TYPE_F16 = 9, //.ctype=f16_t 101811308Santhony.gutierrez@amd.com BRIG_TYPE_F32 = 10, //.ctype=float 101911308Santhony.gutierrez@amd.com BRIG_TYPE_F64 = 11, //.ctype=double 102011308Santhony.gutierrez@amd.com BRIG_TYPE_B1 = 12, //.ctype=bool //.numBytes=1 102111308Santhony.gutierrez@amd.com BRIG_TYPE_B8 = 13, //.ctype=uint8_t 102211308Santhony.gutierrez@amd.com BRIG_TYPE_B16 = 14, //.ctype=uint16_t 102311308Santhony.gutierrez@amd.com BRIG_TYPE_B32 = 15, //.ctype=uint32_t 102411308Santhony.gutierrez@amd.com BRIG_TYPE_B64 = 16, //.ctype=uint64_t 102511308Santhony.gutierrez@amd.com BRIG_TYPE_B128 = 17, //.ctype=b128_t 102611308Santhony.gutierrez@amd.com BRIG_TYPE_SAMP = 18, //.mnemo=samp //.numBits=64 102711308Santhony.gutierrez@amd.com BRIG_TYPE_ROIMG = 19, //.mnemo=roimg //.numBits=64 102811308Santhony.gutierrez@amd.com BRIG_TYPE_WOIMG = 20, //.mnemo=woimg //.numBits=64 102911308Santhony.gutierrez@amd.com BRIG_TYPE_RWIMG = 21, //.mnemo=rwimg //.numBits=64 103011308Santhony.gutierrez@amd.com BRIG_TYPE_SIG32 = 22, //.mnemo=sig32 //.numBits=64 103111308Santhony.gutierrez@amd.com BRIG_TYPE_SIG64 = 23, //.mnemo=sig64 //.numBits=64 103211308Santhony.gutierrez@amd.com 103311308Santhony.gutierrez@amd.com BRIG_TYPE_U8X4 = BRIG_TYPE_U8 | BRIG_TYPE_PACK_32, //.ctype=uint8_t 103411308Santhony.gutierrez@amd.com BRIG_TYPE_U8X8 = BRIG_TYPE_U8 | BRIG_TYPE_PACK_64, //.ctype=uint8_t 103511308Santhony.gutierrez@amd.com BRIG_TYPE_U8X16 = BRIG_TYPE_U8 | BRIG_TYPE_PACK_128, //.ctype=uint8_t 103611308Santhony.gutierrez@amd.com BRIG_TYPE_U16X2 = BRIG_TYPE_U16 | BRIG_TYPE_PACK_32, //.ctype=uint16_t 103711308Santhony.gutierrez@amd.com BRIG_TYPE_U16X4 = BRIG_TYPE_U16 | BRIG_TYPE_PACK_64, //.ctype=uint16_t 103811308Santhony.gutierrez@amd.com BRIG_TYPE_U16X8 = BRIG_TYPE_U16 | BRIG_TYPE_PACK_128, //.ctype=uint16_t 103911308Santhony.gutierrez@amd.com BRIG_TYPE_U32X2 = BRIG_TYPE_U32 | BRIG_TYPE_PACK_64, //.ctype=uint32_t 104011308Santhony.gutierrez@amd.com BRIG_TYPE_U32X4 = BRIG_TYPE_U32 | BRIG_TYPE_PACK_128, //.ctype=uint32_t 104111308Santhony.gutierrez@amd.com BRIG_TYPE_U64X2 = BRIG_TYPE_U64 | BRIG_TYPE_PACK_128, //.ctype=uint64_t 104211308Santhony.gutierrez@amd.com BRIG_TYPE_S8X4 = BRIG_TYPE_S8 | BRIG_TYPE_PACK_32, //.ctype=int8_t 104311308Santhony.gutierrez@amd.com BRIG_TYPE_S8X8 = BRIG_TYPE_S8 | BRIG_TYPE_PACK_64, //.ctype=int8_t 104411308Santhony.gutierrez@amd.com BRIG_TYPE_S8X16 = BRIG_TYPE_S8 | BRIG_TYPE_PACK_128, //.ctype=int8_t 104511308Santhony.gutierrez@amd.com BRIG_TYPE_S16X2 = BRIG_TYPE_S16 | BRIG_TYPE_PACK_32, //.ctype=int16_t 104611308Santhony.gutierrez@amd.com BRIG_TYPE_S16X4 = BRIG_TYPE_S16 | BRIG_TYPE_PACK_64, //.ctype=int16_t 104711308Santhony.gutierrez@amd.com BRIG_TYPE_S16X8 = BRIG_TYPE_S16 | BRIG_TYPE_PACK_128, //.ctype=int16_t 104811308Santhony.gutierrez@amd.com BRIG_TYPE_S32X2 = BRIG_TYPE_S32 | BRIG_TYPE_PACK_64, //.ctype=int32_t 104911308Santhony.gutierrez@amd.com BRIG_TYPE_S32X4 = BRIG_TYPE_S32 | BRIG_TYPE_PACK_128, //.ctype=int32_t 105011308Santhony.gutierrez@amd.com BRIG_TYPE_S64X2 = BRIG_TYPE_S64 | BRIG_TYPE_PACK_128, //.ctype=int64_t 105111308Santhony.gutierrez@amd.com BRIG_TYPE_F16X2 = BRIG_TYPE_F16 | BRIG_TYPE_PACK_32, //.ctype=f16_t 105211308Santhony.gutierrez@amd.com BRIG_TYPE_F16X4 = BRIG_TYPE_F16 | BRIG_TYPE_PACK_64, //.ctype=f16_t 105311308Santhony.gutierrez@amd.com BRIG_TYPE_F16X8 = BRIG_TYPE_F16 | BRIG_TYPE_PACK_128, //.ctype=f16_t 105411308Santhony.gutierrez@amd.com BRIG_TYPE_F32X2 = BRIG_TYPE_F32 | BRIG_TYPE_PACK_64, //.ctype=float 105511308Santhony.gutierrez@amd.com BRIG_TYPE_F32X4 = BRIG_TYPE_F32 | BRIG_TYPE_PACK_128, //.ctype=float 105611308Santhony.gutierrez@amd.com BRIG_TYPE_F64X2 = BRIG_TYPE_F64 | BRIG_TYPE_PACK_128, //.ctype=double 105711308Santhony.gutierrez@amd.com 105811308Santhony.gutierrez@amd.com BRIG_TYPE_U8_ARRAY = BRIG_TYPE_U8 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 105911308Santhony.gutierrez@amd.com BRIG_TYPE_U16_ARRAY = BRIG_TYPE_U16 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106011308Santhony.gutierrez@amd.com BRIG_TYPE_U32_ARRAY = BRIG_TYPE_U32 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106111308Santhony.gutierrez@amd.com BRIG_TYPE_U64_ARRAY = BRIG_TYPE_U64 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106211308Santhony.gutierrez@amd.com BRIG_TYPE_S8_ARRAY = BRIG_TYPE_S8 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106311308Santhony.gutierrez@amd.com BRIG_TYPE_S16_ARRAY = BRIG_TYPE_S16 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106411308Santhony.gutierrez@amd.com BRIG_TYPE_S32_ARRAY = BRIG_TYPE_S32 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106511308Santhony.gutierrez@amd.com BRIG_TYPE_S64_ARRAY = BRIG_TYPE_S64 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106611308Santhony.gutierrez@amd.com BRIG_TYPE_F16_ARRAY = BRIG_TYPE_F16 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106711308Santhony.gutierrez@amd.com BRIG_TYPE_F32_ARRAY = BRIG_TYPE_F32 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106811308Santhony.gutierrez@amd.com BRIG_TYPE_F64_ARRAY = BRIG_TYPE_F64 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 106911308Santhony.gutierrez@amd.com BRIG_TYPE_B8_ARRAY = BRIG_TYPE_B8 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107011308Santhony.gutierrez@amd.com BRIG_TYPE_B16_ARRAY = BRIG_TYPE_B16 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107111308Santhony.gutierrez@amd.com BRIG_TYPE_B32_ARRAY = BRIG_TYPE_B32 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107211308Santhony.gutierrez@amd.com BRIG_TYPE_B64_ARRAY = BRIG_TYPE_B64 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107311308Santhony.gutierrez@amd.com BRIG_TYPE_B128_ARRAY = BRIG_TYPE_B128 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107411308Santhony.gutierrez@amd.com BRIG_TYPE_SAMP_ARRAY = BRIG_TYPE_SAMP | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107511308Santhony.gutierrez@amd.com BRIG_TYPE_ROIMG_ARRAY = BRIG_TYPE_ROIMG | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107611308Santhony.gutierrez@amd.com BRIG_TYPE_WOIMG_ARRAY = BRIG_TYPE_WOIMG | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107711308Santhony.gutierrez@amd.com BRIG_TYPE_RWIMG_ARRAY = BRIG_TYPE_RWIMG | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107811308Santhony.gutierrez@amd.com BRIG_TYPE_SIG32_ARRAY = BRIG_TYPE_SIG32 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 107911308Santhony.gutierrez@amd.com BRIG_TYPE_SIG64_ARRAY = BRIG_TYPE_SIG64 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108011308Santhony.gutierrez@amd.com BRIG_TYPE_U8X4_ARRAY = BRIG_TYPE_U8X4 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108111308Santhony.gutierrez@amd.com BRIG_TYPE_U8X8_ARRAY = BRIG_TYPE_U8X8 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108211308Santhony.gutierrez@amd.com BRIG_TYPE_U8X16_ARRAY = BRIG_TYPE_U8X16 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108311308Santhony.gutierrez@amd.com BRIG_TYPE_U16X2_ARRAY = BRIG_TYPE_U16X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108411308Santhony.gutierrez@amd.com BRIG_TYPE_U16X4_ARRAY = BRIG_TYPE_U16X4 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108511308Santhony.gutierrez@amd.com BRIG_TYPE_U16X8_ARRAY = BRIG_TYPE_U16X8 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108611308Santhony.gutierrez@amd.com BRIG_TYPE_U32X2_ARRAY = BRIG_TYPE_U32X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108711308Santhony.gutierrez@amd.com BRIG_TYPE_U32X4_ARRAY = BRIG_TYPE_U32X4 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108811308Santhony.gutierrez@amd.com BRIG_TYPE_U64X2_ARRAY = BRIG_TYPE_U64X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 108911308Santhony.gutierrez@amd.com BRIG_TYPE_S8X4_ARRAY = BRIG_TYPE_S8X4 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109011308Santhony.gutierrez@amd.com BRIG_TYPE_S8X8_ARRAY = BRIG_TYPE_S8X8 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109111308Santhony.gutierrez@amd.com BRIG_TYPE_S8X16_ARRAY = BRIG_TYPE_S8X16 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109211308Santhony.gutierrez@amd.com BRIG_TYPE_S16X2_ARRAY = BRIG_TYPE_S16X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109311308Santhony.gutierrez@amd.com BRIG_TYPE_S16X4_ARRAY = BRIG_TYPE_S16X4 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109411308Santhony.gutierrez@amd.com BRIG_TYPE_S16X8_ARRAY = BRIG_TYPE_S16X8 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109511308Santhony.gutierrez@amd.com BRIG_TYPE_S32X2_ARRAY = BRIG_TYPE_S32X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109611308Santhony.gutierrez@amd.com BRIG_TYPE_S32X4_ARRAY = BRIG_TYPE_S32X4 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109711308Santhony.gutierrez@amd.com BRIG_TYPE_S64X2_ARRAY = BRIG_TYPE_S64X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109811308Santhony.gutierrez@amd.com BRIG_TYPE_F16X2_ARRAY = BRIG_TYPE_F16X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 109911308Santhony.gutierrez@amd.com BRIG_TYPE_F16X4_ARRAY = BRIG_TYPE_F16X4 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 110011308Santhony.gutierrez@amd.com BRIG_TYPE_F16X8_ARRAY = BRIG_TYPE_F16X8 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 110111308Santhony.gutierrez@amd.com BRIG_TYPE_F32X2_ARRAY = BRIG_TYPE_F32X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 110211308Santhony.gutierrez@amd.com BRIG_TYPE_F32X4_ARRAY = BRIG_TYPE_F32X4 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 110311308Santhony.gutierrez@amd.com BRIG_TYPE_F64X2_ARRAY = BRIG_TYPE_F64X2 | BRIG_TYPE_ARRAY, //.mnemo="" //.print="" 110411308Santhony.gutierrez@amd.com 110511308Santhony.gutierrez@amd.com // Used internally 110611308Santhony.gutierrez@amd.com BRIG_TYPE_INVALID = (unsigned) -1 //.skip 110711308Santhony.gutierrez@amd.com}; 110811308Santhony.gutierrez@amd.com 110911308Santhony.gutierrez@amd.comenum BrigVariableModifierMask { 111011308Santhony.gutierrez@amd.com 111111308Santhony.gutierrez@amd.com //.nodump 111211308Santhony.gutierrez@amd.com 111311308Santhony.gutierrez@amd.com BRIG_VARIABLE_DEFINITION = 1, 111411308Santhony.gutierrez@amd.com BRIG_VARIABLE_CONST = 2 111511308Santhony.gutierrez@amd.com}; 111611308Santhony.gutierrez@amd.com 111711308Santhony.gutierrez@amd.comenum BrigWidth { 111811308Santhony.gutierrez@amd.com 111911308Santhony.gutierrez@amd.com //.tddef=1 112011308Santhony.gutierrez@amd.com // 112111308Santhony.gutierrez@amd.com //.print={ s/^BRIG_WIDTH_//; "_width($_)" } 112211308Santhony.gutierrez@amd.com 112311308Santhony.gutierrez@amd.com BRIG_WIDTH_NONE = 0, 112411308Santhony.gutierrez@amd.com BRIG_WIDTH_1 = 1, 112511308Santhony.gutierrez@amd.com BRIG_WIDTH_2 = 2, 112611308Santhony.gutierrez@amd.com BRIG_WIDTH_4 = 3, 112711308Santhony.gutierrez@amd.com BRIG_WIDTH_8 = 4, 112811308Santhony.gutierrez@amd.com BRIG_WIDTH_16 = 5, 112911308Santhony.gutierrez@amd.com BRIG_WIDTH_32 = 6, 113011308Santhony.gutierrez@amd.com BRIG_WIDTH_64 = 7, 113111308Santhony.gutierrez@amd.com BRIG_WIDTH_128 = 8, 113211308Santhony.gutierrez@amd.com BRIG_WIDTH_256 = 9, 113311308Santhony.gutierrez@amd.com BRIG_WIDTH_512 = 10, 113411308Santhony.gutierrez@amd.com BRIG_WIDTH_1024 = 11, 113511308Santhony.gutierrez@amd.com BRIG_WIDTH_2048 = 12, 113611308Santhony.gutierrez@amd.com BRIG_WIDTH_4096 = 13, 113711308Santhony.gutierrez@amd.com BRIG_WIDTH_8192 = 14, 113811308Santhony.gutierrez@amd.com BRIG_WIDTH_16384 = 15, 113911308Santhony.gutierrez@amd.com BRIG_WIDTH_32768 = 16, 114011308Santhony.gutierrez@amd.com BRIG_WIDTH_65536 = 17, 114111308Santhony.gutierrez@amd.com BRIG_WIDTH_131072 = 18, 114211308Santhony.gutierrez@amd.com BRIG_WIDTH_262144 = 19, 114311308Santhony.gutierrez@amd.com BRIG_WIDTH_524288 = 20, 114411308Santhony.gutierrez@amd.com BRIG_WIDTH_1048576 = 21, 114511308Santhony.gutierrez@amd.com BRIG_WIDTH_2097152 = 22, 114611308Santhony.gutierrez@amd.com BRIG_WIDTH_4194304 = 23, 114711308Santhony.gutierrez@amd.com BRIG_WIDTH_8388608 = 24, 114811308Santhony.gutierrez@amd.com BRIG_WIDTH_16777216 = 25, 114911308Santhony.gutierrez@amd.com BRIG_WIDTH_33554432 = 26, 115011308Santhony.gutierrez@amd.com BRIG_WIDTH_67108864 = 27, 115111308Santhony.gutierrez@amd.com BRIG_WIDTH_134217728 = 28, 115211308Santhony.gutierrez@amd.com BRIG_WIDTH_268435456 = 29, 115311308Santhony.gutierrez@amd.com BRIG_WIDTH_536870912 = 30, 115411308Santhony.gutierrez@amd.com BRIG_WIDTH_1073741824 = 31, 115511308Santhony.gutierrez@amd.com BRIG_WIDTH_2147483648 = 32, 115611308Santhony.gutierrez@amd.com BRIG_WIDTH_WAVESIZE = 33, 115711308Santhony.gutierrez@amd.com BRIG_WIDTH_ALL = 34, 115811308Santhony.gutierrez@amd.com 115911308Santhony.gutierrez@amd.com BRIG_WIDTH_LAST //.skip 116011308Santhony.gutierrez@amd.com}; 116111308Santhony.gutierrez@amd.com 116211308Santhony.gutierrez@amd.comstruct BrigUInt64 { //.isroot //.standalone 116311308Santhony.gutierrez@amd.com uint32_t lo; //.defValue=0 116411308Santhony.gutierrez@amd.com uint32_t hi; //.defValue=0 116511308Santhony.gutierrez@amd.com 116611308Santhony.gutierrez@amd.com //+hcode KLASS& operator=(uint64_t rhs); 116711308Santhony.gutierrez@amd.com //+hcode operator uint64_t(); 116811308Santhony.gutierrez@amd.com //+implcode inline KLASS& KLASS::operator=(uint64_t rhs) { lo() = (uint32_t)rhs; hi() = (uint32_t)(rhs >> 32); return *this; } 116911308Santhony.gutierrez@amd.com //+implcode inline KLASS::operator uint64_t() { return ((uint64_t)hi()) << 32 | lo(); } 117011308Santhony.gutierrez@amd.com}; 117111308Santhony.gutierrez@amd.com 117211308Santhony.gutierrez@amd.comstruct BrigAluModifier { //.isroot //.standalone 117311308Santhony.gutierrez@amd.com BrigAluModifier8_t allBits; //.defValue=0 117411308Santhony.gutierrez@amd.com //^^ bool ftz; //.wtype=BitValRef<0> 117511308Santhony.gutierrez@amd.com}; 117611308Santhony.gutierrez@amd.com 117711308Santhony.gutierrez@amd.comstruct BrigBase { //.nowrap 117811308Santhony.gutierrez@amd.com uint16_t byteCount; 117911308Santhony.gutierrez@amd.com BrigKind16_t kind; 118011308Santhony.gutierrez@amd.com}; 118111308Santhony.gutierrez@amd.com 118211308Santhony.gutierrez@amd.com//.alias Code:Base { //.generic //.isroot //.section=BRIG_SECTION_INDEX_CODE }; 118311308Santhony.gutierrez@amd.com//.alias Directive:Code { //.generic }; 118411308Santhony.gutierrez@amd.com//.alias Operand:Base { //.generic //.isroot //.section=BRIG_SECTION_INDEX_OPERAND }; 118511308Santhony.gutierrez@amd.com 118611308Santhony.gutierrez@amd.comstruct BrigData { 118711308Santhony.gutierrez@amd.com //.nowrap 118811308Santhony.gutierrez@amd.com uint32_t byteCount; 118911308Santhony.gutierrez@amd.com uint8_t bytes[1]; 119011308Santhony.gutierrez@amd.com}; 119111308Santhony.gutierrez@amd.com 119211308Santhony.gutierrez@amd.comstruct BrigExecutableModifier { //.isroot //.standalone 119311308Santhony.gutierrez@amd.com BrigExecutableModifier8_t allBits; //.defValue=0 119411308Santhony.gutierrez@amd.com //^^ bool isDefinition; //.wtype=BitValRef<0> 119511308Santhony.gutierrez@amd.com}; 119611308Santhony.gutierrez@amd.com 119711308Santhony.gutierrez@amd.comstruct BrigMemoryModifier { //.isroot //.standalone 119811308Santhony.gutierrez@amd.com BrigMemoryModifier8_t allBits; //.defValue=0 119911308Santhony.gutierrez@amd.com //^^ bool isConst; //.wtype=BitValRef<0> 120011308Santhony.gutierrez@amd.com}; 120111308Santhony.gutierrez@amd.com 120211308Santhony.gutierrez@amd.comstruct BrigSegCvtModifier { //.isroot //.standalone 120311308Santhony.gutierrez@amd.com BrigSegCvtModifier8_t allBits; //.defValue=0 120411308Santhony.gutierrez@amd.com //^^ bool isNoNull; //.wtype=BitValRef<0> 120511308Santhony.gutierrez@amd.com}; 120611308Santhony.gutierrez@amd.com 120711308Santhony.gutierrez@amd.comstruct BrigVariableModifier { //.isroot //.standalone 120811308Santhony.gutierrez@amd.com BrigVariableModifier8_t allBits; //.defValue=0 120911308Santhony.gutierrez@amd.com 121011308Santhony.gutierrez@amd.com //^^ bool isDefinition; //.wtype=BitValRef<0> 121111308Santhony.gutierrez@amd.com //^^ bool isConst; //.wtype=BitValRef<1> 121211308Santhony.gutierrez@amd.com}; 121311308Santhony.gutierrez@amd.com 121411308Santhony.gutierrez@amd.comstruct BrigDirectiveArgBlockEnd { 121511308Santhony.gutierrez@amd.com BrigBase base; 121611308Santhony.gutierrez@amd.com}; 121711308Santhony.gutierrez@amd.com 121811308Santhony.gutierrez@amd.comstruct BrigDirectiveArgBlockStart { 121911308Santhony.gutierrez@amd.com BrigBase base; 122011308Santhony.gutierrez@amd.com}; 122111308Santhony.gutierrez@amd.com 122211308Santhony.gutierrez@amd.comstruct BrigDirectiveComment { 122311308Santhony.gutierrez@amd.com BrigBase base; 122411308Santhony.gutierrez@amd.com BrigDataOffsetString32_t name; 122511308Santhony.gutierrez@amd.com}; 122611308Santhony.gutierrez@amd.com 122711308Santhony.gutierrez@amd.comstruct BrigDirectiveControl { 122811308Santhony.gutierrez@amd.com BrigBase base; 122911308Santhony.gutierrez@amd.com BrigControlDirective16_t control; 123011308Santhony.gutierrez@amd.com uint16_t reserved; //.defValue=0 123111308Santhony.gutierrez@amd.com BrigDataOffsetOperandList32_t operands; 123211308Santhony.gutierrez@amd.com}; 123311308Santhony.gutierrez@amd.com 123411308Santhony.gutierrez@amd.comstruct BrigDirectiveExecutable { //.generic 123511308Santhony.gutierrez@amd.com BrigBase base; 123611308Santhony.gutierrez@amd.com BrigDataOffsetString32_t name; 123711308Santhony.gutierrez@amd.com uint16_t outArgCount; //.defValue=0 123811308Santhony.gutierrez@amd.com uint16_t inArgCount; //.defValue=0 123911308Santhony.gutierrez@amd.com BrigCodeOffset32_t firstInArg; 124011308Santhony.gutierrez@amd.com BrigCodeOffset32_t firstCodeBlockEntry; 124111308Santhony.gutierrez@amd.com BrigCodeOffset32_t nextModuleEntry; 124211308Santhony.gutierrez@amd.com BrigExecutableModifier modifier; //.acc=subItem<ExecutableModifier> //.wtype=ExecutableModifier 124311308Santhony.gutierrez@amd.com BrigLinkage8_t linkage; 124411308Santhony.gutierrez@amd.com uint16_t reserved; //.defValue=0 124511308Santhony.gutierrez@amd.com}; 124611308Santhony.gutierrez@amd.com 124711308Santhony.gutierrez@amd.com//.alias DirectiveKernel:DirectiveExecutable { }; 124811308Santhony.gutierrez@amd.com//.alias DirectiveFunction:DirectiveExecutable { }; 124911308Santhony.gutierrez@amd.com//.alias DirectiveSignature:DirectiveExecutable { }; 125011308Santhony.gutierrez@amd.com//.alias DirectiveIndirectFunction:DirectiveExecutable { }; 125111308Santhony.gutierrez@amd.com 125211308Santhony.gutierrez@amd.comstruct BrigDirectiveExtension { 125311308Santhony.gutierrez@amd.com BrigBase base; 125411308Santhony.gutierrez@amd.com BrigDataOffsetString32_t name; 125511308Santhony.gutierrez@amd.com}; 125611308Santhony.gutierrez@amd.com 125711308Santhony.gutierrez@amd.comstruct BrigDirectiveFbarrier { 125811308Santhony.gutierrez@amd.com BrigBase base; 125911308Santhony.gutierrez@amd.com BrigDataOffsetString32_t name; 126011308Santhony.gutierrez@amd.com BrigVariableModifier modifier; //.acc=subItem<VariableModifier> //.wtype=VariableModifier 126111308Santhony.gutierrez@amd.com BrigLinkage8_t linkage; 126211308Santhony.gutierrez@amd.com uint16_t reserved; //.defValue=0 126311308Santhony.gutierrez@amd.com}; 126411308Santhony.gutierrez@amd.com 126511308Santhony.gutierrez@amd.comstruct BrigDirectiveLabel { 126611308Santhony.gutierrez@amd.com BrigBase base; 126711308Santhony.gutierrez@amd.com BrigDataOffsetString32_t name; 126811308Santhony.gutierrez@amd.com}; 126911308Santhony.gutierrez@amd.com 127011308Santhony.gutierrez@amd.comstruct BrigDirectiveLoc { 127111308Santhony.gutierrez@amd.com BrigBase base; 127211308Santhony.gutierrez@amd.com BrigDataOffsetString32_t filename; 127311308Santhony.gutierrez@amd.com uint32_t line; 127411308Santhony.gutierrez@amd.com uint32_t column; //.defValue=1 127511308Santhony.gutierrez@amd.com}; 127611308Santhony.gutierrez@amd.com 127711308Santhony.gutierrez@amd.comstruct BrigDirectiveNone { //.enum=BRIG_KIND_NONE 127811308Santhony.gutierrez@amd.com BrigBase base; 127911308Santhony.gutierrez@amd.com}; 128011308Santhony.gutierrez@amd.com 128111308Santhony.gutierrez@amd.comstruct BrigDirectivePragma { 128211308Santhony.gutierrez@amd.com BrigBase base; 128311308Santhony.gutierrez@amd.com BrigDataOffsetOperandList32_t operands; 128411308Santhony.gutierrez@amd.com}; 128511308Santhony.gutierrez@amd.com 128611308Santhony.gutierrez@amd.comstruct BrigDirectiveVariable { 128711308Santhony.gutierrez@amd.com BrigBase base; 128811308Santhony.gutierrez@amd.com BrigDataOffsetString32_t name; 128911308Santhony.gutierrez@amd.com BrigOperandOffset32_t init; 129011308Santhony.gutierrez@amd.com BrigType16_t type; 129111308Santhony.gutierrez@amd.com 129211308Santhony.gutierrez@amd.com //+hcode bool isArray(); 129311308Santhony.gutierrez@amd.com //+implcode inline bool KLASS::isArray() { return isArrayType(type()); } 129411308Santhony.gutierrez@amd.com 129511308Santhony.gutierrez@amd.com //+hcode unsigned elementType(); 129611308Santhony.gutierrez@amd.com //+implcode inline unsigned KLASS::elementType() { return isArray()? arrayType2elementType(type()) : type(); } 129711308Santhony.gutierrez@amd.com 129811308Santhony.gutierrez@amd.com BrigSegment8_t segment; 129911308Santhony.gutierrez@amd.com BrigAlignment8_t align; 130011308Santhony.gutierrez@amd.com BrigUInt64 dim; //.acc=subItem<UInt64> //.wtype=UInt64 130111308Santhony.gutierrez@amd.com BrigVariableModifier modifier; //.acc=subItem<VariableModifier> //.wtype=VariableModifier 130211308Santhony.gutierrez@amd.com BrigLinkage8_t linkage; 130311308Santhony.gutierrez@amd.com BrigAllocation8_t allocation; 130411308Santhony.gutierrez@amd.com uint8_t reserved; //.defValue=0 130511308Santhony.gutierrez@amd.com}; 130611308Santhony.gutierrez@amd.com 130711308Santhony.gutierrez@amd.comstruct BrigDirectiveModule { 130811308Santhony.gutierrez@amd.com BrigBase base; 130911308Santhony.gutierrez@amd.com BrigDataOffsetString32_t name; 131011308Santhony.gutierrez@amd.com BrigVersion32_t hsailMajor; //.wtype=ValRef<uint32_t> 131111308Santhony.gutierrez@amd.com BrigVersion32_t hsailMinor; //.wtype=ValRef<uint32_t> 131211308Santhony.gutierrez@amd.com BrigProfile8_t profile; 131311308Santhony.gutierrez@amd.com BrigMachineModel8_t machineModel; 131411308Santhony.gutierrez@amd.com BrigRound8_t defaultFloatRound; 131511308Santhony.gutierrez@amd.com uint8_t reserved; //.defValue=0 131611308Santhony.gutierrez@amd.com}; 131711308Santhony.gutierrez@amd.com 131811308Santhony.gutierrez@amd.comstruct BrigInstBase { //.wname=Inst //.generic //.parent=BrigCode 131911308Santhony.gutierrez@amd.com BrigBase base; 132011308Santhony.gutierrez@amd.com BrigOpcode16_t opcode; 132111308Santhony.gutierrez@amd.com BrigType16_t type; 132211308Santhony.gutierrez@amd.com BrigDataOffsetOperandList32_t operands; 132311308Santhony.gutierrez@amd.com 132411308Santhony.gutierrez@amd.com //+hcode Operand operand(int index); 132511308Santhony.gutierrez@amd.com //+implcode inline Operand KLASS::operand(int index) { return operands()[index]; } 132611308Santhony.gutierrez@amd.com}; 132711308Santhony.gutierrez@amd.com 132811308Santhony.gutierrez@amd.comstruct BrigInstAddr { 132911308Santhony.gutierrez@amd.com BrigInstBase base; 133011308Santhony.gutierrez@amd.com BrigSegment8_t segment; 133111308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 133211308Santhony.gutierrez@amd.com}; 133311308Santhony.gutierrez@amd.com 133411308Santhony.gutierrez@amd.comstruct BrigInstAtomic { 133511308Santhony.gutierrez@amd.com BrigInstBase base; 133611308Santhony.gutierrez@amd.com BrigSegment8_t segment; 133711308Santhony.gutierrez@amd.com BrigMemoryOrder8_t memoryOrder; 133811308Santhony.gutierrez@amd.com BrigMemoryScope8_t memoryScope; 133911308Santhony.gutierrez@amd.com BrigAtomicOperation8_t atomicOperation; 134011308Santhony.gutierrez@amd.com uint8_t equivClass; 134111308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 134211308Santhony.gutierrez@amd.com}; 134311308Santhony.gutierrez@amd.com 134411308Santhony.gutierrez@amd.comstruct BrigInstBasic { 134511308Santhony.gutierrez@amd.com BrigInstBase base; 134611308Santhony.gutierrez@amd.com}; 134711308Santhony.gutierrez@amd.com 134811308Santhony.gutierrez@amd.comstruct BrigInstBr { 134911308Santhony.gutierrez@amd.com BrigInstBase base; 135011308Santhony.gutierrez@amd.com BrigWidth8_t width; 135111308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 135211308Santhony.gutierrez@amd.com}; 135311308Santhony.gutierrez@amd.com 135411308Santhony.gutierrez@amd.comstruct BrigInstCmp { 135511308Santhony.gutierrez@amd.com BrigInstBase base; 135611308Santhony.gutierrez@amd.com BrigType16_t sourceType; 135711308Santhony.gutierrez@amd.com BrigAluModifier modifier; //.acc=subItem<AluModifier> //.wtype=AluModifier 135811308Santhony.gutierrez@amd.com BrigCompareOperation8_t compare; 135911308Santhony.gutierrez@amd.com BrigPack8_t pack; 136011308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 136111308Santhony.gutierrez@amd.com}; 136211308Santhony.gutierrez@amd.com 136311308Santhony.gutierrez@amd.comstruct BrigInstCvt { 136411308Santhony.gutierrez@amd.com BrigInstBase base; 136511308Santhony.gutierrez@amd.com BrigType16_t sourceType; 136611308Santhony.gutierrez@amd.com BrigAluModifier modifier; //.acc=subItem<AluModifier> //.wtype=AluModifier 136711308Santhony.gutierrez@amd.com BrigRound8_t round; 136811308Santhony.gutierrez@amd.com}; 136911308Santhony.gutierrez@amd.com 137011308Santhony.gutierrez@amd.comstruct BrigInstImage { 137111308Santhony.gutierrez@amd.com BrigInstBase base; 137211308Santhony.gutierrez@amd.com BrigType16_t imageType; 137311308Santhony.gutierrez@amd.com BrigType16_t coordType; 137411308Santhony.gutierrez@amd.com BrigImageGeometry8_t geometry; 137511308Santhony.gutierrez@amd.com uint8_t equivClass; 137611308Santhony.gutierrez@amd.com uint16_t reserved; //.defValue=0 137711308Santhony.gutierrez@amd.com}; 137811308Santhony.gutierrez@amd.com 137911308Santhony.gutierrez@amd.comstruct BrigInstLane { 138011308Santhony.gutierrez@amd.com BrigInstBase base; 138111308Santhony.gutierrez@amd.com BrigType16_t sourceType; 138211308Santhony.gutierrez@amd.com BrigWidth8_t width; 138311308Santhony.gutierrez@amd.com uint8_t reserved; //.defValue=0 138411308Santhony.gutierrez@amd.com}; 138511308Santhony.gutierrez@amd.com 138611308Santhony.gutierrez@amd.comstruct BrigInstMem { 138711308Santhony.gutierrez@amd.com BrigInstBase base; 138811308Santhony.gutierrez@amd.com BrigSegment8_t segment; 138911308Santhony.gutierrez@amd.com BrigAlignment8_t align; 139011308Santhony.gutierrez@amd.com uint8_t equivClass; 139111308Santhony.gutierrez@amd.com BrigWidth8_t width; 139211308Santhony.gutierrez@amd.com BrigMemoryModifier modifier; //.acc=subItem<MemoryModifier> //.wtype=MemoryModifier 139311308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 139411308Santhony.gutierrez@amd.com}; 139511308Santhony.gutierrez@amd.com 139611308Santhony.gutierrez@amd.comstruct BrigInstMemFence { 139711308Santhony.gutierrez@amd.com BrigInstBase base; 139811308Santhony.gutierrez@amd.com BrigMemoryOrder8_t memoryOrder; 139911308Santhony.gutierrez@amd.com BrigMemoryScope8_t globalSegmentMemoryScope; 140011308Santhony.gutierrez@amd.com BrigMemoryScope8_t groupSegmentMemoryScope; 140111308Santhony.gutierrez@amd.com BrigMemoryScope8_t imageSegmentMemoryScope; 140211308Santhony.gutierrez@amd.com}; 140311308Santhony.gutierrez@amd.com 140411308Santhony.gutierrez@amd.comstruct BrigInstMod { 140511308Santhony.gutierrez@amd.com BrigInstBase base; 140611308Santhony.gutierrez@amd.com BrigAluModifier modifier; //.acc=subItem<AluModifier> //.wtype=AluModifier 140711308Santhony.gutierrez@amd.com BrigRound8_t round; 140811308Santhony.gutierrez@amd.com BrigPack8_t pack; 140911308Santhony.gutierrez@amd.com uint8_t reserved; //.defValue=0 141011308Santhony.gutierrez@amd.com}; 141111308Santhony.gutierrez@amd.com 141211308Santhony.gutierrez@amd.comstruct BrigInstQueryImage { 141311308Santhony.gutierrez@amd.com BrigInstBase base; 141411308Santhony.gutierrez@amd.com BrigType16_t imageType; 141511308Santhony.gutierrez@amd.com BrigImageGeometry8_t geometry; 141611308Santhony.gutierrez@amd.com BrigImageQuery8_t imageQuery; 141711308Santhony.gutierrez@amd.com}; 141811308Santhony.gutierrez@amd.com 141911308Santhony.gutierrez@amd.comstruct BrigInstQuerySampler { 142011308Santhony.gutierrez@amd.com BrigInstBase base; 142111308Santhony.gutierrez@amd.com BrigSamplerQuery8_t samplerQuery; 142211308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 142311308Santhony.gutierrez@amd.com}; 142411308Santhony.gutierrez@amd.com 142511308Santhony.gutierrez@amd.comstruct BrigInstQueue { 142611308Santhony.gutierrez@amd.com BrigInstBase base; 142711308Santhony.gutierrez@amd.com BrigSegment8_t segment; 142811308Santhony.gutierrez@amd.com BrigMemoryOrder8_t memoryOrder; 142911308Santhony.gutierrez@amd.com uint16_t reserved; //.defValue=0 143011308Santhony.gutierrez@amd.com}; 143111308Santhony.gutierrez@amd.com 143211308Santhony.gutierrez@amd.comstruct BrigInstSeg { 143311308Santhony.gutierrez@amd.com BrigInstBase base; 143411308Santhony.gutierrez@amd.com BrigSegment8_t segment; 143511308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 143611308Santhony.gutierrez@amd.com}; 143711308Santhony.gutierrez@amd.com 143811308Santhony.gutierrez@amd.comstruct BrigInstSegCvt { 143911308Santhony.gutierrez@amd.com BrigInstBase base; 144011308Santhony.gutierrez@amd.com BrigType16_t sourceType; 144111308Santhony.gutierrez@amd.com BrigSegment8_t segment; 144211308Santhony.gutierrez@amd.com BrigSegCvtModifier modifier; //.acc=subItem<SegCvtModifier> //.wtype=SegCvtModifier 144311308Santhony.gutierrez@amd.com}; 144411308Santhony.gutierrez@amd.com 144511308Santhony.gutierrez@amd.comstruct BrigInstSignal { 144611308Santhony.gutierrez@amd.com BrigInstBase base; 144711308Santhony.gutierrez@amd.com BrigType16_t signalType; 144811308Santhony.gutierrez@amd.com BrigMemoryOrder8_t memoryOrder; 144911308Santhony.gutierrez@amd.com BrigAtomicOperation8_t signalOperation; 145011308Santhony.gutierrez@amd.com}; 145111308Santhony.gutierrez@amd.com 145211308Santhony.gutierrez@amd.comstruct BrigInstSourceType { 145311308Santhony.gutierrez@amd.com BrigInstBase base; 145411308Santhony.gutierrez@amd.com BrigType16_t sourceType; 145511308Santhony.gutierrez@amd.com uint16_t reserved; //.defValue=0 145611308Santhony.gutierrez@amd.com}; 145711308Santhony.gutierrez@amd.com 145811308Santhony.gutierrez@amd.comstruct BrigOperandAddress { 145911308Santhony.gutierrez@amd.com BrigBase base; 146011308Santhony.gutierrez@amd.com BrigCodeOffset32_t symbol; //.wtype=ItemRef<DirectiveVariable> 146111308Santhony.gutierrez@amd.com BrigOperandOffset32_t reg; //.wtype=ItemRef<OperandRegister> 146211308Santhony.gutierrez@amd.com BrigUInt64 offset; //.acc=subItem<UInt64> //.wtype=UInt64 146311308Santhony.gutierrez@amd.com}; 146411308Santhony.gutierrez@amd.com 146511308Santhony.gutierrez@amd.comstruct BrigOperandAlign { 146611308Santhony.gutierrez@amd.com BrigBase base; 146711308Santhony.gutierrez@amd.com BrigAlignment8_t align; 146811308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 146911308Santhony.gutierrez@amd.com}; 147011308Santhony.gutierrez@amd.com 147111308Santhony.gutierrez@amd.comstruct BrigOperandCodeList { 147211308Santhony.gutierrez@amd.com BrigBase base; 147311308Santhony.gutierrez@amd.com BrigDataOffsetCodeList32_t elements; 147411308Santhony.gutierrez@amd.com 147511308Santhony.gutierrez@amd.com //+hcode unsigned elementCount(); 147611308Santhony.gutierrez@amd.com //+implcode inline unsigned KLASS::elementCount() { return elements().size(); } 147711308Santhony.gutierrez@amd.com //+hcode Code elements(int index); 147811308Santhony.gutierrez@amd.com //+implcode inline Code KLASS::elements(int index) { return elements()[index]; } 147911308Santhony.gutierrez@amd.com}; 148011308Santhony.gutierrez@amd.com 148111308Santhony.gutierrez@amd.comstruct BrigOperandCodeRef { 148211308Santhony.gutierrez@amd.com BrigBase base; 148311308Santhony.gutierrez@amd.com BrigCodeOffset32_t ref; 148411308Santhony.gutierrez@amd.com}; 148511308Santhony.gutierrez@amd.com 148611308Santhony.gutierrez@amd.comstruct BrigOperandConstantBytes { 148711308Santhony.gutierrez@amd.com BrigBase base; 148811308Santhony.gutierrez@amd.com BrigType16_t type; //.defValue=0 148911308Santhony.gutierrez@amd.com uint16_t reserved; //.defValue=0 149011308Santhony.gutierrez@amd.com BrigDataOffsetString32_t bytes; 149111308Santhony.gutierrez@amd.com}; 149211308Santhony.gutierrez@amd.com 149311308Santhony.gutierrez@amd.comstruct BrigOperandConstantOperandList { 149411308Santhony.gutierrez@amd.com BrigBase base; 149511308Santhony.gutierrez@amd.com BrigType16_t type; 149611308Santhony.gutierrez@amd.com uint16_t reserved; //.defValue=0 149711308Santhony.gutierrez@amd.com BrigDataOffsetOperandList32_t elements; 149811308Santhony.gutierrez@amd.com 149911308Santhony.gutierrez@amd.com //+hcode unsigned elementCount(); 150011308Santhony.gutierrez@amd.com //+implcode inline unsigned KLASS::elementCount() { return elements().size(); } 150111308Santhony.gutierrez@amd.com //+hcode Operand elements(int index); 150211308Santhony.gutierrez@amd.com //+implcode inline Operand KLASS::elements(int index) { return elements()[index]; } 150311308Santhony.gutierrez@amd.com}; 150411308Santhony.gutierrez@amd.com 150511308Santhony.gutierrez@amd.comstruct BrigOperandConstantImage { 150611308Santhony.gutierrez@amd.com BrigBase base; 150711308Santhony.gutierrez@amd.com BrigType16_t type; 150811308Santhony.gutierrez@amd.com BrigImageGeometry8_t geometry; 150911308Santhony.gutierrez@amd.com BrigImageChannelOrder8_t channelOrder; 151011308Santhony.gutierrez@amd.com BrigImageChannelType8_t channelType; 151111308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 151211308Santhony.gutierrez@amd.com BrigUInt64 width; //.acc=subItem<UInt64> //.wtype=UInt64 151311308Santhony.gutierrez@amd.com BrigUInt64 height; //.acc=subItem<UInt64> //.wtype=UInt64 151411308Santhony.gutierrez@amd.com BrigUInt64 depth; //.acc=subItem<UInt64> //.wtype=UInt64 151511308Santhony.gutierrez@amd.com BrigUInt64 array; //.acc=subItem<UInt64> //.wtype=UInt64 151611308Santhony.gutierrez@amd.com}; 151711308Santhony.gutierrez@amd.com 151811308Santhony.gutierrez@amd.comstruct BrigOperandOperandList { 151911308Santhony.gutierrez@amd.com BrigBase base; 152011308Santhony.gutierrez@amd.com BrigDataOffsetOperandList32_t elements; 152111308Santhony.gutierrez@amd.com 152211308Santhony.gutierrez@amd.com //+hcode unsigned elementCount(); 152311308Santhony.gutierrez@amd.com //+implcode inline unsigned KLASS::elementCount() { return elements().size(); } 152411308Santhony.gutierrez@amd.com //+hcode Operand elements(int index); 152511308Santhony.gutierrez@amd.com //+implcode inline Operand KLASS::elements(int index) { return elements()[index]; } 152611308Santhony.gutierrez@amd.com}; 152711308Santhony.gutierrez@amd.com 152811308Santhony.gutierrez@amd.comstruct BrigOperandRegister { 152911308Santhony.gutierrez@amd.com BrigBase base; 153011308Santhony.gutierrez@amd.com BrigRegisterKind16_t regKind; 153111308Santhony.gutierrez@amd.com uint16_t regNum; 153211308Santhony.gutierrez@amd.com}; 153311308Santhony.gutierrez@amd.com 153411308Santhony.gutierrez@amd.comstruct BrigOperandConstantSampler { 153511308Santhony.gutierrez@amd.com BrigBase base; 153611308Santhony.gutierrez@amd.com BrigType16_t type; 153711308Santhony.gutierrez@amd.com BrigSamplerCoordNormalization8_t coord; 153811308Santhony.gutierrez@amd.com BrigSamplerFilter8_t filter; 153911308Santhony.gutierrez@amd.com BrigSamplerAddressing8_t addressing; 154011308Santhony.gutierrez@amd.com uint8_t reserved[3]; //.defValue=0 154111308Santhony.gutierrez@amd.com}; 154211308Santhony.gutierrez@amd.com 154311308Santhony.gutierrez@amd.comstruct BrigOperandString { 154411308Santhony.gutierrez@amd.com BrigBase base; 154511308Santhony.gutierrez@amd.com BrigDataOffsetString32_t string; 154611308Santhony.gutierrez@amd.com}; 154711308Santhony.gutierrez@amd.com 154811308Santhony.gutierrez@amd.comstruct BrigOperandWavesize { 154911308Santhony.gutierrez@amd.com BrigBase base; 155011308Santhony.gutierrez@amd.com}; 155111308Santhony.gutierrez@amd.com 155211308Santhony.gutierrez@amd.com//.ignore{ 155311308Santhony.gutierrez@amd.com 155411308Santhony.gutierrez@amd.comenum BrigExceptionsMask { 155511308Santhony.gutierrez@amd.com BRIG_EXCEPTIONS_INVALID_OPERATION = 1 << 0, 155611308Santhony.gutierrez@amd.com BRIG_EXCEPTIONS_DIVIDE_BY_ZERO = 1 << 1, 155711308Santhony.gutierrez@amd.com BRIG_EXCEPTIONS_OVERFLOW = 1 << 2, 155811308Santhony.gutierrez@amd.com BRIG_EXCEPTIONS_UNDERFLOW = 1 << 3, 155911308Santhony.gutierrez@amd.com BRIG_EXCEPTIONS_INEXACT = 1 << 4, 156011308Santhony.gutierrez@amd.com 156111308Santhony.gutierrez@amd.com BRIG_EXCEPTIONS_FIRST_USER_DEFINED = 1 << 16 156211308Santhony.gutierrez@amd.com}; 156311308Santhony.gutierrez@amd.com 156411308Santhony.gutierrez@amd.comstruct BrigSectionHeader { 156511308Santhony.gutierrez@amd.com uint64_t byteCount; 156611308Santhony.gutierrez@amd.com uint32_t headerByteCount; 156711308Santhony.gutierrez@amd.com uint32_t nameLength; 156811308Santhony.gutierrez@amd.com uint8_t name[1]; 156911308Santhony.gutierrez@amd.com}; 157011308Santhony.gutierrez@amd.com 157111308Santhony.gutierrez@amd.com#define MODULE_IDENTIFICATION_LENGTH (8) 157211308Santhony.gutierrez@amd.com 157311308Santhony.gutierrez@amd.comstruct BrigModuleHeader { 157411308Santhony.gutierrez@amd.com char identification[MODULE_IDENTIFICATION_LENGTH]; 157511308Santhony.gutierrez@amd.com BrigVersion32_t brigMajor; 157611308Santhony.gutierrez@amd.com BrigVersion32_t brigMinor; 157711308Santhony.gutierrez@amd.com uint64_t byteCount; 157811308Santhony.gutierrez@amd.com uint8_t hash[64]; 157911308Santhony.gutierrez@amd.com uint32_t reserved; 158011308Santhony.gutierrez@amd.com uint32_t sectionCount; 158111308Santhony.gutierrez@amd.com uint64_t sectionIndex; 158211308Santhony.gutierrez@amd.com}; 158311308Santhony.gutierrez@amd.com 158411308Santhony.gutierrez@amd.comtypedef BrigModuleHeader* BrigModule_t; 158511308Santhony.gutierrez@amd.com 158611308Santhony.gutierrez@amd.com#endif // defined(INCLUDED_BRIG_H) 158711308Santhony.gutierrez@amd.com//} 1588