1*e3c00c2eSTaylor Simpson /* 2*e3c00c2eSTaylor Simpson * Copyright(c) 2019-2021 Qualcomm Innovation Center, Inc. All Rights Reserved. 3*e3c00c2eSTaylor Simpson * 4*e3c00c2eSTaylor Simpson * This program is free software; you can redistribute it and/or modify 5*e3c00c2eSTaylor Simpson * it under the terms of the GNU General Public License as published by 6*e3c00c2eSTaylor Simpson * the Free Software Foundation; either version 2 of the License, or 7*e3c00c2eSTaylor Simpson * (at your option) any later version. 8*e3c00c2eSTaylor Simpson * 9*e3c00c2eSTaylor Simpson * This program is distributed in the hope that it will be useful, 10*e3c00c2eSTaylor Simpson * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*e3c00c2eSTaylor Simpson * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12*e3c00c2eSTaylor Simpson * GNU General Public License for more details. 13*e3c00c2eSTaylor Simpson * 14*e3c00c2eSTaylor Simpson * You should have received a copy of the GNU General Public License 15*e3c00c2eSTaylor Simpson * along with this program; if not, see <http://www.gnu.org/licenses/>. 16*e3c00c2eSTaylor Simpson */ 17*e3c00c2eSTaylor Simpson 18*e3c00c2eSTaylor Simpson #ifndef HEXAGON_OPCODES_H 19*e3c00c2eSTaylor Simpson #define HEXAGON_OPCODES_H 20*e3c00c2eSTaylor Simpson 21*e3c00c2eSTaylor Simpson typedef enum { 22*e3c00c2eSTaylor Simpson #define OPCODE(IID) IID 23*e3c00c2eSTaylor Simpson #include "opcodes_def_generated.h.inc" 24*e3c00c2eSTaylor Simpson XX_LAST_OPCODE 25*e3c00c2eSTaylor Simpson #undef OPCODE 26*e3c00c2eSTaylor Simpson } Opcode; 27*e3c00c2eSTaylor Simpson 28*e3c00c2eSTaylor Simpson typedef enum { 29*e3c00c2eSTaylor Simpson NORMAL, 30*e3c00c2eSTaylor Simpson HALF, 31*e3c00c2eSTaylor Simpson SUBINSN_A, 32*e3c00c2eSTaylor Simpson SUBINSN_L1, 33*e3c00c2eSTaylor Simpson SUBINSN_L2, 34*e3c00c2eSTaylor Simpson SUBINSN_S1, 35*e3c00c2eSTaylor Simpson SUBINSN_S2, 36*e3c00c2eSTaylor Simpson EXT_noext, 37*e3c00c2eSTaylor Simpson EXT_mmvec, 38*e3c00c2eSTaylor Simpson XX_LAST_ENC_CLASS 39*e3c00c2eSTaylor Simpson } EncClass; 40*e3c00c2eSTaylor Simpson 41*e3c00c2eSTaylor Simpson extern const char * const opcode_names[]; 42*e3c00c2eSTaylor Simpson 43*e3c00c2eSTaylor Simpson typedef struct { 44*e3c00c2eSTaylor Simpson const char * const encoding; 45*e3c00c2eSTaylor Simpson const EncClass enc_class; 46*e3c00c2eSTaylor Simpson } OpcodeEncoding; 47*e3c00c2eSTaylor Simpson 48*e3c00c2eSTaylor Simpson extern const OpcodeEncoding opcode_encodings[XX_LAST_OPCODE]; 49*e3c00c2eSTaylor Simpson 50*e3c00c2eSTaylor Simpson void opcode_init(void); 51*e3c00c2eSTaylor Simpson 52*e3c00c2eSTaylor Simpson #endif 53