1638 lines · 37.5 KB · C
RawDownload
/* TILEPro opcode information. * *    Copyright 2011 Free Software Foundation, Inc. * *    This program is free software; you can redistribute it and/or modify *    it under the terms of the GNU General Public License as published by *    the Free Software Foundation; either version 3 of the License, or *    (at your option) any later version. * *    This program is distributed in the hope that it will be useful, *    but WITHOUT ANY WARRANTY; without even the implied warranty of *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *    GNU General Public License for more details. * *    You should have received a copy of the GNU General Public License *    along with this program; if not, write to the Free Software *    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, *    MA 02110-1301, USA. */ #ifndef opcode_tilepro_h#define opcode_tilepro_h typedef unsigned long long tilepro_bundle_bits;  enum{  TILEPRO_MAX_OPERANDS = 5 /* mm */}; typedef enum{  TILEPRO_OPC_BPT,  TILEPRO_OPC_INFO,  TILEPRO_OPC_INFOL,  TILEPRO_OPC_J,  TILEPRO_OPC_JAL,  TILEPRO_OPC_LW_TLS,  TILEPRO_OPC_LW_TLS_SN,  TILEPRO_OPC_MOVE,  TILEPRO_OPC_MOVE_SN,  TILEPRO_OPC_MOVEI,  TILEPRO_OPC_MOVEI_SN,  TILEPRO_OPC_MOVELI,  TILEPRO_OPC_MOVELI_SN,  TILEPRO_OPC_MOVELIS,  TILEPRO_OPC_PREFETCH,  TILEPRO_OPC_RAISE,  TILEPRO_OPC_ADD,  TILEPRO_OPC_ADD_SN,  TILEPRO_OPC_ADDB,  TILEPRO_OPC_ADDB_SN,  TILEPRO_OPC_ADDBS_U,  TILEPRO_OPC_ADDBS_U_SN,  TILEPRO_OPC_ADDH,  TILEPRO_OPC_ADDH_SN,  TILEPRO_OPC_ADDHS,  TILEPRO_OPC_ADDHS_SN,  TILEPRO_OPC_ADDI,  TILEPRO_OPC_ADDI_SN,  TILEPRO_OPC_ADDIB,  TILEPRO_OPC_ADDIB_SN,  TILEPRO_OPC_ADDIH,  TILEPRO_OPC_ADDIH_SN,  TILEPRO_OPC_ADDLI,  TILEPRO_OPC_ADDLI_SN,  TILEPRO_OPC_ADDLIS,  TILEPRO_OPC_ADDS,  TILEPRO_OPC_ADDS_SN,  TILEPRO_OPC_ADIFFB_U,  TILEPRO_OPC_ADIFFB_U_SN,  TILEPRO_OPC_ADIFFH,  TILEPRO_OPC_ADIFFH_SN,  TILEPRO_OPC_AND,  TILEPRO_OPC_AND_SN,  TILEPRO_OPC_ANDI,  TILEPRO_OPC_ANDI_SN,  TILEPRO_OPC_AULI,  TILEPRO_OPC_AVGB_U,  TILEPRO_OPC_AVGB_U_SN,  TILEPRO_OPC_AVGH,  TILEPRO_OPC_AVGH_SN,  TILEPRO_OPC_BBNS,  TILEPRO_OPC_BBNS_SN,  TILEPRO_OPC_BBNST,  TILEPRO_OPC_BBNST_SN,  TILEPRO_OPC_BBS,  TILEPRO_OPC_BBS_SN,  TILEPRO_OPC_BBST,  TILEPRO_OPC_BBST_SN,  TILEPRO_OPC_BGEZ,  TILEPRO_OPC_BGEZ_SN,  TILEPRO_OPC_BGEZT,  TILEPRO_OPC_BGEZT_SN,  TILEPRO_OPC_BGZ,  TILEPRO_OPC_BGZ_SN,  TILEPRO_OPC_BGZT,  TILEPRO_OPC_BGZT_SN,  TILEPRO_OPC_BITX,  TILEPRO_OPC_BITX_SN,  TILEPRO_OPC_BLEZ,  TILEPRO_OPC_BLEZ_SN,  TILEPRO_OPC_BLEZT,  TILEPRO_OPC_BLEZT_SN,  TILEPRO_OPC_BLZ,  TILEPRO_OPC_BLZ_SN,  TILEPRO_OPC_BLZT,  TILEPRO_OPC_BLZT_SN,  TILEPRO_OPC_BNZ,  TILEPRO_OPC_BNZ_SN,  TILEPRO_OPC_BNZT,  TILEPRO_OPC_BNZT_SN,  TILEPRO_OPC_BYTEX,  TILEPRO_OPC_BYTEX_SN,  TILEPRO_OPC_BZ,  TILEPRO_OPC_BZ_SN,  TILEPRO_OPC_BZT,  TILEPRO_OPC_BZT_SN,  TILEPRO_OPC_CLZ,  TILEPRO_OPC_CLZ_SN,  TILEPRO_OPC_CRC32_32,  TILEPRO_OPC_CRC32_32_SN,  TILEPRO_OPC_CRC32_8,  TILEPRO_OPC_CRC32_8_SN,  TILEPRO_OPC_CTZ,  TILEPRO_OPC_CTZ_SN,  TILEPRO_OPC_DRAIN,  TILEPRO_OPC_DTLBPR,  TILEPRO_OPC_DWORD_ALIGN,  TILEPRO_OPC_DWORD_ALIGN_SN,  TILEPRO_OPC_FINV,  TILEPRO_OPC_FLUSH,  TILEPRO_OPC_FNOP,  TILEPRO_OPC_ICOH,  TILEPRO_OPC_ILL,  TILEPRO_OPC_INTHB,  TILEPRO_OPC_INTHB_SN,  TILEPRO_OPC_INTHH,  TILEPRO_OPC_INTHH_SN,  TILEPRO_OPC_INTLB,  TILEPRO_OPC_INTLB_SN,  TILEPRO_OPC_INTLH,  TILEPRO_OPC_INTLH_SN,  TILEPRO_OPC_INV,  TILEPRO_OPC_IRET,  TILEPRO_OPC_JALB,  TILEPRO_OPC_JALF,  TILEPRO_OPC_JALR,  TILEPRO_OPC_JALRP,  TILEPRO_OPC_JB,  TILEPRO_OPC_JF,  TILEPRO_OPC_JR,  TILEPRO_OPC_JRP,  TILEPRO_OPC_LB,  TILEPRO_OPC_LB_SN,  TILEPRO_OPC_LB_U,  TILEPRO_OPC_LB_U_SN,  TILEPRO_OPC_LBADD,  TILEPRO_OPC_LBADD_SN,  TILEPRO_OPC_LBADD_U,  TILEPRO_OPC_LBADD_U_SN,  TILEPRO_OPC_LH,  TILEPRO_OPC_LH_SN,  TILEPRO_OPC_LH_U,  TILEPRO_OPC_LH_U_SN,  TILEPRO_OPC_LHADD,  TILEPRO_OPC_LHADD_SN,  TILEPRO_OPC_LHADD_U,  TILEPRO_OPC_LHADD_U_SN,  TILEPRO_OPC_LNK,  TILEPRO_OPC_LNK_SN,  TILEPRO_OPC_LW,  TILEPRO_OPC_LW_SN,  TILEPRO_OPC_LW_NA,  TILEPRO_OPC_LW_NA_SN,  TILEPRO_OPC_LWADD,  TILEPRO_OPC_LWADD_SN,  TILEPRO_OPC_LWADD_NA,  TILEPRO_OPC_LWADD_NA_SN,  TILEPRO_OPC_MAXB_U,  TILEPRO_OPC_MAXB_U_SN,  TILEPRO_OPC_MAXH,  TILEPRO_OPC_MAXH_SN,  TILEPRO_OPC_MAXIB_U,  TILEPRO_OPC_MAXIB_U_SN,  TILEPRO_OPC_MAXIH,  TILEPRO_OPC_MAXIH_SN,  TILEPRO_OPC_MF,  TILEPRO_OPC_MFSPR,  TILEPRO_OPC_MINB_U,  TILEPRO_OPC_MINB_U_SN,  TILEPRO_OPC_MINH,  TILEPRO_OPC_MINH_SN,  TILEPRO_OPC_MINIB_U,  TILEPRO_OPC_MINIB_U_SN,  TILEPRO_OPC_MINIH,  TILEPRO_OPC_MINIH_SN,  TILEPRO_OPC_MM,  TILEPRO_OPC_MNZ,  TILEPRO_OPC_MNZ_SN,  TILEPRO_OPC_MNZB,  TILEPRO_OPC_MNZB_SN,  TILEPRO_OPC_MNZH,  TILEPRO_OPC_MNZH_SN,  TILEPRO_OPC_MTSPR,  TILEPRO_OPC_MULHH_SS,  TILEPRO_OPC_MULHH_SS_SN,  TILEPRO_OPC_MULHH_SU,  TILEPRO_OPC_MULHH_SU_SN,  TILEPRO_OPC_MULHH_UU,  TILEPRO_OPC_MULHH_UU_SN,  TILEPRO_OPC_MULHHA_SS,  TILEPRO_OPC_MULHHA_SS_SN,  TILEPRO_OPC_MULHHA_SU,  TILEPRO_OPC_MULHHA_SU_SN,  TILEPRO_OPC_MULHHA_UU,  TILEPRO_OPC_MULHHA_UU_SN,  TILEPRO_OPC_MULHHSA_UU,  TILEPRO_OPC_MULHHSA_UU_SN,  TILEPRO_OPC_MULHL_SS,  TILEPRO_OPC_MULHL_SS_SN,  TILEPRO_OPC_MULHL_SU,  TILEPRO_OPC_MULHL_SU_SN,  TILEPRO_OPC_MULHL_US,  TILEPRO_OPC_MULHL_US_SN,  TILEPRO_OPC_MULHL_UU,  TILEPRO_OPC_MULHL_UU_SN,  TILEPRO_OPC_MULHLA_SS,  TILEPRO_OPC_MULHLA_SS_SN,  TILEPRO_OPC_MULHLA_SU,  TILEPRO_OPC_MULHLA_SU_SN,  TILEPRO_OPC_MULHLA_US,  TILEPRO_OPC_MULHLA_US_SN,  TILEPRO_OPC_MULHLA_UU,  TILEPRO_OPC_MULHLA_UU_SN,  TILEPRO_OPC_MULHLSA_UU,  TILEPRO_OPC_MULHLSA_UU_SN,  TILEPRO_OPC_MULLL_SS,  TILEPRO_OPC_MULLL_SS_SN,  TILEPRO_OPC_MULLL_SU,  TILEPRO_OPC_MULLL_SU_SN,  TILEPRO_OPC_MULLL_UU,  TILEPRO_OPC_MULLL_UU_SN,  TILEPRO_OPC_MULLLA_SS,  TILEPRO_OPC_MULLLA_SS_SN,  TILEPRO_OPC_MULLLA_SU,  TILEPRO_OPC_MULLLA_SU_SN,  TILEPRO_OPC_MULLLA_UU,  TILEPRO_OPC_MULLLA_UU_SN,  TILEPRO_OPC_MULLLSA_UU,  TILEPRO_OPC_MULLLSA_UU_SN,  TILEPRO_OPC_MVNZ,  TILEPRO_OPC_MVNZ_SN,  TILEPRO_OPC_MVZ,  TILEPRO_OPC_MVZ_SN,  TILEPRO_OPC_MZ,  TILEPRO_OPC_MZ_SN,  TILEPRO_OPC_MZB,  TILEPRO_OPC_MZB_SN,  TILEPRO_OPC_MZH,  TILEPRO_OPC_MZH_SN,  TILEPRO_OPC_NAP,  TILEPRO_OPC_NOP,  TILEPRO_OPC_NOR,  TILEPRO_OPC_NOR_SN,  TILEPRO_OPC_OR,  TILEPRO_OPC_OR_SN,  TILEPRO_OPC_ORI,  TILEPRO_OPC_ORI_SN,  TILEPRO_OPC_PACKBS_U,  TILEPRO_OPC_PACKBS_U_SN,  TILEPRO_OPC_PACKHB,  TILEPRO_OPC_PACKHB_SN,  TILEPRO_OPC_PACKHS,  TILEPRO_OPC_PACKHS_SN,  TILEPRO_OPC_PACKLB,  TILEPRO_OPC_PACKLB_SN,  TILEPRO_OPC_PCNT,  TILEPRO_OPC_PCNT_SN,  TILEPRO_OPC_RL,  TILEPRO_OPC_RL_SN,  TILEPRO_OPC_RLI,  TILEPRO_OPC_RLI_SN,  TILEPRO_OPC_S1A,  TILEPRO_OPC_S1A_SN,  TILEPRO_OPC_S2A,  TILEPRO_OPC_S2A_SN,  TILEPRO_OPC_S3A,  TILEPRO_OPC_S3A_SN,  TILEPRO_OPC_SADAB_U,  TILEPRO_OPC_SADAB_U_SN,  TILEPRO_OPC_SADAH,  TILEPRO_OPC_SADAH_SN,  TILEPRO_OPC_SADAH_U,  TILEPRO_OPC_SADAH_U_SN,  TILEPRO_OPC_SADB_U,  TILEPRO_OPC_SADB_U_SN,  TILEPRO_OPC_SADH,  TILEPRO_OPC_SADH_SN,  TILEPRO_OPC_SADH_U,  TILEPRO_OPC_SADH_U_SN,  TILEPRO_OPC_SB,  TILEPRO_OPC_SBADD,  TILEPRO_OPC_SEQ,  TILEPRO_OPC_SEQ_SN,  TILEPRO_OPC_SEQB,  TILEPRO_OPC_SEQB_SN,  TILEPRO_OPC_SEQH,  TILEPRO_OPC_SEQH_SN,  TILEPRO_OPC_SEQI,  TILEPRO_OPC_SEQI_SN,  TILEPRO_OPC_SEQIB,  TILEPRO_OPC_SEQIB_SN,  TILEPRO_OPC_SEQIH,  TILEPRO_OPC_SEQIH_SN,  TILEPRO_OPC_SH,  TILEPRO_OPC_SHADD,  TILEPRO_OPC_SHL,  TILEPRO_OPC_SHL_SN,  TILEPRO_OPC_SHLB,  TILEPRO_OPC_SHLB_SN,  TILEPRO_OPC_SHLH,  TILEPRO_OPC_SHLH_SN,  TILEPRO_OPC_SHLI,  TILEPRO_OPC_SHLI_SN,  TILEPRO_OPC_SHLIB,  TILEPRO_OPC_SHLIB_SN,  TILEPRO_OPC_SHLIH,  TILEPRO_OPC_SHLIH_SN,  TILEPRO_OPC_SHR,  TILEPRO_OPC_SHR_SN,  TILEPRO_OPC_SHRB,  TILEPRO_OPC_SHRB_SN,  TILEPRO_OPC_SHRH,  TILEPRO_OPC_SHRH_SN,  TILEPRO_OPC_SHRI,  TILEPRO_OPC_SHRI_SN,  TILEPRO_OPC_SHRIB,  TILEPRO_OPC_SHRIB_SN,  TILEPRO_OPC_SHRIH,  TILEPRO_OPC_SHRIH_SN,  TILEPRO_OPC_SLT,  TILEPRO_OPC_SLT_SN,  TILEPRO_OPC_SLT_U,  TILEPRO_OPC_SLT_U_SN,  TILEPRO_OPC_SLTB,  TILEPRO_OPC_SLTB_SN,  TILEPRO_OPC_SLTB_U,  TILEPRO_OPC_SLTB_U_SN,  TILEPRO_OPC_SLTE,  TILEPRO_OPC_SLTE_SN,  TILEPRO_OPC_SLTE_U,  TILEPRO_OPC_SLTE_U_SN,  TILEPRO_OPC_SLTEB,  TILEPRO_OPC_SLTEB_SN,  TILEPRO_OPC_SLTEB_U,  TILEPRO_OPC_SLTEB_U_SN,  TILEPRO_OPC_SLTEH,  TILEPRO_OPC_SLTEH_SN,  TILEPRO_OPC_SLTEH_U,  TILEPRO_OPC_SLTEH_U_SN,  TILEPRO_OPC_SLTH,  TILEPRO_OPC_SLTH_SN,  TILEPRO_OPC_SLTH_U,  TILEPRO_OPC_SLTH_U_SN,  TILEPRO_OPC_SLTI,  TILEPRO_OPC_SLTI_SN,  TILEPRO_OPC_SLTI_U,  TILEPRO_OPC_SLTI_U_SN,  TILEPRO_OPC_SLTIB,  TILEPRO_OPC_SLTIB_SN,  TILEPRO_OPC_SLTIB_U,  TILEPRO_OPC_SLTIB_U_SN,  TILEPRO_OPC_SLTIH,  TILEPRO_OPC_SLTIH_SN,  TILEPRO_OPC_SLTIH_U,  TILEPRO_OPC_SLTIH_U_SN,  TILEPRO_OPC_SNE,  TILEPRO_OPC_SNE_SN,  TILEPRO_OPC_SNEB,  TILEPRO_OPC_SNEB_SN,  TILEPRO_OPC_SNEH,  TILEPRO_OPC_SNEH_SN,  TILEPRO_OPC_SRA,  TILEPRO_OPC_SRA_SN,  TILEPRO_OPC_SRAB,  TILEPRO_OPC_SRAB_SN,  TILEPRO_OPC_SRAH,  TILEPRO_OPC_SRAH_SN,  TILEPRO_OPC_SRAI,  TILEPRO_OPC_SRAI_SN,  TILEPRO_OPC_SRAIB,  TILEPRO_OPC_SRAIB_SN,  TILEPRO_OPC_SRAIH,  TILEPRO_OPC_SRAIH_SN,  TILEPRO_OPC_SUB,  TILEPRO_OPC_SUB_SN,  TILEPRO_OPC_SUBB,  TILEPRO_OPC_SUBB_SN,  TILEPRO_OPC_SUBBS_U,  TILEPRO_OPC_SUBBS_U_SN,  TILEPRO_OPC_SUBH,  TILEPRO_OPC_SUBH_SN,  TILEPRO_OPC_SUBHS,  TILEPRO_OPC_SUBHS_SN,  TILEPRO_OPC_SUBS,  TILEPRO_OPC_SUBS_SN,  TILEPRO_OPC_SW,  TILEPRO_OPC_SWADD,  TILEPRO_OPC_SWINT0,  TILEPRO_OPC_SWINT1,  TILEPRO_OPC_SWINT2,  TILEPRO_OPC_SWINT3,  TILEPRO_OPC_TBLIDXB0,  TILEPRO_OPC_TBLIDXB0_SN,  TILEPRO_OPC_TBLIDXB1,  TILEPRO_OPC_TBLIDXB1_SN,  TILEPRO_OPC_TBLIDXB2,  TILEPRO_OPC_TBLIDXB2_SN,  TILEPRO_OPC_TBLIDXB3,  TILEPRO_OPC_TBLIDXB3_SN,  TILEPRO_OPC_TNS,  TILEPRO_OPC_TNS_SN,  TILEPRO_OPC_WH64,  TILEPRO_OPC_XOR,  TILEPRO_OPC_XOR_SN,  TILEPRO_OPC_XORI,  TILEPRO_OPC_XORI_SN,  TILEPRO_OPC_NONE} tilepro_mnemonic; /* 64-bit pattern for a { bpt ; nop } bundle. */#define TILEPRO_BPT_BUNDLE 0x400b3cae70166000ULL #ifndef DISASM_ONLY enum{  TILEPRO_SN_MAX_OPERANDS = 6 /* route */}; typedef enum{  TILEPRO_SN_OPC_BZ,  TILEPRO_SN_OPC_BNZ,  TILEPRO_SN_OPC_JRR,  TILEPRO_SN_OPC_FNOP,  TILEPRO_SN_OPC_BLZ,  TILEPRO_SN_OPC_NOP,  TILEPRO_SN_OPC_MOVEI,  TILEPRO_SN_OPC_MOVE,  TILEPRO_SN_OPC_BGEZ,  TILEPRO_SN_OPC_JR,  TILEPRO_SN_OPC_BLEZ,  TILEPRO_SN_OPC_BBNS,  TILEPRO_SN_OPC_JALRR,  TILEPRO_SN_OPC_BPT,  TILEPRO_SN_OPC_JALR,  TILEPRO_SN_OPC_SHR1,  TILEPRO_SN_OPC_BGZ,  TILEPRO_SN_OPC_BBS,  TILEPRO_SN_OPC_SHL8II,  TILEPRO_SN_OPC_ADDI,  TILEPRO_SN_OPC_HALT,  TILEPRO_SN_OPC_ROUTE,  TILEPRO_SN_OPC_NONE} tilepro_sn_mnemonic; extern const unsigned char tilepro_sn_route_encode[6 * 6 * 6];extern const signed char tilepro_sn_route_decode[256][3];extern const char tilepro_sn_direction_names[6][5];extern const signed char tilepro_sn_dest_map[6][6];#endif /* DISASM_ONLY */  static __inline unsigned intget_BrOff_SN(tilepro_bundle_bits num){  const unsigned int n = (unsigned int)num;  return (((n >> 0)) & 0x3ff);} static __inline unsigned intget_BrOff_X1(tilepro_bundle_bits n){  return (((unsigned int)(n >> 43)) & 0x00007fff) |         (((unsigned int)(n >> 20)) & 0x00018000);} static __inline unsigned intget_BrType_X1(tilepro_bundle_bits n){  return (((unsigned int)(n >> 31)) & 0xf);} static __inline unsigned intget_Dest_Imm8_X1(tilepro_bundle_bits n){  return (((unsigned int)(n >> 31)) & 0x0000003f) |

Lines 1–500 of 1638.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t