/*===================== begin_copyright_notice ==================================

Copyright (c) 2017 Intel Corporation

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


======================= end_copyright_notice ==================================*/

/*
 * !!! DO NOT EDIT THIS FILE !!!
 *
 * This file was automagically crafted by GED's model parser.
 */

#include "ged.h"
#include "ged_decoding_tables.h"
#include "ged_enumerations_internal.h"
#include "ged_enum_tables.h"
#include "ged_enum_interpreters.h"
#include "common/ged_enum_types_internal.h"
#include "common/ged_string_utils.h"
#include "xcoder/ged_disassembler.h"
#include "xcoder/ged_interpreters.h"
#include "ged_collectors_tables.h"
#include "ged_model_gen7.h"
#include "ged_model_gen7_5.h"
#include "ged_model_gen8.h"
#include "ged_model_gen8_1.h"
#include "ged_model_gen9.h"
#include "ged_model_gen10.h"
#include "ged_model_gen11.h"
ModelData ModelsArray[7] =
{
    { GEN7::Opcodes, "7", 108, (const ged_field_enum_table_t)OpcodeTable2, 29, PositionInterpreterTable0, 3, EnumInterpretersTable0, 0, NULL }, // 0
    { GEN7_5::Opcodes, "7.5", 108, (const ged_field_enum_table_t)OpcodeTable3, 30, PositionInterpreterTable1, 3, EnumInterpretersTable0, 0, NULL }, // 1
    { GEN8::Opcodes, "8", 108, (const ged_field_enum_table_t)OpcodeTable4, 33, PositionInterpreterTable2, 3, EnumInterpretersTable1, 0, NULL }, // 2
    { GEN8_1::Opcodes, "8.1", 108, (const ged_field_enum_table_t)OpcodeTable4, 33, PositionInterpreterTable2, 3, EnumInterpretersTable1, 0, NULL }, // 3
    { GEN9::Opcodes, "9", 108, (const ged_field_enum_table_t)OpcodeTable0, 35, PositionInterpreterTable3, 3, EnumInterpretersTable1, 0, NULL }, // 4
    { GEN10::Opcodes, "10", 108, (const ged_field_enum_table_t)OpcodeTable0, 35, PositionInterpreterTable4, 3, EnumInterpretersTable1, 0, NULL }, // 5
    { GEN11::Opcodes, "11", 108, (const ged_field_enum_table_t)OpcodeTable1, 35, PositionInterpreterTable5, 3, EnumInterpretersTable2, 0, NULL } // 6
}; // ModelsArray[]

#if GED_DISASSEMBLY
ModelDisassemblyData ModelsDisassemblyArray[7] =
{
    { GEN7::GetDisassemblyTable }, // 0
    { GEN7_5::GetDisassemblyTable }, // 1
    { GEN8::GetDisassemblyTable }, // 2
    { GEN8_1::GetDisassemblyTable }, // 3
    { GEN9::GetDisassemblyTable }, // 4
    { GEN10::GetDisassemblyTable }, // 5
    { GEN11::GetDisassemblyTable } // 6
}; // ModelsDisassemblyArray[]
#endif // GED_DISASSEMBLY
const unsigned int numOfSupportedModels = 7;
const char* modelNames[7] = { "gen7", "gen7_5", "gen8", "gen8_1", "gen9", "gen10", "gen11" };

/*!
 * Get the GED_MODEL Id for the given model name.
 *
 * @param[in]       name   Name of the model to find.
 * @param[out]      model  Will hold the given model's Id if the model is found, otherwise unchanged.
 *
 * @return      TRUE if the given model name is valid, FALSE otherwise.
 */
bool GetModelByName(const string& name, /* GED_MODEL */ unsigned int& model)
{
    if ("gen7" == name) model = GED_MODEL_GEN_7;
    else if ("gen7_5" == name) model = GED_MODEL_GEN_7_5;
    else if ("gen8" == name) model = GED_MODEL_GEN_8;
    else if ("gen8_1" == name) model = GED_MODEL_GEN_8_1;
    else if ("gen9" == name) model = GED_MODEL_GEN_9;
    else if ("gen10" == name) model = GED_MODEL_GEN_10;
    else if ("gen11" == name) model = GED_MODEL_GEN_11;
    else return false;
    return true;
}
const char* GED_GetModelVersionString(GED_MODEL model)
{
    unsigned int rawModel = static_cast<unsigned int>(model);
    if (rawModel < numOfSupportedModels)
        return ModelsArray[rawModel].modelVersion;
    return "";
}
const char* GED_GetReturnValueString(GED_RETURN_VALUE returnValue)
{
    unsigned int rawReturnValue = static_cast<unsigned int>(returnValue);
    if (rawReturnValue < GED_RETURN_VALUE_SIZE)
        return gedReturnValueStrings[returnValue];
    return "";
}
const char* GED_GetReturnValuePad(GED_RETURN_VALUE returnValue)
{
    unsigned int rawReturnValue = static_cast<unsigned int>(returnValue);
    if (rawReturnValue < GED_RETURN_VALUE_SIZE)
        return gedReturnValuePadding[returnValue];
    return "";
}
GED_RETURN_VALUE GED_InitEmptyIns(const GED_MODEL modelId, ged_ins_t* ins, GED_OPCODE opcode)
{
    return reinterpret_cast<GEDIns*>(ins)->Init(modelId, opcode);

}
GED_RETURN_VALUE GED_DecodeIns(const GED_MODEL modelId, const unsigned char* rawBytes, const uint32_t size, ged_ins_t* ins)
{
    return reinterpret_cast<GEDIns*>(ins)->Decode(modelId, rawBytes, size);
}
GED_RETURN_VALUE GED_EncodeIns(ged_ins_t* ins, const GED_INS_TYPE insType, unsigned char* rawBytes)
{
    return reinterpret_cast<GEDIns*>(ins)->Encode(insType, rawBytes);
}
uint32_t GED_InsSize(const ged_ins_t* ins)
{
    return reinterpret_cast<const GEDIns*>(ins)->GetInstructionSize();
}
bool GED_InsModified(const ged_ins_t* ins)
{
    return reinterpret_cast<const GEDIns*>(ins)->IsModified();
}

#if GED_VALIDATION_API
GED_RETURN_VALUE GED_CountCompactEncodings(ged_ins_t* ins, unsigned int& count)
{
    return reinterpret_cast<GEDIns*>(ins)->CountCompacted(count);
}
GED_RETURN_VALUE GED_GetCompactEncodings(ged_ins_t* ins, const unsigned int size, unsigned char* compactBytesArray)
{
    return reinterpret_cast<GEDIns*>(ins)->RetrieveAllCompactedFormats(size, compactBytesArray);
}
GED_RETURN_VALUE GED_PrintFieldBitLocation(const ged_ins_t* ins, const GED_INS_FIELD field)
{
    return reinterpret_cast<const GEDIns*>(ins)->PrintFieldBitLocation(field);
}
#endif // GED_VALIDATION_API
uint32_t GED_FieldSize(const ged_ins_t* ins, const GED_INS_FIELD field)
{
    return reinterpret_cast<const GEDIns*>(ins)->GetFieldSize(field);
}
GED_OPCODE GED_GetOpcode(const ged_ins_t* ins)
{
    return (GED_OPCODE)(reinterpret_cast<const GEDIns*>(ins)->GetOpcode());
}
const char* GED_GetMnemonic(const ged_ins_t* ins)
{
    return GED_GetOpcodeString((GED_OPCODE)(reinterpret_cast<const GEDIns*>(ins)->GetOpcode()));
}
GED_RETURN_VALUE GED_SetOpcode(ged_ins_t* ins, const GED_OPCODE opcode)
{
    return reinterpret_cast<GEDIns*>(ins)->SetOpcode(opcode);
}
bool GED_IsCompact(const ged_ins_t* ins)
{
    return reinterpret_cast<const GEDIns*>(ins)->IsCompact();
}
uint32_t GED_GetNumOfSourceOperands(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_NumOfSourceOperands, *result);
}
uint32_t GED_GetHasDestinationOperand(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_HasDestinationOperand, *result);
}
GED_ACCESS_MODE GED_GetAccessMode(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_AccessMode, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ACCESS_MODE)value : GED_ACCESS_MODE_INVALID;
}
GED_RETURN_VALUE GED_SetAccessMode(ged_ins_t* ins, const GED_ACCESS_MODE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_AccessMode, (const uint32_t)value);
}
GED_MASK_CTRL GED_GetMaskCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MaskCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MASK_CTRL)value : GED_MASK_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetMaskCtrl(ged_ins_t* ins, const GED_MASK_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MaskCtrl, (const uint32_t)value);
}
GED_DEP_CTRL GED_GetDepCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DepCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DEP_CTRL)value : GED_DEP_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetDepCtrl(ged_ins_t* ins, const GED_DEP_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DepCtrl, (const uint32_t)value);
}
GED_EXEC_MASK_OFFSET_CTRL GED_GetExecMaskOffsetCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExecMaskOffsetCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_EXEC_MASK_OFFSET_CTRL)value : GED_EXEC_MASK_OFFSET_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetExecMaskOffsetCtrl(ged_ins_t* ins, const GED_EXEC_MASK_OFFSET_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExecMaskOffsetCtrl, (const uint32_t)value);
}
GED_CHANNEL_OFFSET GED_GetChannelOffset(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ChannelOffset, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_CHANNEL_OFFSET)value : GED_CHANNEL_OFFSET_INVALID;
}
GED_RETURN_VALUE GED_SetChannelOffset(ged_ins_t* ins, const GED_CHANNEL_OFFSET value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ChannelOffset, (const uint32_t)value);
}
GED_THREAD_CTRL GED_GetThreadCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ThreadCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_THREAD_CTRL)value : GED_THREAD_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetThreadCtrl(ged_ins_t* ins, const GED_THREAD_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ThreadCtrl, (const uint32_t)value);
}
GED_PRED_CTRL GED_GetPredCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_PredCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_PRED_CTRL)value : GED_PRED_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetPredCtrl(ged_ins_t* ins, const GED_PRED_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_PredCtrl, (const uint32_t)value);
}
GED_PRED_INV GED_GetPredInv(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_PredInv, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_PRED_INV)value : GED_PRED_INV_INVALID;
}
GED_RETURN_VALUE GED_SetPredInv(ged_ins_t* ins, const GED_PRED_INV value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_PredInv, (const uint32_t)value);
}
uint32_t GED_GetExecSize(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExecSize, *result);
}
GED_RETURN_VALUE GED_SetExecSize(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExecSize, value);
}
GED_COND_MODIFIER GED_GetCondModifier(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_CondModifier, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_COND_MODIFIER)value : GED_COND_MODIFIER_INVALID;
}
GED_RETURN_VALUE GED_SetCondModifier(ged_ins_t* ins, const GED_COND_MODIFIER value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_CondModifier, (const uint32_t)value);
}
GED_ACC_WR_CTRL GED_GetAccWrCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_AccWrCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ACC_WR_CTRL)value : GED_ACC_WR_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetAccWrCtrl(ged_ins_t* ins, const GED_ACC_WR_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_AccWrCtrl, (const uint32_t)value);
}
GED_DEBUG_CTRL GED_GetDebugCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DebugCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DEBUG_CTRL)value : GED_DEBUG_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetDebugCtrl(ged_ins_t* ins, const GED_DEBUG_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DebugCtrl, (const uint32_t)value);
}
GED_SATURATE GED_GetSaturate(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Saturate, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SATURATE)value : GED_SATURATE_INVALID;
}
GED_RETURN_VALUE GED_SetSaturate(ged_ins_t* ins, const GED_SATURATE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Saturate, (const uint32_t)value);
}
GED_REG_FILE GED_GetDstRegFile(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstRegFile, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REG_FILE)value : GED_REG_FILE_INVALID;
}
GED_RETURN_VALUE GED_SetDstRegFile(ged_ins_t* ins, const GED_REG_FILE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstRegFile, (const uint32_t)value);
}
GED_DATA_TYPE GED_GetDstDataType(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstDataType, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DATA_TYPE)value : GED_DATA_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetDstDataType(ged_ins_t* ins, const GED_DATA_TYPE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstDataType, (const uint32_t)value);
}
GED_REG_FILE GED_GetSrc0RegFile(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0RegFile, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REG_FILE)value : GED_REG_FILE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc0RegFile(ged_ins_t* ins, const GED_REG_FILE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0RegFile, (const uint32_t)value);
}
GED_DATA_TYPE GED_GetSrc0DataType(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0DataType, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DATA_TYPE)value : GED_DATA_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc0DataType(ged_ins_t* ins, const GED_DATA_TYPE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0DataType, (const uint32_t)value);
}
GED_REG_FILE GED_GetSrc1RegFile(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1RegFile, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REG_FILE)value : GED_REG_FILE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc1RegFile(ged_ins_t* ins, const GED_REG_FILE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1RegFile, (const uint32_t)value);
}
GED_DATA_TYPE GED_GetSrc1DataType(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1DataType, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DATA_TYPE)value : GED_DATA_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc1DataType(ged_ins_t* ins, const GED_DATA_TYPE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1DataType, (const uint32_t)value);
}
GED_DST_CHAN_EN GED_GetDstChanEn(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstChanEn, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DST_CHAN_EN)value : GED_DST_CHAN_EN_INVALID;
}
GED_RETURN_VALUE GED_SetDstChanEn(ged_ins_t* ins, const GED_DST_CHAN_EN value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstChanEn, (const uint32_t)value);
}
uint32_t GED_GetDstSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstSubRegNum, *result);
}
GED_RETURN_VALUE GED_SetDstSubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstSubRegNum, value);
}
int32_t GED_GetDstAddrImm(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetSignedField(GED_INS_FIELD_DstAddrImm, *result)._dw;
}
GED_RETURN_VALUE GED_SetDstAddrImm(ged_ins_t* ins, const int32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetSignedField(GED_INS_FIELD_DstAddrImm, value);
}
uint32_t GED_GetDstRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstRegNum, *result);
}
GED_RETURN_VALUE GED_SetDstRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstRegNum, value);
}
uint32_t GED_GetDstAddrSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstAddrSubRegNum, *result);
}
GED_RETURN_VALUE GED_SetDstAddrSubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstAddrSubRegNum, value);
}
uint32_t GED_GetDstHorzStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstHorzStride, *result);
}
GED_RETURN_VALUE GED_SetDstHorzStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstHorzStride, value);
}
GED_ADDR_MODE GED_GetDstAddrMode(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstAddrMode, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ADDR_MODE)value : GED_ADDR_MODE_INVALID;
}
GED_RETURN_VALUE GED_SetDstAddrMode(ged_ins_t* ins, const GED_ADDR_MODE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstAddrMode, (const uint32_t)value);
}
uint32_t GED_GetSrc0ChanSel(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0ChanSel, *result);
}
GED_RETURN_VALUE GED_SetSrc0ChanSel(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0ChanSel, value);
}
uint32_t GED_GetSrc0SubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0SubRegNum, *result);
}
GED_RETURN_VALUE GED_SetSrc0SubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0SubRegNum, value);
}
int32_t GED_GetSrc0AddrImm(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetSignedField(GED_INS_FIELD_Src0AddrImm, *result)._dw;
}
GED_RETURN_VALUE GED_SetSrc0AddrImm(ged_ins_t* ins, const int32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetSignedField(GED_INS_FIELD_Src0AddrImm, value);
}
uint32_t GED_GetSrc0RegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0RegNum, *result);
}
GED_RETURN_VALUE GED_SetSrc0RegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0RegNum, value);
}
uint32_t GED_GetSrc0AddrSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0AddrSubRegNum, *result);
}
GED_RETURN_VALUE GED_SetSrc0AddrSubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0AddrSubRegNum, value);
}
GED_SRC_MOD GED_GetSrc0SrcMod(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0SrcMod, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SRC_MOD)value : GED_SRC_MOD_INVALID;
}
GED_RETURN_VALUE GED_SetSrc0SrcMod(ged_ins_t* ins, const GED_SRC_MOD value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0SrcMod, (const uint32_t)value);
}
GED_ADDR_MODE GED_GetSrc0AddrMode(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0AddrMode, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ADDR_MODE)value : GED_ADDR_MODE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc0AddrMode(ged_ins_t* ins, const GED_ADDR_MODE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0AddrMode, (const uint32_t)value);
}
uint32_t GED_GetSrc0HorzStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0HorzStride, *result);
}
GED_RETURN_VALUE GED_SetSrc0HorzStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0HorzStride, value);
}
uint32_t GED_GetSrc0Width(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0Width, *result);
}
GED_RETURN_VALUE GED_SetSrc0Width(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0Width, value);
}
uint32_t GED_GetSrc0VertStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0VertStride, *result);
}
GED_RETURN_VALUE GED_SetSrc0VertStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0VertStride, value);
}
uint32_t GED_GetFlagSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_FlagSubRegNum, *result);
}
GED_RETURN_VALUE GED_SetFlagSubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_FlagSubRegNum, value);
}
uint32_t GED_GetFlagRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_FlagRegNum, *result);
}
GED_RETURN_VALUE GED_SetFlagRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_FlagRegNum, value);
}
uint32_t GED_GetSrc1ChanSel(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1ChanSel, *result);
}
GED_RETURN_VALUE GED_SetSrc1ChanSel(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1ChanSel, value);
}
uint32_t GED_GetSrc1SubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1SubRegNum, *result);
}
GED_RETURN_VALUE GED_SetSrc1SubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1SubRegNum, value);
}
int32_t GED_GetSrc1AddrImm(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetSignedField(GED_INS_FIELD_Src1AddrImm, *result)._dw;
}
GED_RETURN_VALUE GED_SetSrc1AddrImm(ged_ins_t* ins, const int32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetSignedField(GED_INS_FIELD_Src1AddrImm, value);
}
uint32_t GED_GetSrc1RegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1RegNum, *result);
}
GED_RETURN_VALUE GED_SetSrc1RegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1RegNum, value);
}
uint32_t GED_GetSrc1AddrSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1AddrSubRegNum, *result);
}
GED_RETURN_VALUE GED_SetSrc1AddrSubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1AddrSubRegNum, value);
}
GED_SRC_MOD GED_GetSrc1SrcMod(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1SrcMod, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SRC_MOD)value : GED_SRC_MOD_INVALID;
}
GED_RETURN_VALUE GED_SetSrc1SrcMod(ged_ins_t* ins, const GED_SRC_MOD value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1SrcMod, (const uint32_t)value);
}
GED_ADDR_MODE GED_GetSrc1AddrMode(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1AddrMode, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ADDR_MODE)value : GED_ADDR_MODE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc1AddrMode(ged_ins_t* ins, const GED_ADDR_MODE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1AddrMode, (const uint32_t)value);
}
uint32_t GED_GetSrc1HorzStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1HorzStride, *result);
}
GED_RETURN_VALUE GED_SetSrc1HorzStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1HorzStride, value);
}
uint32_t GED_GetSrc1Width(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1Width, *result);
}
GED_RETURN_VALUE GED_SetSrc1Width(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1Width, value);
}
uint32_t GED_GetSrc1VertStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1VertStride, *result);
}
GED_RETURN_VALUE GED_SetSrc1VertStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1VertStride, value);
}
uint64_t GED_GetImm(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsigned64Field(GED_INS_FIELD_Imm, *result);
}
GED_RETURN_VALUE GED_SetImm(ged_ins_t* ins, const uint64_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsigned64Field(GED_INS_FIELD_Imm, value);
}
GED_SRC_MOD GED_GetSrc2SrcMod(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2SrcMod, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SRC_MOD)value : GED_SRC_MOD_INVALID;
}
GED_RETURN_VALUE GED_SetSrc2SrcMod(ged_ins_t* ins, const GED_SRC_MOD value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2SrcMod, (const uint32_t)value);
}
GED_DATA_TYPE GED_GetSrcDataType(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_SrcDataType, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DATA_TYPE)value : GED_DATA_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetSrcDataType(ged_ins_t* ins, const GED_DATA_TYPE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_SrcDataType, (const uint32_t)value);
}
GED_REP_CTRL GED_GetSrc0RepCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0RepCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REP_CTRL)value : GED_REP_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetSrc0RepCtrl(ged_ins_t* ins, const GED_REP_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0RepCtrl, (const uint32_t)value);
}
GED_REP_CTRL GED_GetSrc1RepCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1RepCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REP_CTRL)value : GED_REP_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetSrc1RepCtrl(ged_ins_t* ins, const GED_REP_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1RepCtrl, (const uint32_t)value);
}
GED_REP_CTRL GED_GetSrc2RepCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2RepCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REP_CTRL)value : GED_REP_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetSrc2RepCtrl(ged_ins_t* ins, const GED_REP_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2RepCtrl, (const uint32_t)value);
}
uint32_t GED_GetSrc2ChanSel(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2ChanSel, *result);
}
GED_RETURN_VALUE GED_SetSrc2ChanSel(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2ChanSel, value);
}
uint32_t GED_GetSrc2SubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2SubRegNum, *result);
}
GED_RETURN_VALUE GED_SetSrc2SubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2SubRegNum, value);
}
uint32_t GED_GetSrc2RegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2RegNum, *result);
}
GED_RETURN_VALUE GED_SetSrc2RegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2RegNum, value);
}
GED_REG_FILE GED_GetSrc2RegFile(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2RegFile, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REG_FILE)value : GED_REG_FILE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc2RegFile(ged_ins_t* ins, const GED_REG_FILE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2RegFile, (const uint32_t)value);
}
GED_ADDR_MODE GED_GetSrc2AddrMode(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2AddrMode, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ADDR_MODE)value : GED_ADDR_MODE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc2AddrMode(ged_ins_t* ins, const GED_ADDR_MODE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2AddrMode, (const uint32_t)value);
}
uint32_t GED_GetSrc2VertStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2VertStride, *result);
}
GED_RETURN_VALUE GED_SetSrc2VertStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2VertStride, value);
}
GED_SFID GED_GetSFID(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_SFID, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SFID)value : GED_SFID_INVALID;
}
GED_RETURN_VALUE GED_SetSFID(ged_ins_t* ins, const GED_SFID value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_SFID, (const uint32_t)value);
}
GED_REG_FILE GED_GetDescRegFile(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DescRegFile, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REG_FILE)value : GED_REG_FILE_INVALID;
}
GED_RETURN_VALUE GED_SetDescRegFile(ged_ins_t* ins, const GED_REG_FILE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DescRegFile, (const uint32_t)value);
}
GED_DATA_TYPE GED_GetDescDataType(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DescDataType, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DATA_TYPE)value : GED_DATA_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetDescDataType(ged_ins_t* ins, const GED_DATA_TYPE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DescDataType, (const uint32_t)value);
}
uint32_t GED_GetDescAddrSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DescAddrSubRegNum, *result);
}
GED_RETURN_VALUE GED_SetDescAddrSubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DescAddrSubRegNum, value);
}
uint32_t GED_GetDescRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DescRegNum, *result);
}
GED_RETURN_VALUE GED_SetDescRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DescRegNum, value);
}
uint32_t GED_GetDescHorzStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DescHorzStride, *result);
}
GED_RETURN_VALUE GED_SetDescHorzStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DescHorzStride, value);
}
uint32_t GED_GetDescWidth(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DescWidth, *result);
}
GED_RETURN_VALUE GED_SetDescWidth(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DescWidth, value);
}
uint32_t GED_GetDescVertStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DescVertStride, *result);
}
GED_RETURN_VALUE GED_SetDescVertStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DescVertStride, value);
}
uint32_t GED_GetMsgDesc(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MsgDesc, *result);
}
GED_RETURN_VALUE GED_SetMsgDesc(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MsgDesc, value);
}
uint32_t GED_GetExMsgDesc(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExMsgDesc, *result);
}
GED_RETURN_VALUE GED_SetExMsgDesc(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExMsgDesc, value);
}
GED_EOT GED_GetEOT(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_EOT, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_EOT)value : GED_EOT_INVALID;
}
GED_RETURN_VALUE GED_SetEOT(ged_ins_t* ins, const GED_EOT value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_EOT, (const uint32_t)value);
}
GED_MATH_FC GED_GetMathFC(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MathFC, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MATH_FC)value : GED_MATH_FC_INVALID;
}
GED_RETURN_VALUE GED_SetMathFC(ged_ins_t* ins, const GED_MATH_FC value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MathFC, (const uint32_t)value);
}
int32_t GED_GetJIP(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetSignedField(GED_INS_FIELD_JIP, *result)._dw;
}
GED_RETURN_VALUE GED_SetJIP(ged_ins_t* ins, const int32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetSignedField(GED_INS_FIELD_JIP, value);
}
int32_t GED_GetUIP(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetSignedField(GED_INS_FIELD_UIP, *result)._dw;
}
GED_RETURN_VALUE GED_SetUIP(ged_ins_t* ins, const int32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetSignedField(GED_INS_FIELD_UIP, value);
}
uint32_t GED_GetControlIndex(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ControlIndex, *result);
}
GED_RETURN_VALUE GED_SetControlIndex(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ControlIndex, value);
}
uint32_t GED_GetDataTypeIndex(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DataTypeIndex, *result);
}
GED_RETURN_VALUE GED_SetDataTypeIndex(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DataTypeIndex, value);
}
uint32_t GED_GetSubRegIndex(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_SubRegIndex, *result);
}
GED_RETURN_VALUE GED_SetSubRegIndex(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_SubRegIndex, value);
}
uint32_t GED_GetSrc0Index(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0Index, *result);
}
GED_RETURN_VALUE GED_SetSrc0Index(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0Index, value);
}
uint32_t GED_GetSrc1Index(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1Index, *result);
}
GED_RETURN_VALUE GED_SetSrc1Index(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1Index, value);
}
uint32_t GED_GetDescIndex(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DescIndex, *result);
}
GED_RETURN_VALUE GED_SetDescIndex(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DescIndex, value);
}
GED_REG_FILE GED_GetExDescRegFile(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExDescRegFile, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_REG_FILE)value : GED_REG_FILE_INVALID;
}
GED_RETURN_VALUE GED_SetExDescRegFile(ged_ins_t* ins, const GED_REG_FILE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExDescRegFile, (const uint32_t)value);
}
GED_MATH_MACRO_EXT GED_GetDstMathMacroExt(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_DstMathMacroExt, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MATH_MACRO_EXT)value : GED_MATH_MACRO_EXT_INVALID;
}
GED_RETURN_VALUE GED_SetDstMathMacroExt(ged_ins_t* ins, const GED_MATH_MACRO_EXT value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_DstMathMacroExt, (const uint32_t)value);
}
GED_MATH_MACRO_EXT GED_GetSrc0MathMacroExt(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src0MathMacroExt, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MATH_MACRO_EXT)value : GED_MATH_MACRO_EXT_INVALID;
}
GED_RETURN_VALUE GED_SetSrc0MathMacroExt(ged_ins_t* ins, const GED_MATH_MACRO_EXT value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src0MathMacroExt, (const uint32_t)value);
}
GED_MATH_MACRO_EXT GED_GetSrc1MathMacroExt(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src1MathMacroExt, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MATH_MACRO_EXT)value : GED_MATH_MACRO_EXT_INVALID;
}
GED_RETURN_VALUE GED_SetSrc1MathMacroExt(ged_ins_t* ins, const GED_MATH_MACRO_EXT value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src1MathMacroExt, (const uint32_t)value);
}
GED_MATH_MACRO_EXT GED_GetSrc2MathMacroExt(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2MathMacroExt, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MATH_MACRO_EXT)value : GED_MATH_MACRO_EXT_INVALID;
}
GED_RETURN_VALUE GED_SetSrc2MathMacroExt(ged_ins_t* ins, const GED_MATH_MACRO_EXT value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2MathMacroExt, (const uint32_t)value);
}
GED_BRANCH_CTRL GED_GetBranchCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_BranchCtrl, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_BRANCH_CTRL)value : GED_BRANCH_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetBranchCtrl(ged_ins_t* ins, const GED_BRANCH_CTRL value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_BranchCtrl, (const uint32_t)value);
}
uint32_t GED_GetSourceIndex(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_SourceIndex, *result);
}
GED_RETURN_VALUE GED_SetSourceIndex(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_SourceIndex, value);
}
GED_DATA_TYPE GED_GetSrc2DataType(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2DataType, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_DATA_TYPE)value : GED_DATA_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetSrc2DataType(ged_ins_t* ins, const GED_DATA_TYPE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2DataType, (const uint32_t)value);
}
GED_NO_SRC_DEP_SET GED_GetNoSrcDepSet(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_NoSrcDepSet, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_NO_SRC_DEP_SET)value : GED_NO_SRC_DEP_SET_INVALID;
}
GED_RETURN_VALUE GED_SetNoSrcDepSet(ged_ins_t* ins, const GED_NO_SRC_DEP_SET value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_NoSrcDepSet, (const uint32_t)value);
}
uint32_t GED_GetExFuncCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExFuncCtrl, *result);
}
GED_RETURN_VALUE GED_SetExFuncCtrl(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExFuncCtrl, value);
}
uint32_t GED_GetExMsgLength(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExMsgLength, *result);
}
GED_RETURN_VALUE GED_SetExMsgLength(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExMsgLength, value);
}
uint32_t GED_GetExDescAddrSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExDescAddrSubRegNum, *result);
}
GED_RETURN_VALUE GED_SetExDescAddrSubRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExDescAddrSubRegNum, value);
}
uint32_t GED_GetExDescRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExDescRegNum, *result);
}
GED_RETURN_VALUE GED_SetExDescRegNum(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExDescRegNum, value);
}
uint32_t GED_GetMsgDescCategory(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MsgDescCategory, *result);
}
GED_RETURN_VALUE GED_SetMsgDescCategory(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MsgDescCategory, value);
}
uint32_t GED_GetMsgDescScratchAddrOffset(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MsgDescScratchAddrOffset, *result);
}
GED_RETURN_VALUE GED_SetMsgDescScratchAddrOffset(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MsgDescScratchAddrOffset, value);
}
uint32_t GED_GetMsgDescScratchBlockSize(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MsgDescScratchBlockSize, *result);
}
GED_RETURN_VALUE GED_SetMsgDescScratchBlockSize(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MsgDescScratchBlockSize, value);
}
uint32_t GED_GetMsgDescScratchInvalidateAfterRead(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MsgDescScratchInvalidateAfterRead, *result);
}
GED_RETURN_VALUE GED_SetMsgDescScratchInvalidateAfterRead(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MsgDescScratchInvalidateAfterRead, value);
}
GED_CHANNEL_MODE GED_GetMsgDescScratchChannelMode(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MsgDescScratchChannelMode, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_CHANNEL_MODE)value : GED_CHANNEL_MODE_INVALID;
}
GED_RETURN_VALUE GED_SetMsgDescScratchChannelMode(ged_ins_t* ins, const GED_CHANNEL_MODE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MsgDescScratchChannelMode, (const uint32_t)value);
}
GED_MESSAGE_TYPE GED_GetMsgDescScratchMessageType(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_MsgDescScratchMessageType, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMsgDescScratchMessageType(ged_ins_t* ins, const GED_MESSAGE_TYPE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_MsgDescScratchMessageType, (const uint32_t)value);
}
GED_EXECUTION_DATA_TYPE GED_GetExecutionDataType(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_ExecutionDataType, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_EXECUTION_DATA_TYPE)value : GED_EXECUTION_DATA_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetExecutionDataType(ged_ins_t* ins, const GED_EXECUTION_DATA_TYPE value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_ExecutionDataType, (const uint32_t)value);
}
uint64_t GED_GetSrc0TernaryImm(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsigned64Field(GED_INS_FIELD_Src0TernaryImm, *result);
}
GED_RETURN_VALUE GED_SetSrc0TernaryImm(ged_ins_t* ins, const uint64_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsigned64Field(GED_INS_FIELD_Src0TernaryImm, value);
}
uint64_t GED_GetSrc2TernaryImm(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsigned64Field(GED_INS_FIELD_Src2TernaryImm, *result);
}
GED_RETURN_VALUE GED_SetSrc2TernaryImm(ged_ins_t* ins, const uint64_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsigned64Field(GED_INS_FIELD_Src2TernaryImm, value);
}
uint32_t GED_GetSrc2HorzStride(ged_ins_t* ins, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return reinterpret_cast<GEDIns*>(ins)->GetUnsignedField(GED_INS_FIELD_Src2HorzStride, *result);
}
GED_RETURN_VALUE GED_SetSrc2HorzStride(ged_ins_t* ins, const uint32_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetUnsignedField(GED_INS_FIELD_Src2HorzStride, value);
}
int32_t GED_GetIndexedSrcAddrImm(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0AddrImm(ins, result);
    if (1 == index) return GED_GetSrc1AddrImm(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (int32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcAddrImm(ged_ins_t* ins, const int32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0AddrImm(ins, value);
    if (1 == index) return GED_SetSrc1AddrImm(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
GED_ADDR_MODE GED_GetIndexedSrcAddrMode(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0AddrMode(ins, result);
    if (1 == index) return GED_GetSrc1AddrMode(ins, result);
    if (2 == index) return GED_GetSrc2AddrMode(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return GED_ADDR_MODE_INVALID;
}
GED_RETURN_VALUE GED_SetIndexedSrcAddrMode(ged_ins_t* ins, const GED_ADDR_MODE value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0AddrMode(ins, value);
    if (1 == index) return GED_SetSrc1AddrMode(ins, value);
    if (2 == index) return GED_SetSrc2AddrMode(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
uint32_t GED_GetIndexedSrcAddrSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0AddrSubRegNum(ins, result);
    if (1 == index) return GED_GetSrc1AddrSubRegNum(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (uint32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcAddrSubRegNum(ged_ins_t* ins, const uint32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0AddrSubRegNum(ins, value);
    if (1 == index) return GED_SetSrc1AddrSubRegNum(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
uint32_t GED_GetIndexedSrcChanSel(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0ChanSel(ins, result);
    if (1 == index) return GED_GetSrc1ChanSel(ins, result);
    if (2 == index) return GED_GetSrc2ChanSel(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (uint32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcChanSel(ged_ins_t* ins, const uint32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0ChanSel(ins, value);
    if (1 == index) return GED_SetSrc1ChanSel(ins, value);
    if (2 == index) return GED_SetSrc2ChanSel(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
GED_DATA_TYPE GED_GetIndexedSrcDataType(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0DataType(ins, result);
    if (1 == index) return GED_GetSrc1DataType(ins, result);
    if (2 == index) return GED_GetSrc2DataType(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return GED_DATA_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetIndexedSrcDataType(ged_ins_t* ins, const GED_DATA_TYPE value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0DataType(ins, value);
    if (1 == index) return GED_SetSrc1DataType(ins, value);
    if (2 == index) return GED_SetSrc2DataType(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
uint32_t GED_GetIndexedSrcHorzStride(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0HorzStride(ins, result);
    if (1 == index) return GED_GetSrc1HorzStride(ins, result);
    if (2 == index) return GED_GetSrc2HorzStride(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (uint32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcHorzStride(ged_ins_t* ins, const uint32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0HorzStride(ins, value);
    if (1 == index) return GED_SetSrc1HorzStride(ins, value);
    if (2 == index) return GED_SetSrc2HorzStride(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
uint32_t GED_GetIndexedSrcIndex(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0Index(ins, result);
    if (1 == index) return GED_GetSrc1Index(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (uint32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcIndex(ged_ins_t* ins, const uint32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0Index(ins, value);
    if (1 == index) return GED_SetSrc1Index(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
GED_MATH_MACRO_EXT GED_GetIndexedSrcMathMacroExt(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0MathMacroExt(ins, result);
    if (1 == index) return GED_GetSrc1MathMacroExt(ins, result);
    if (2 == index) return GED_GetSrc2MathMacroExt(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return GED_MATH_MACRO_EXT_INVALID;
}
GED_RETURN_VALUE GED_SetIndexedSrcMathMacroExt(ged_ins_t* ins, const GED_MATH_MACRO_EXT value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0MathMacroExt(ins, value);
    if (1 == index) return GED_SetSrc1MathMacroExt(ins, value);
    if (2 == index) return GED_SetSrc2MathMacroExt(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
GED_REG_FILE GED_GetIndexedSrcRegFile(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0RegFile(ins, result);
    if (1 == index) return GED_GetSrc1RegFile(ins, result);
    if (2 == index) return GED_GetSrc2RegFile(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return GED_REG_FILE_INVALID;
}
GED_RETURN_VALUE GED_SetIndexedSrcRegFile(ged_ins_t* ins, const GED_REG_FILE value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0RegFile(ins, value);
    if (1 == index) return GED_SetSrc1RegFile(ins, value);
    if (2 == index) return GED_SetSrc2RegFile(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
uint32_t GED_GetIndexedSrcRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0RegNum(ins, result);
    if (1 == index) return GED_GetSrc1RegNum(ins, result);
    if (2 == index) return GED_GetSrc2RegNum(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (uint32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcRegNum(ged_ins_t* ins, const uint32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0RegNum(ins, value);
    if (1 == index) return GED_SetSrc1RegNum(ins, value);
    if (2 == index) return GED_SetSrc2RegNum(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
GED_REP_CTRL GED_GetIndexedSrcRepCtrl(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0RepCtrl(ins, result);
    if (1 == index) return GED_GetSrc1RepCtrl(ins, result);
    if (2 == index) return GED_GetSrc2RepCtrl(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return GED_REP_CTRL_INVALID;
}
GED_RETURN_VALUE GED_SetIndexedSrcRepCtrl(ged_ins_t* ins, const GED_REP_CTRL value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0RepCtrl(ins, value);
    if (1 == index) return GED_SetSrc1RepCtrl(ins, value);
    if (2 == index) return GED_SetSrc2RepCtrl(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
GED_SRC_MOD GED_GetIndexedSrcSrcMod(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0SrcMod(ins, result);
    if (1 == index) return GED_GetSrc1SrcMod(ins, result);
    if (2 == index) return GED_GetSrc2SrcMod(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return GED_SRC_MOD_INVALID;
}
GED_RETURN_VALUE GED_SetIndexedSrcSrcMod(ged_ins_t* ins, const GED_SRC_MOD value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0SrcMod(ins, value);
    if (1 == index) return GED_SetSrc1SrcMod(ins, value);
    if (2 == index) return GED_SetSrc2SrcMod(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
uint32_t GED_GetIndexedSrcSubRegNum(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0SubRegNum(ins, result);
    if (1 == index) return GED_GetSrc1SubRegNum(ins, result);
    if (2 == index) return GED_GetSrc2SubRegNum(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (uint32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcSubRegNum(ged_ins_t* ins, const uint32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0SubRegNum(ins, value);
    if (1 == index) return GED_SetSrc1SubRegNum(ins, value);
    if (2 == index) return GED_SetSrc2SubRegNum(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
uint32_t GED_GetIndexedSrcVertStride(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0VertStride(ins, result);
    if (1 == index) return GED_GetSrc1VertStride(ins, result);
    if (2 == index) return GED_GetSrc2VertStride(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (uint32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcVertStride(ged_ins_t* ins, const uint32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0VertStride(ins, value);
    if (1 == index) return GED_SetSrc1VertStride(ins, value);
    if (2 == index) return GED_SetSrc2VertStride(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
uint32_t GED_GetIndexedSrcWidth(ged_ins_t* ins, GED_RETURN_VALUE* result, const uint8_t index)
{
    if (0 == index) return GED_GetSrc0Width(ins, result);
    if (1 == index) return GED_GetSrc1Width(ins, result);
    if (NULL != result) *result = GED_RETURN_VALUE_INVALID_OPERAND;
    return (uint32_t)-1;
}
GED_RETURN_VALUE GED_SetIndexedSrcWidth(ged_ins_t* ins, const uint32_t value, const uint8_t index)
{
    if (0 == index) return GED_SetSrc0Width(ins, value);
    if (1 == index) return GED_SetSrc1Width(ins, value);
    return GED_RETURN_VALUE_INVALID_OPERAND;
}
GED_ARCH_REG GED_GetArchReg(const uint32_t regNum, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(regNum, GED_PSEUDO_FIELD_ArchReg, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ARCH_REG)value : GED_ARCH_REG_INVALID;
}
GED_RETURN_VALUE GED_SetArchReg(uint32_t* regNum, const GED_MODEL modelId, const GED_ARCH_REG archReg)
{
    return GEDInterpreter::SetInterpretedPosition(*regNum, GED_PSEUDO_FIELD_ArchReg, modelId, archReg);
}
uint32_t GED_GetArchRegNum(const uint32_t regNum, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return GEDInterpreter::InterpretPosition(regNum, GED_PSEUDO_FIELD_ArchRegNum, modelId, *result);
}
GED_RETURN_VALUE GED_SetArchRegNum(uint32_t* regNum, const GED_MODEL modelId, const uint32_t archRegNum)
{
    return GEDInterpreter::SetInterpretedPosition(*regNum, GED_PSEUDO_FIELD_ArchRegNum, modelId, archRegNum);
}
GED_SWIZZLE GED_GetSwizzleX(const uint32_t chanSel, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(chanSel, GED_PSEUDO_FIELD_SwizzleX, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SWIZZLE)value : GED_SWIZZLE_INVALID;
}
GED_RETURN_VALUE GED_SetSwizzleX(uint32_t* chanSel, const GED_MODEL modelId, const GED_SWIZZLE swizzle)
{
    return GEDInterpreter::SetInterpretedPosition(*chanSel, GED_PSEUDO_FIELD_SwizzleX, modelId, swizzle);
}
GED_SWIZZLE GED_GetSwizzleY(const uint32_t chanSel, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(chanSel, GED_PSEUDO_FIELD_SwizzleY, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SWIZZLE)value : GED_SWIZZLE_INVALID;
}
GED_RETURN_VALUE GED_SetSwizzleY(uint32_t* chanSel, const GED_MODEL modelId, const GED_SWIZZLE swizzle)
{
    return GEDInterpreter::SetInterpretedPosition(*chanSel, GED_PSEUDO_FIELD_SwizzleY, modelId, swizzle);
}
GED_SWIZZLE GED_GetSwizzleZ(const uint32_t chanSel, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(chanSel, GED_PSEUDO_FIELD_SwizzleZ, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SWIZZLE)value : GED_SWIZZLE_INVALID;
}
GED_RETURN_VALUE GED_SetSwizzleZ(uint32_t* chanSel, const GED_MODEL modelId, const GED_SWIZZLE swizzle)
{
    return GEDInterpreter::SetInterpretedPosition(*chanSel, GED_PSEUDO_FIELD_SwizzleZ, modelId, swizzle);
}
GED_SWIZZLE GED_GetSwizzleW(const uint32_t chanSel, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(chanSel, GED_PSEUDO_FIELD_SwizzleW, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SWIZZLE)value : GED_SWIZZLE_INVALID;
}
GED_RETURN_VALUE GED_SetSwizzleW(uint32_t* chanSel, const GED_MODEL modelId, const GED_SWIZZLE swizzle)
{
    return GEDInterpreter::SetInterpretedPosition(*chanSel, GED_PSEUDO_FIELD_SwizzleW, modelId, swizzle);
}
uint32_t GED_GetMessageLength(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageLength, modelId, *result);
}
GED_RETURN_VALUE GED_SetMessageLength(uint32_t* msgDesc, const GED_MODEL modelId, const uint32_t length)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageLength, modelId, length);
}
uint32_t GED_GetResponseLength(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_ResponseLength, modelId, *result);
}
GED_RETURN_VALUE GED_SetResponseLength(uint32_t* msgDesc, const GED_MODEL modelId, const uint32_t length)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_ResponseLength, modelId, length);
}
GED_HEADER_PRESENT GED_GetHeaderPresent(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_HeaderPresent, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_HEADER_PRESENT)value : GED_HEADER_PRESENT_INVALID;
}
GED_RETURN_VALUE GED_SetHeaderPresent(uint32_t* msgDesc, const GED_MODEL modelId, const GED_HEADER_PRESENT headerPresent)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_HeaderPresent, modelId, headerPresent);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_SAMPLER(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_SAMPLER, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_SAMPLER(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_SAMPLER, modelId, messageType);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_RC(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_RC, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_RC(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_RC, modelId, messageType);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_CC(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_CC, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_CC(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_CC, modelId, messageType);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_DC0(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC0, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_DC0(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC0, modelId, messageType);
}
GED_SLOT_GROUP GED_GetTypedSurfaceSlotGroup(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_TypedSurfaceSlotGroup, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SLOT_GROUP)value : GED_SLOT_GROUP_INVALID;
}
GED_RETURN_VALUE GED_SetTypedSurfaceSlotGroup(uint32_t* msgDesc, const GED_MODEL modelId, const GED_SLOT_GROUP slotGroup)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_TypedSurfaceSlotGroup, modelId, slotGroup);
}
GED_SLOT_GROUP GED_GetTypedAtomicSlotGroup(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_TypedAtomicSlotGroup, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SLOT_GROUP)value : GED_SLOT_GROUP_INVALID;
}
GED_RETURN_VALUE GED_SetTypedAtomicSlotGroup(uint32_t* msgDesc, const GED_MODEL modelId, const GED_SLOT_GROUP slotGroup)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_TypedAtomicSlotGroup, modelId, slotGroup);
}
GED_SIMDMODE GED_GetUntypedSurfaceSIMDMode(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_UntypedSurfaceSIMDMode, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SIMDMODE)value : GED_SIMDMODE_INVALID;
}
GED_RETURN_VALUE GED_SetUntypedSurfaceSIMDMode(uint32_t* msgDesc, const GED_MODEL modelId, const GED_SIMDMODE simdMode)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_UntypedSurfaceSIMDMode, modelId, simdMode);
}
GED_SIMDMODE GED_GetUntypedAtomicSIMDMode(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_UntypedAtomicSIMDMode, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SIMDMODE)value : GED_SIMDMODE_INVALID;
}
GED_RETURN_VALUE GED_SetUntypedAtomicSIMDMode(uint32_t* msgDesc, const GED_MODEL modelId, const GED_SIMDMODE simdMode)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_UntypedAtomicSIMDMode, modelId, simdMode);
}
uint32_t GED_GetInvalidateAfterRead(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_InvalidateAfterRead, modelId, *result);
}
GED_RETURN_VALUE GED_SetInvalidateAfterRead(uint32_t* msgDesc, const GED_MODEL modelId, const uint32_t invalidateAfterReadEnable)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_InvalidateAfterRead, modelId, invalidateAfterReadEnable);
}
GED_BLOCK_SIZE GED_GetBlockSize(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_BlockSize, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_BLOCK_SIZE)value : GED_BLOCK_SIZE_INVALID;
}
GED_RETURN_VALUE GED_SetBlockSize(uint32_t* msgDesc, const GED_MODEL modelId, const GED_BLOCK_SIZE blockSize)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_BlockSize, modelId, blockSize);
}
GED_CHANNEL_MASK GED_GetRedChannel(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_RedChannel, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_CHANNEL_MASK)value : GED_CHANNEL_MASK_INVALID;
}
GED_RETURN_VALUE GED_SetRedChannel(uint32_t* msgDesc, const GED_MODEL modelId, const GED_CHANNEL_MASK channel)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_RedChannel, modelId, channel);
}
GED_CHANNEL_MASK GED_GetGreenChannel(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_GreenChannel, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_CHANNEL_MASK)value : GED_CHANNEL_MASK_INVALID;
}
GED_RETURN_VALUE GED_SetGreenChannel(uint32_t* msgDesc, const GED_MODEL modelId, const GED_CHANNEL_MASK channel)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_GreenChannel, modelId, channel);
}
GED_CHANNEL_MASK GED_GetBlueChannel(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_BlueChannel, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_CHANNEL_MASK)value : GED_CHANNEL_MASK_INVALID;
}
GED_RETURN_VALUE GED_SetBlueChannel(uint32_t* msgDesc, const GED_MODEL modelId, const GED_CHANNEL_MASK channel)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_BlueChannel, modelId, channel);
}
GED_CHANNEL_MASK GED_GetAlphaChannel(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_AlphaChannel, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_CHANNEL_MASK)value : GED_CHANNEL_MASK_INVALID;
}
GED_RETURN_VALUE GED_SetAlphaChannel(uint32_t* msgDesc, const GED_MODEL modelId, const GED_CHANNEL_MASK channel)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_AlphaChannel, modelId, channel);
}
GED_RETURN_DATA_CONTROL GED_GetReturnDataControl(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_ReturnDataControl, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_RETURN_DATA_CONTROL)value : GED_RETURN_DATA_CONTROL_INVALID;
}
GED_RETURN_VALUE GED_SetReturnDataControl(uint32_t* msgDesc, const GED_MODEL modelId, const GED_RETURN_DATA_CONTROL returnDataControl)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_ReturnDataControl, modelId, returnDataControl);
}
GED_ATOMIC_OPERATION_TYPE GED_GetAtomicOperationType(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_AtomicOperationType, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ATOMIC_OPERATION_TYPE)value : GED_ATOMIC_OPERATION_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetAtomicOperationType(uint32_t* msgDesc, const GED_MODEL modelId, const GED_ATOMIC_OPERATION_TYPE operationType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_AtomicOperationType, modelId, operationType);
}
GED_ATOMIC_OPERATION_TYPE GED_GetAtomicCounterOperationType(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_AtomicCounterOperationType, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_ATOMIC_OPERATION_TYPE)value : GED_ATOMIC_OPERATION_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetAtomicCounterOperationType(uint32_t* msgDesc, const GED_MODEL modelId, const GED_ATOMIC_OPERATION_TYPE
                                                   operationType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_AtomicCounterOperationType, modelId, operationType);
}
GED_SUB_FUNC_ID GED_GetSubFuncID(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_SubFuncID, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_SUB_FUNC_ID)value : GED_SUB_FUNC_ID_INVALID;
}
GED_RETURN_VALUE GED_SetSubFuncID(uint32_t* msgDesc, const GED_MODEL modelId, const GED_SUB_FUNC_ID subFuncID)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_SubFuncID, modelId, subFuncID);
}
uint32_t GED_GetBindingTableIndex(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_BindingTableIndex, modelId, *result);
}
GED_RETURN_VALUE GED_SetBindingTableIndex(uint32_t* msgDesc, const GED_MODEL modelId, const uint32_t bti)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_BindingTableIndex, modelId, bti);
}
uint32_t GED_GetFuncControl(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_FuncControl, modelId, *result);
}
GED_RETURN_VALUE GED_SetFuncControl(uint32_t* msgDesc, const GED_MODEL modelId, const uint32_t fc)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_FuncControl, modelId, fc);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_DC1(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC1, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_DC1(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC1, modelId, messageType);
}
uint32_t GED_GetMessageTypeDP0Category(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    return GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP0Category, modelId, *result);
}
GED_RETURN_VALUE GED_SetMessageTypeDP0Category(uint32_t* msgDesc, const GED_MODEL modelId, const uint32_t category)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP0Category, modelId, category);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_DC0Legacy(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC0Legacy, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_DC0Legacy(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC0Legacy, modelId, messageType);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_DC0ScratchBlock(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC0ScratchBlock, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_DC0ScratchBlock(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC0ScratchBlock, modelId, messageType);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_DC2(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC2, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_DC2(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DC2, modelId, messageType);
}
GED_MESSAGE_TYPE GED_GetMessageTypeDP_DCRO(const uint32_t msgDesc, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    const uint32_t value = GEDInterpreter::InterpretPosition(msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DCRO, modelId, *result);
    return (GED_RETURN_VALUE_SUCCESS == *result) ? (GED_MESSAGE_TYPE)value : GED_MESSAGE_TYPE_INVALID;
}
GED_RETURN_VALUE GED_SetMessageTypeDP_DCRO(uint32_t* msgDesc, const GED_MODEL modelId, const GED_MESSAGE_TYPE messageType)
{
    return GEDInterpreter::SetInterpretedPosition(*msgDesc, GED_PSEUDO_FIELD_MessageTypeDP_DCRO, modelId, messageType);
}

#if GED_EXPERIMENTAL
GED_RETURN_VALUE GED_SetRawBits(ged_ins_t* ins, uint8_t low, uint8_t high, const uint64_t value)
{
    return reinterpret_cast<GEDIns*>(ins)->SetRawBits(low, high, value);
}
#endif // GED_EXPERIMENTAL
const char* GED_GetAccessModeString(GED_ACCESS_MODE AccessModeValue)
{
    return AccessModeEnumeration[AccessModeValue];
}
const char* GED_GetAccWrCtrlString(GED_ACC_WR_CTRL AccWrCtrlValue)
{
    return AccWrCtrlEnumeration[AccWrCtrlValue];
}
const char* GED_GetAddrModeString(GED_ADDR_MODE AddrModeValue)
{
    return AddrModeEnumeration[AddrModeValue];
}
const char* GED_GetArchRegString(GED_ARCH_REG ArchRegValue)
{
    return ArchRegEnumeration[ArchRegValue];
}
const char* GED_GetAtomicOperationTypeString(GED_ATOMIC_OPERATION_TYPE AtomicOperationTypeValue)
{
    return AtomicOperationTypeEnumeration[AtomicOperationTypeValue];
}
const char* GED_GetBlockSizeString(GED_BLOCK_SIZE BlockSizeValue)
{
    return BlockSizeEnumeration[BlockSizeValue];
}
const char* GED_GetBranchCtrlString(GED_BRANCH_CTRL BranchCtrlValue)
{
    return BranchCtrlEnumeration[BranchCtrlValue];
}
const char* GED_GetChannelMaskString(GED_CHANNEL_MASK ChannelMaskValue)
{
    return ChannelMaskEnumeration[ChannelMaskValue];
}
const char* GED_GetChannelModeString(GED_CHANNEL_MODE ChannelModeValue)
{
    return ChannelModeEnumeration[ChannelModeValue];
}
const char* GED_GetChannelOffsetString(GED_CHANNEL_OFFSET ChannelOffsetValue)
{
    return ChannelOffsetEnumeration[ChannelOffsetValue];
}
const char* GED_GetCondModifierString(GED_COND_MODIFIER CondModifierValue)
{
    return CondModifierEnumeration[CondModifierValue];
}
const char* GED_GetDataTypeString(GED_DATA_TYPE DataTypeValue)
{
    return DataTypeEnumeration[DataTypeValue];
}
const char* GED_GetDebugCtrlString(GED_DEBUG_CTRL DebugCtrlValue)
{
    return DebugCtrlEnumeration[DebugCtrlValue];
}
const char* GED_GetDepCtrlString(GED_DEP_CTRL DepCtrlValue)
{
    return DepCtrlEnumeration[DepCtrlValue];
}
const char* GED_GetDstChanEnString(GED_DST_CHAN_EN DstChanEnValue)
{
    return DstChanEnEnumeration[DstChanEnValue];
}
const char* GED_GetEOTString(GED_EOT EOTValue)
{
    return EOTEnumeration[EOTValue];
}
const char* GED_GetExecMaskOffsetCtrlString(GED_EXEC_MASK_OFFSET_CTRL ExecMaskOffsetCtrlValue)
{
    return ExecMaskOffsetCtrlEnumeration[ExecMaskOffsetCtrlValue];
}
const char* GED_GetExecutionDataTypeString(GED_EXECUTION_DATA_TYPE ExecutionDataTypeValue)
{
    return ExecutionDataTypeEnumeration[ExecutionDataTypeValue];
}
const char* GED_GetHeaderPresentString(GED_HEADER_PRESENT HeaderPresentValue)
{
    return HeaderPresentEnumeration[HeaderPresentValue];
}
const char* GED_GetMaskCtrlString(GED_MASK_CTRL MaskCtrlValue)
{
    return MaskCtrlEnumeration[MaskCtrlValue];
}
const char* GED_GetMathFCString(GED_MATH_FC MathFCValue)
{
    return MathFCEnumeration[MathFCValue];
}
const char* GED_GetMathMacroExtString(GED_MATH_MACRO_EXT MathMacroExtValue)
{
    return MathMacroExtEnumeration[MathMacroExtValue];
}
const char* GED_GetMessageTypeString(GED_MESSAGE_TYPE MessageTypeValue)
{
    return MessageTypeEnumeration[MessageTypeValue];
}
const char* GED_GetNoSrcDepSetString(GED_NO_SRC_DEP_SET NoSrcDepSetValue)
{
    return NoSrcDepSetEnumeration[NoSrcDepSetValue];
}
const char* GED_GetOpcodeString(GED_OPCODE OpcodeValue)
{
    return OpcodeEnumeration[OpcodeValue];
}
const char* GED_GetPredCtrlString(GED_PRED_CTRL PredCtrlValue)
{
    return PredCtrlEnumeration[PredCtrlValue];
}
const char* GED_GetPredInvString(GED_PRED_INV PredInvValue)
{
    return PredInvEnumeration[PredInvValue];
}
const char* GED_GetRegFileString(GED_REG_FILE RegFileValue)
{
    return RegFileEnumeration[RegFileValue];
}
const char* GED_GetRepCtrlString(GED_REP_CTRL RepCtrlValue)
{
    return RepCtrlEnumeration[RepCtrlValue];
}
const char* GED_GetReturnDataControlString(GED_RETURN_DATA_CONTROL ReturnDataControlValue)
{
    return ReturnDataControlEnumeration[ReturnDataControlValue];
}
const char* GED_GetSaturateString(GED_SATURATE SaturateValue)
{
    return SaturateEnumeration[SaturateValue];
}
const char* GED_GetSFIDString(GED_SFID SFIDValue)
{
    return SFIDEnumeration[SFIDValue];
}
const char* GED_GetSIMDModeString(GED_SIMDMODE SIMDModeValue)
{
    return SIMDModeEnumeration[SIMDModeValue];
}
const char* GED_GetSlotGroupString(GED_SLOT_GROUP SlotGroupValue)
{
    return SlotGroupEnumeration[SlotGroupValue];
}
const char* GED_GetSrcModString(GED_SRC_MOD SrcModValue)
{
    return SrcModEnumeration[SrcModValue];
}
const char* GED_GetSubFuncIDString(GED_SUB_FUNC_ID SubFuncIDValue)
{
    return SubFuncIDEnumeration[SubFuncIDValue];
}
const char* GED_GetSwizzleString(GED_SWIZZLE SwizzleValue)
{
    return SwizzleEnumeration[SwizzleValue];
}
const char* GED_GetThreadCtrlString(GED_THREAD_CTRL ThreadCtrlValue)
{
    return ThreadCtrlEnumeration[ThreadCtrlValue];
}
uint32_t GED_GetOperandWidth(const GED_DATA_TYPE datatype, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    if ((uint32_t)GED_DATA_TYPE_INVALID <= (uint32_t)datatype)
    {
        *result = GED_RETURN_VALUE_INVALID_VALUE;
        return datatype;
    }
    return GEDInterpreter::ReinterpretEnum(datatype, 0, modelId, *result);
}
uint32_t GED_GetOperandNumericType(const GED_DATA_TYPE datatype, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    if ((uint32_t)GED_DATA_TYPE_INVALID <= (uint32_t)datatype)
    {
        *result = GED_RETURN_VALUE_INVALID_VALUE;
        return datatype;
    }
    return GEDInterpreter::ReinterpretEnum(datatype, 1, modelId, *result);
}
uint32_t GED_GetNibCtrl(const GED_EXEC_MASK_OFFSET_CTRL execmaskoffsetctrl, const GED_MODEL modelId, GED_RETURN_VALUE* result)
{
    GED_RETURN_VALUE localResult = GED_RETURN_VALUE_INVALID_FIELD;
    if (NULL == result) result = &localResult;
    if ((uint32_t)GED_EXEC_MASK_OFFSET_CTRL_INVALID <= (uint32_t)execmaskoffsetctrl)
    {
        *result = GED_RETURN_VALUE_INVALID_VALUE;
        return execmaskoffsetctrl;
    }
    return GEDInterpreter::ReinterpretEnum(execmaskoffsetctrl, 2, modelId, *result);
}

#if GED_DISASSEMBLY
std::string GED_DisassembleIns(ged_ins_t* ins)
{
    return reinterpret_cast<GEDDisassembler*>(ins)->Disassemble();
}
#endif // GED_DISASSEMBLY
