//==- HexagonInstrFormatsV60.td - Hexagon Instruction Formats -*- tablegen -==// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file describes the Hexagon V60 instruction classes in TableGen format. // //===----------------------------------------------------------------------===// //----------------------------------------------------------------------------// // Instruction Classes Definitions + //----------------------------------------------------------------------------// let validSubTargets = HasV60SubT in { class CVI_VA_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VA> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VA_DV_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VA_DV> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VX_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VX_LONG> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VX_Resource_late pattern = [], string cstr = "", InstrItinClass itin = CVI_VX_LATE> : InstHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VX_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VX> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VX_DV_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VX_DV> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VX_DV_Slot2_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VX_DV_SLOT2> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VX_DV_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VX_DV_LONG> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VP_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VP_LONG> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VP_VS_Resource_early pattern = [], string cstr = "", InstrItinClass itin = CVI_VP_VS_EARLY> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VP_VS_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VP_VS_LONG> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VP_VS_Resource_long_early pattern = [], string cstr = "", InstrItinClass itin = CVI_VP_VS_LONG_EARLY> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VS_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VS> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VINLANESAT_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VINLANESAT> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VS_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VS> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_LD_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_LD> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_LD_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_LD> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_TMP_LD_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_TMP_LD> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_TMP_LD_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_TMP_LD> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_CUR_LD_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_CUR_LD> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_VP_LDU_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_VP_LDU> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_VP_LDU_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_VP_LDU> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_ST_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_ST> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_ST_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_ST> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_NEW_ST_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_NEW_ST> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_NEW_ST_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_NEW_ST> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_STU_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_STU> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VM_STU_Resource_long pattern = [], string cstr = "", InstrItinClass itin = CVI_VM_STU> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; class CVI_HIST_Resource pattern = [], string cstr = "", InstrItinClass itin = CVI_HIST> : InstHexagon, OpcodeHexagon, Requires<[HasV60T, UseHVX]>; } let validSubTargets = HasV60SubT in { class CVI_VA_Resource1 pattern = [], string cstr = "", InstrItinClass itin = CVI_VA> : InstHexagon, Requires<[HasV60T, UseHVX]>; class CVI_VX_DV_Resource1 pattern = [], string cstr = "", InstrItinClass itin = CVI_VX_DV> : InstHexagon, Requires<[HasV60T, UseHVX]>; class CVI_HIST_Resource1 pattern = [], string cstr = "", InstrItinClass itin = CVI_HIST> : InstHexagon, Requires<[HasV60T, UseHVX]>; }