1fcf5ef2aSThomas Huth /* 2fcf5ef2aSThomas Huth * Copyright (c) 2012-2014 Bastian Koppelmann C-Lab/University Paderborn 3fcf5ef2aSThomas Huth * 4fcf5ef2aSThomas Huth * This library is free software; you can redistribute it and/or 5fcf5ef2aSThomas Huth * modify it under the terms of the GNU Lesser General Public 6fcf5ef2aSThomas Huth * License as published by the Free Software Foundation; either 702754acdSThomas Huth * version 2.1 of the License, or (at your option) any later version. 8fcf5ef2aSThomas Huth * 9fcf5ef2aSThomas Huth * This library is distributed in the hope that it will be useful, 10fcf5ef2aSThomas Huth * but WITHOUT ANY WARRANTY; without even the implied warranty of 11fcf5ef2aSThomas Huth * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12fcf5ef2aSThomas Huth * Lesser General Public License for more details. 13fcf5ef2aSThomas Huth * 14fcf5ef2aSThomas Huth * You should have received a copy of the GNU Lesser General Public 15fcf5ef2aSThomas Huth * License along with this library; if not, see <http://www.gnu.org/licenses/>. 16fcf5ef2aSThomas Huth */ 17fcf5ef2aSThomas Huth 18f91005e1SMarkus Armbruster #ifndef TARGET_TRICORE_TRICORE_OPCODES_H 19f91005e1SMarkus Armbruster #define TARGET_TRICORE_TRICORE_OPCODES_H 20f91005e1SMarkus Armbruster 21fcf5ef2aSThomas Huth /* 22fcf5ef2aSThomas Huth * Opcode Masks for Tricore 23fcf5ef2aSThomas Huth * Format MASK_OP_InstrFormatName_Field 24fcf5ef2aSThomas Huth */ 25fcf5ef2aSThomas Huth 26fcf5ef2aSThomas Huth /* This creates a mask with bits start .. end set to 1 and applies it to op */ 27fcf5ef2aSThomas Huth #define MASK_BITS_SHIFT(op, start, end) (extract32(op, (start), \ 28fcf5ef2aSThomas Huth (end) - (start) + 1)) 29fcf5ef2aSThomas Huth #define MASK_BITS_SHIFT_SEXT(op, start, end) (sextract32(op, (start),\ 30fcf5ef2aSThomas Huth (end) - (start) + 1)) 31fcf5ef2aSThomas Huth 32fcf5ef2aSThomas Huth /* new opcode masks */ 33fcf5ef2aSThomas Huth 34fcf5ef2aSThomas Huth #define MASK_OP_MAJOR(op) MASK_BITS_SHIFT(op, 0, 7) 35fcf5ef2aSThomas Huth 36fcf5ef2aSThomas Huth /* 16-Bit Formats */ 37fcf5ef2aSThomas Huth #define MASK_OP_SB_DISP8(op) MASK_BITS_SHIFT(op, 8, 15) 38fcf5ef2aSThomas Huth #define MASK_OP_SB_DISP8_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 8, 15) 39fcf5ef2aSThomas Huth 40fcf5ef2aSThomas Huth #define MASK_OP_SBC_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 41fcf5ef2aSThomas Huth #define MASK_OP_SBC_CONST4_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 15) 42fcf5ef2aSThomas Huth #define MASK_OP_SBC_DISP4(op) MASK_BITS_SHIFT(op, 8, 11) 43fcf5ef2aSThomas Huth 44fcf5ef2aSThomas Huth #define MASK_OP_SBR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 45fcf5ef2aSThomas Huth #define MASK_OP_SBR_DISP4(op) MASK_BITS_SHIFT(op, 8, 11) 46fcf5ef2aSThomas Huth 47fcf5ef2aSThomas Huth #define MASK_OP_SBRN_N(op) MASK_BITS_SHIFT(op, 12, 15) 48fcf5ef2aSThomas Huth #define MASK_OP_SBRN_DISP4(op) MASK_BITS_SHIFT(op, 8, 11) 49fcf5ef2aSThomas Huth 50fcf5ef2aSThomas Huth #define MASK_OP_SC_CONST8(op) MASK_BITS_SHIFT(op, 8, 15) 51fcf5ef2aSThomas Huth 52fcf5ef2aSThomas Huth #define MASK_OP_SLR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 53fcf5ef2aSThomas Huth #define MASK_OP_SLR_D(op) MASK_BITS_SHIFT(op, 8, 11) 54fcf5ef2aSThomas Huth 55fcf5ef2aSThomas Huth #define MASK_OP_SLRO_OFF4(op) MASK_BITS_SHIFT(op, 12, 15) 56fcf5ef2aSThomas Huth #define MASK_OP_SLRO_D(op) MASK_BITS_SHIFT(op, 8, 11) 57fcf5ef2aSThomas Huth 58fcf5ef2aSThomas Huth #define MASK_OP_SR_OP2(op) MASK_BITS_SHIFT(op, 12, 15) 59fcf5ef2aSThomas Huth #define MASK_OP_SR_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 60fcf5ef2aSThomas Huth 61fcf5ef2aSThomas Huth #define MASK_OP_SRC_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 62fcf5ef2aSThomas Huth #define MASK_OP_SRC_CONST4_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 15) 63fcf5ef2aSThomas Huth #define MASK_OP_SRC_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 64fcf5ef2aSThomas Huth 65fcf5ef2aSThomas Huth #define MASK_OP_SRO_S2(op) MASK_BITS_SHIFT(op, 12, 15) 66fcf5ef2aSThomas Huth #define MASK_OP_SRO_OFF4(op) MASK_BITS_SHIFT(op, 8, 11) 67fcf5ef2aSThomas Huth 68fcf5ef2aSThomas Huth #define MASK_OP_SRR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 69fcf5ef2aSThomas Huth #define MASK_OP_SRR_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 70fcf5ef2aSThomas Huth 71fcf5ef2aSThomas Huth #define MASK_OP_SRRS_S2(op) MASK_BITS_SHIFT(op, 12, 15) 72fcf5ef2aSThomas Huth #define MASK_OP_SRRS_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 73fcf5ef2aSThomas Huth #define MASK_OP_SRRS_N(op) MASK_BITS_SHIFT(op, 6, 7) 74fcf5ef2aSThomas Huth 75fcf5ef2aSThomas Huth #define MASK_OP_SSR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 76fcf5ef2aSThomas Huth #define MASK_OP_SSR_S1(op) MASK_BITS_SHIFT(op, 8, 11) 77fcf5ef2aSThomas Huth 78fcf5ef2aSThomas Huth #define MASK_OP_SSRO_OFF4(op) MASK_BITS_SHIFT(op, 12, 15) 79fcf5ef2aSThomas Huth #define MASK_OP_SSRO_S1(op) MASK_BITS_SHIFT(op, 8, 11) 80fcf5ef2aSThomas Huth 81fcf5ef2aSThomas Huth /* 32-Bit Formats */ 82fcf5ef2aSThomas Huth 83fcf5ef2aSThomas Huth /* ABS Format */ 84fcf5ef2aSThomas Huth #define MASK_OP_ABS_OFF18(op) (MASK_BITS_SHIFT(op, 16, 21) + \ 85fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 28, 31) << 6) + \ 86fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 22, 25) << 10) +\ 87fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 12, 15) << 14)) 88fcf5ef2aSThomas Huth #define MASK_OP_ABS_OP2(op) MASK_BITS_SHIFT(op, 26, 27) 89fcf5ef2aSThomas Huth #define MASK_OP_ABS_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 90fcf5ef2aSThomas Huth 91fcf5ef2aSThomas Huth /* ABSB Format */ 92fcf5ef2aSThomas Huth #define MASK_OP_ABSB_OFF18(op) MASK_OP_ABS_OFF18(op) 93fcf5ef2aSThomas Huth #define MASK_OP_ABSB_OP2(op) MASK_BITS_SHIFT(op, 26, 27) 94fcf5ef2aSThomas Huth #define MASK_OP_ABSB_B(op) MASK_BITS_SHIFT(op, 11, 11) 95fcf5ef2aSThomas Huth #define MASK_OP_ABSB_BPOS(op) MASK_BITS_SHIFT(op, 8, 10) 96fcf5ef2aSThomas Huth 97fcf5ef2aSThomas Huth /* B Format */ 98fcf5ef2aSThomas Huth #define MASK_OP_B_DISP24(op) (MASK_BITS_SHIFT(op, 16, 31) + \ 99fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 8, 15) << 16)) 100fcf5ef2aSThomas Huth #define MASK_OP_B_DISP24_SEXT(op) (MASK_BITS_SHIFT(op, 16, 31) + \ 101fcf5ef2aSThomas Huth (MASK_BITS_SHIFT_SEXT(op, 8, 15) << 16)) 102fcf5ef2aSThomas Huth /* BIT Format */ 103fcf5ef2aSThomas Huth #define MASK_OP_BIT_D(op) MASK_BITS_SHIFT(op, 28, 31) 104fcf5ef2aSThomas Huth #define MASK_OP_BIT_POS2(op) MASK_BITS_SHIFT(op, 23, 27) 105fcf5ef2aSThomas Huth #define MASK_OP_BIT_OP2(op) MASK_BITS_SHIFT(op, 21, 22) 106fcf5ef2aSThomas Huth #define MASK_OP_BIT_POS1(op) MASK_BITS_SHIFT(op, 16, 20) 107fcf5ef2aSThomas Huth #define MASK_OP_BIT_S2(op) MASK_BITS_SHIFT(op, 12, 15) 108fcf5ef2aSThomas Huth #define MASK_OP_BIT_S1(op) MASK_BITS_SHIFT(op, 8, 11) 109fcf5ef2aSThomas Huth 110fcf5ef2aSThomas Huth /* BO Format */ 111fcf5ef2aSThomas Huth #define MASK_OP_BO_OFF10(op) (MASK_BITS_SHIFT(op, 16, 21) + \ 112fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 28, 31) << 6)) 113fcf5ef2aSThomas Huth #define MASK_OP_BO_OFF10_SEXT(op) (MASK_BITS_SHIFT(op, 16, 21) + \ 114fcf5ef2aSThomas Huth (MASK_BITS_SHIFT_SEXT(op, 28, 31) << 6)) 115fcf5ef2aSThomas Huth #define MASK_OP_BO_OP2(op) MASK_BITS_SHIFT(op, 22, 27) 116fcf5ef2aSThomas Huth #define MASK_OP_BO_S2(op) MASK_BITS_SHIFT(op, 12, 15) 117fcf5ef2aSThomas Huth #define MASK_OP_BO_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 118fcf5ef2aSThomas Huth 119fcf5ef2aSThomas Huth /* BOL Format */ 120fcf5ef2aSThomas Huth #define MASK_OP_BOL_OFF16(op) ((MASK_BITS_SHIFT(op, 16, 21) + \ 121fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 28, 31) << 6)) + \ 122fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 22, 27) << 10)) 123fcf5ef2aSThomas Huth #define MASK_OP_BOL_OFF16_SEXT(op) ((MASK_BITS_SHIFT(op, 16, 21) + \ 124fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 28, 31) << 6)) + \ 125fcf5ef2aSThomas Huth (MASK_BITS_SHIFT_SEXT(op, 22, 27) << 10)) 126fcf5ef2aSThomas Huth #define MASK_OP_BOL_S2(op) MASK_BITS_SHIFT(op, 12, 15) 127fcf5ef2aSThomas Huth #define MASK_OP_BOL_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 128fcf5ef2aSThomas Huth 129fcf5ef2aSThomas Huth /* BRC Format */ 130fcf5ef2aSThomas Huth #define MASK_OP_BRC_OP2(op) MASK_BITS_SHIFT(op, 31, 31) 131fcf5ef2aSThomas Huth #define MASK_OP_BRC_DISP15(op) MASK_BITS_SHIFT(op, 16, 30) 132fcf5ef2aSThomas Huth #define MASK_OP_BRC_DISP15_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 16, 30) 133fcf5ef2aSThomas Huth #define MASK_OP_BRC_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 134fcf5ef2aSThomas Huth #define MASK_OP_BRC_CONST4_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 15) 135fcf5ef2aSThomas Huth #define MASK_OP_BRC_S1(op) MASK_BITS_SHIFT(op, 8, 11) 136fcf5ef2aSThomas Huth 137fcf5ef2aSThomas Huth /* BRN Format */ 138fcf5ef2aSThomas Huth #define MASK_OP_BRN_OP2(op) MASK_BITS_SHIFT(op, 31, 31) 139fcf5ef2aSThomas Huth #define MASK_OP_BRN_DISP15(op) MASK_BITS_SHIFT(op, 16, 30) 140fcf5ef2aSThomas Huth #define MASK_OP_BRN_DISP15_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 16, 30) 141fcf5ef2aSThomas Huth #define MASK_OP_BRN_N(op) (MASK_BITS_SHIFT(op, 12, 15) + \ 142fcf5ef2aSThomas Huth (MASK_BITS_SHIFT(op, 7, 7) << 4)) 143fcf5ef2aSThomas Huth #define MASK_OP_BRN_S1(op) MASK_BITS_SHIFT(op, 8, 11) 144fcf5ef2aSThomas Huth /* BRR Format */ 145fcf5ef2aSThomas Huth #define MASK_OP_BRR_OP2(op) MASK_BITS_SHIFT(op, 31, 31) 146fcf5ef2aSThomas Huth #define MASK_OP_BRR_DISP15(op) MASK_BITS_SHIFT(op, 16, 30) 147fcf5ef2aSThomas Huth #define MASK_OP_BRR_DISP15_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 16, 30) 148fcf5ef2aSThomas Huth #define MASK_OP_BRR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 149fcf5ef2aSThomas Huth #define MASK_OP_BRR_S1(op) MASK_BITS_SHIFT(op, 8, 11) 150fcf5ef2aSThomas Huth 151fcf5ef2aSThomas Huth /* META MASK for similar instr Formats */ 152fcf5ef2aSThomas Huth #define MASK_OP_META_D(op) MASK_BITS_SHIFT(op, 28, 31) 153fcf5ef2aSThomas Huth #define MASK_OP_META_S1(op) MASK_BITS_SHIFT(op, 8, 11) 154fcf5ef2aSThomas Huth 155fcf5ef2aSThomas Huth /* RC Format */ 156fcf5ef2aSThomas Huth #define MASK_OP_RC_D(op) MASK_OP_META_D(op) 157fcf5ef2aSThomas Huth #define MASK_OP_RC_OP2(op) MASK_BITS_SHIFT(op, 21, 27) 158fcf5ef2aSThomas Huth #define MASK_OP_RC_CONST9(op) MASK_BITS_SHIFT(op, 12, 20) 159fcf5ef2aSThomas Huth #define MASK_OP_RC_CONST9_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 20) 160fcf5ef2aSThomas Huth #define MASK_OP_RC_S1(op) MASK_OP_META_S1(op) 161fcf5ef2aSThomas Huth 162fcf5ef2aSThomas Huth /* RCPW Format */ 163fcf5ef2aSThomas Huth 164fcf5ef2aSThomas Huth #define MASK_OP_RCPW_D(op) MASK_OP_META_D(op) 165fcf5ef2aSThomas Huth #define MASK_OP_RCPW_POS(op) MASK_BITS_SHIFT(op, 23, 27) 166fcf5ef2aSThomas Huth #define MASK_OP_RCPW_OP2(op) MASK_BITS_SHIFT(op, 21, 22) 167fcf5ef2aSThomas Huth #define MASK_OP_RCPW_WIDTH(op) MASK_BITS_SHIFT(op, 16, 20) 168fcf5ef2aSThomas Huth #define MASK_OP_RCPW_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 169fcf5ef2aSThomas Huth #define MASK_OP_RCPW_S1(op) MASK_OP_META_S1(op) 170fcf5ef2aSThomas Huth 171fcf5ef2aSThomas Huth /* RCR Format */ 172fcf5ef2aSThomas Huth 173fcf5ef2aSThomas Huth #define MASK_OP_RCR_D(op) MASK_OP_META_D(op) 174fcf5ef2aSThomas Huth #define MASK_OP_RCR_S3(op) MASK_BITS_SHIFT(op, 24, 27) 175fcf5ef2aSThomas Huth #define MASK_OP_RCR_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 176fcf5ef2aSThomas Huth #define MASK_OP_RCR_CONST9(op) MASK_BITS_SHIFT(op, 12, 20) 177fcf5ef2aSThomas Huth #define MASK_OP_RCR_CONST9_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 20) 178fcf5ef2aSThomas Huth #define MASK_OP_RCR_S1(op) MASK_OP_META_S1(op) 179fcf5ef2aSThomas Huth 180fcf5ef2aSThomas Huth /* RCRR Format */ 181fcf5ef2aSThomas Huth 182fcf5ef2aSThomas Huth #define MASK_OP_RCRR_D(op) MASK_OP_META_D(op) 183fcf5ef2aSThomas Huth #define MASK_OP_RCRR_S3(op) MASK_BITS_SHIFT(op, 24, 27) 184fcf5ef2aSThomas Huth #define MASK_OP_RCRR_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 185fcf5ef2aSThomas Huth #define MASK_OP_RCRR_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 186fcf5ef2aSThomas Huth #define MASK_OP_RCRR_S1(op) MASK_OP_META_S1(op) 187fcf5ef2aSThomas Huth 188fcf5ef2aSThomas Huth /* RCRW Format */ 189fcf5ef2aSThomas Huth 190fcf5ef2aSThomas Huth #define MASK_OP_RCRW_D(op) MASK_OP_META_D(op) 191fcf5ef2aSThomas Huth #define MASK_OP_RCRW_S3(op) MASK_BITS_SHIFT(op, 24, 27) 192fcf5ef2aSThomas Huth #define MASK_OP_RCRW_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 193fcf5ef2aSThomas Huth #define MASK_OP_RCRW_WIDTH(op) MASK_BITS_SHIFT(op, 16, 20) 194fcf5ef2aSThomas Huth #define MASK_OP_RCRW_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 195fcf5ef2aSThomas Huth #define MASK_OP_RCRW_S1(op) MASK_OP_META_S1(op) 196fcf5ef2aSThomas Huth 197fcf5ef2aSThomas Huth /* RLC Format */ 198fcf5ef2aSThomas Huth 199fcf5ef2aSThomas Huth #define MASK_OP_RLC_D(op) MASK_OP_META_D(op) 200fcf5ef2aSThomas Huth #define MASK_OP_RLC_CONST16(op) MASK_BITS_SHIFT(op, 12, 27) 201fcf5ef2aSThomas Huth #define MASK_OP_RLC_CONST16_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 27) 202fcf5ef2aSThomas Huth #define MASK_OP_RLC_S1(op) MASK_OP_META_S1(op) 203fcf5ef2aSThomas Huth 204fcf5ef2aSThomas Huth /* RR Format */ 205fcf5ef2aSThomas Huth #define MASK_OP_RR_D(op) MASK_OP_META_D(op) 206fcf5ef2aSThomas Huth #define MASK_OP_RR_OP2(op) MASK_BITS_SHIFT(op, 20, 27) 207fcf5ef2aSThomas Huth #define MASK_OP_RR_N(op) MASK_BITS_SHIFT(op, 16, 17) 208fcf5ef2aSThomas Huth #define MASK_OP_RR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 209fcf5ef2aSThomas Huth #define MASK_OP_RR_S1(op) MASK_OP_META_S1(op) 210fcf5ef2aSThomas Huth 211fcf5ef2aSThomas Huth /* RR1 Format */ 212fcf5ef2aSThomas Huth #define MASK_OP_RR1_D(op) MASK_OP_META_D(op) 213fcf5ef2aSThomas Huth #define MASK_OP_RR1_OP2(op) MASK_BITS_SHIFT(op, 18, 27) 214fcf5ef2aSThomas Huth #define MASK_OP_RR1_N(op) MASK_BITS_SHIFT(op, 16, 17) 215fcf5ef2aSThomas Huth #define MASK_OP_RR1_S2(op) MASK_BITS_SHIFT(op, 12, 15) 216fcf5ef2aSThomas Huth #define MASK_OP_RR1_S1(op) MASK_OP_META_S1(op) 217fcf5ef2aSThomas Huth 218fcf5ef2aSThomas Huth /* RR2 Format */ 219fcf5ef2aSThomas Huth #define MASK_OP_RR2_D(op) MASK_OP_META_D(op) 220fcf5ef2aSThomas Huth #define MASK_OP_RR2_OP2(op) MASK_BITS_SHIFT(op, 16, 27) 221fcf5ef2aSThomas Huth #define MASK_OP_RR2_S2(op) MASK_BITS_SHIFT(op, 12, 15) 222fcf5ef2aSThomas Huth #define MASK_OP_RR2_S1(op) MASK_OP_META_S1(op) 223fcf5ef2aSThomas Huth 224fcf5ef2aSThomas Huth /* RRPW Format */ 225fcf5ef2aSThomas Huth #define MASK_OP_RRPW_D(op) MASK_OP_META_D(op) 226fcf5ef2aSThomas Huth #define MASK_OP_RRPW_POS(op) MASK_BITS_SHIFT(op, 23, 27) 227fcf5ef2aSThomas Huth #define MASK_OP_RRPW_OP2(op) MASK_BITS_SHIFT(op, 21, 22) 228fcf5ef2aSThomas Huth #define MASK_OP_RRPW_WIDTH(op) MASK_BITS_SHIFT(op, 16, 20) 229fcf5ef2aSThomas Huth #define MASK_OP_RRPW_S2(op) MASK_BITS_SHIFT(op, 12, 15) 230fcf5ef2aSThomas Huth #define MASK_OP_RRPW_S1(op) MASK_OP_META_S1(op) 231fcf5ef2aSThomas Huth 232fcf5ef2aSThomas Huth /* RRR Format */ 233fcf5ef2aSThomas Huth #define MASK_OP_RRR_D(op) MASK_OP_META_D(op) 234fcf5ef2aSThomas Huth #define MASK_OP_RRR_S3(op) MASK_BITS_SHIFT(op, 24, 27) 235fcf5ef2aSThomas Huth #define MASK_OP_RRR_OP2(op) MASK_BITS_SHIFT(op, 20, 23) 236fcf5ef2aSThomas Huth #define MASK_OP_RRR_N(op) MASK_BITS_SHIFT(op, 16, 17) 237fcf5ef2aSThomas Huth #define MASK_OP_RRR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 238fcf5ef2aSThomas Huth #define MASK_OP_RRR_S1(op) MASK_OP_META_S1(op) 239fcf5ef2aSThomas Huth 240fcf5ef2aSThomas Huth /* RRR1 Format */ 241fcf5ef2aSThomas Huth #define MASK_OP_RRR1_D(op) MASK_OP_META_D(op) 242fcf5ef2aSThomas Huth #define MASK_OP_RRR1_S3(op) MASK_BITS_SHIFT(op, 24, 27) 243fcf5ef2aSThomas Huth #define MASK_OP_RRR1_OP2(op) MASK_BITS_SHIFT(op, 18, 23) 244fcf5ef2aSThomas Huth #define MASK_OP_RRR1_N(op) MASK_BITS_SHIFT(op, 16, 17) 245fcf5ef2aSThomas Huth #define MASK_OP_RRR1_S2(op) MASK_BITS_SHIFT(op, 12, 15) 246fcf5ef2aSThomas Huth #define MASK_OP_RRR1_S1(op) MASK_OP_META_S1(op) 247fcf5ef2aSThomas Huth 248fcf5ef2aSThomas Huth /* RRR2 Format */ 249fcf5ef2aSThomas Huth #define MASK_OP_RRR2_D(op) MASK_OP_META_D(op) 250fcf5ef2aSThomas Huth #define MASK_OP_RRR2_S3(op) MASK_BITS_SHIFT(op, 24, 27) 251fcf5ef2aSThomas Huth #define MASK_OP_RRR2_OP2(op) MASK_BITS_SHIFT(op, 16, 23) 252fcf5ef2aSThomas Huth #define MASK_OP_RRR2_S2(op) MASK_BITS_SHIFT(op, 12, 15) 253fcf5ef2aSThomas Huth #define MASK_OP_RRR2_S1(op) MASK_OP_META_S1(op) 254fcf5ef2aSThomas Huth 255fcf5ef2aSThomas Huth /* RRRR Format */ 256fcf5ef2aSThomas Huth #define MASK_OP_RRRR_D(op) MASK_OP_META_D(op) 257fcf5ef2aSThomas Huth #define MASK_OP_RRRR_S3(op) MASK_BITS_SHIFT(op, 24, 27) 258fcf5ef2aSThomas Huth #define MASK_OP_RRRR_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 259fcf5ef2aSThomas Huth #define MASK_OP_RRRR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 260fcf5ef2aSThomas Huth #define MASK_OP_RRRR_S1(op) MASK_OP_META_S1(op) 261fcf5ef2aSThomas Huth 262fcf5ef2aSThomas Huth /* RRRW Format */ 263fcf5ef2aSThomas Huth #define MASK_OP_RRRW_D(op) MASK_OP_META_D(op) 264fcf5ef2aSThomas Huth #define MASK_OP_RRRW_S3(op) MASK_BITS_SHIFT(op, 24, 27) 265fcf5ef2aSThomas Huth #define MASK_OP_RRRW_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 266fcf5ef2aSThomas Huth #define MASK_OP_RRRW_WIDTH(op) MASK_BITS_SHIFT(op, 16, 20) 267fcf5ef2aSThomas Huth #define MASK_OP_RRRW_S2(op) MASK_BITS_SHIFT(op, 12, 15) 268fcf5ef2aSThomas Huth #define MASK_OP_RRRW_S1(op) MASK_OP_META_S1(op) 269fcf5ef2aSThomas Huth 270fcf5ef2aSThomas Huth /* SYS Format */ 271fcf5ef2aSThomas Huth #define MASK_OP_SYS_OP2(op) MASK_BITS_SHIFT(op, 22, 27) 272fcf5ef2aSThomas Huth #define MASK_OP_SYS_S1D(op) MASK_OP_META_S1(op) 273fcf5ef2aSThomas Huth 274fcf5ef2aSThomas Huth 275fcf5ef2aSThomas Huth 276fcf5ef2aSThomas Huth /* 277fcf5ef2aSThomas Huth * Tricore Opcodes Enums 278fcf5ef2aSThomas Huth * 279fcf5ef2aSThomas Huth * Format: OPC(1|2|M)_InstrLen_Name 280fcf5ef2aSThomas Huth * OPC1 = only op1 field is used 281fcf5ef2aSThomas Huth * OPC2 = op1 and op2 field used part of OPCM 282fcf5ef2aSThomas Huth * OPCM = op1 field used to group Instr 283fcf5ef2aSThomas Huth * InstrLen = 16|32 284fcf5ef2aSThomas Huth * Name = Name of Instr 285fcf5ef2aSThomas Huth */ 286fcf5ef2aSThomas Huth 287fcf5ef2aSThomas Huth /* 16-Bit */ 288fcf5ef2aSThomas Huth enum { 289fcf5ef2aSThomas Huth 290fcf5ef2aSThomas Huth OPCM_16_SR_SYSTEM = 0x00, 291fcf5ef2aSThomas Huth OPCM_16_SR_ACCU = 0x32, 292fcf5ef2aSThomas Huth 293fcf5ef2aSThomas Huth OPC1_16_SRC_ADD = 0xc2, 294fcf5ef2aSThomas Huth OPC1_16_SRC_ADD_A15 = 0x92, 295fcf5ef2aSThomas Huth OPC1_16_SRC_ADD_15A = 0x9a, 296fcf5ef2aSThomas Huth OPC1_16_SRR_ADD = 0x42, 297fcf5ef2aSThomas Huth OPC1_16_SRR_ADD_A15 = 0x12, 298fcf5ef2aSThomas Huth OPC1_16_SRR_ADD_15A = 0x1a, 299fcf5ef2aSThomas Huth OPC1_16_SRC_ADD_A = 0xb0, 300fcf5ef2aSThomas Huth OPC1_16_SRR_ADD_A = 0x30, 301fcf5ef2aSThomas Huth OPC1_16_SRR_ADDS = 0x22, 302fcf5ef2aSThomas Huth OPC1_16_SRRS_ADDSC_A = 0x10, 303fcf5ef2aSThomas Huth OPC1_16_SC_AND = 0x16, 304fcf5ef2aSThomas Huth OPC1_16_SRR_AND = 0x26, 305fcf5ef2aSThomas Huth OPC1_16_SC_BISR = 0xe0, 306fcf5ef2aSThomas Huth OPC1_16_SRC_CADD = 0x8a, 307fcf5ef2aSThomas Huth OPC1_16_SRC_CADDN = 0xca, 308fcf5ef2aSThomas Huth OPC1_16_SB_CALL = 0x5c, 309fcf5ef2aSThomas Huth OPC1_16_SRC_CMOV = 0xaa, 310fcf5ef2aSThomas Huth OPC1_16_SRR_CMOV = 0x2a, 311fcf5ef2aSThomas Huth OPC1_16_SRC_CMOVN = 0xea, 312fcf5ef2aSThomas Huth OPC1_16_SRR_CMOVN = 0x6a, 313fcf5ef2aSThomas Huth OPC1_16_SRC_EQ = 0xba, 314fcf5ef2aSThomas Huth OPC1_16_SRR_EQ = 0x3a, 315fcf5ef2aSThomas Huth OPC1_16_SB_J = 0x3c, 316fcf5ef2aSThomas Huth OPC1_16_SBC_JEQ = 0x1e, 317dedd8c9cSPeer Adelt OPC1_16_SBC_JEQ2 = 0x9e, 318fcf5ef2aSThomas Huth OPC1_16_SBR_JEQ = 0x3e, 319defda2d4SDavid Brenken OPC1_16_SBR_JEQ2 = 0xbe, 320fcf5ef2aSThomas Huth OPC1_16_SBR_JGEZ = 0xce, 321fcf5ef2aSThomas Huth OPC1_16_SBR_JGTZ = 0x4e, 322fcf5ef2aSThomas Huth OPC1_16_SR_JI = 0xdc, 323fcf5ef2aSThomas Huth OPC1_16_SBR_JLEZ = 0x8e, 324fcf5ef2aSThomas Huth OPC1_16_SBR_JLTZ = 0x0e, 325fcf5ef2aSThomas Huth OPC1_16_SBC_JNE = 0x5e, 326dedd8c9cSPeer Adelt OPC1_16_SBC_JNE2 = 0xde, 327fcf5ef2aSThomas Huth OPC1_16_SBR_JNE = 0x7e, 328defda2d4SDavid Brenken OPC1_16_SBR_JNE2 = 0xfe, 329fcf5ef2aSThomas Huth OPC1_16_SB_JNZ = 0xee, 330fcf5ef2aSThomas Huth OPC1_16_SBR_JNZ = 0xf6, 331fcf5ef2aSThomas Huth OPC1_16_SBR_JNZ_A = 0x7c, 332fcf5ef2aSThomas Huth OPC1_16_SBRN_JNZ_T = 0xae, 333fcf5ef2aSThomas Huth OPC1_16_SB_JZ = 0x6e, 334fcf5ef2aSThomas Huth OPC1_16_SBR_JZ = 0x76, 335fcf5ef2aSThomas Huth OPC1_16_SBR_JZ_A = 0xbc, 336fcf5ef2aSThomas Huth OPC1_16_SBRN_JZ_T = 0x2e, 337fcf5ef2aSThomas Huth OPC1_16_SC_LD_A = 0xd8, 338fcf5ef2aSThomas Huth OPC1_16_SLR_LD_A = 0xd4, 339fcf5ef2aSThomas Huth OPC1_16_SLR_LD_A_POSTINC = 0xc4, 340fcf5ef2aSThomas Huth OPC1_16_SLRO_LD_A = 0xc8, 341fcf5ef2aSThomas Huth OPC1_16_SRO_LD_A = 0xcc, 342fcf5ef2aSThomas Huth OPC1_16_SLR_LD_BU = 0x14, 343fcf5ef2aSThomas Huth OPC1_16_SLR_LD_BU_POSTINC = 0x04, 344fcf5ef2aSThomas Huth OPC1_16_SLRO_LD_BU = 0x08, 345fcf5ef2aSThomas Huth OPC1_16_SRO_LD_BU = 0x0c, 346fcf5ef2aSThomas Huth OPC1_16_SLR_LD_H = 0x94, 347fcf5ef2aSThomas Huth OPC1_16_SLR_LD_H_POSTINC = 0x84, 348fcf5ef2aSThomas Huth OPC1_16_SLRO_LD_H = 0x88, 349fcf5ef2aSThomas Huth OPC1_16_SRO_LD_H = 0x8c, 350fcf5ef2aSThomas Huth OPC1_16_SC_LD_W = 0x58, 351fcf5ef2aSThomas Huth OPC1_16_SLR_LD_W = 0x54, 352fcf5ef2aSThomas Huth OPC1_16_SLR_LD_W_POSTINC = 0x44, 353fcf5ef2aSThomas Huth OPC1_16_SLRO_LD_W = 0x48, 354fcf5ef2aSThomas Huth OPC1_16_SRO_LD_W = 0x4c, 355fcf5ef2aSThomas Huth OPC1_16_SBR_LOOP = 0xfc, 356fcf5ef2aSThomas Huth OPC1_16_SRC_LT = 0xfa, 357fcf5ef2aSThomas Huth OPC1_16_SRR_LT = 0x7a, 358fcf5ef2aSThomas Huth OPC1_16_SC_MOV = 0xda, 359fcf5ef2aSThomas Huth OPC1_16_SRC_MOV = 0x82, 360fcf5ef2aSThomas Huth OPC1_16_SRR_MOV = 0x02, 361fcf5ef2aSThomas Huth OPC1_16_SRC_MOV_E = 0xd2,/* 1.6 only */ 362fcf5ef2aSThomas Huth OPC1_16_SRC_MOV_A = 0xa0, 363fcf5ef2aSThomas Huth OPC1_16_SRR_MOV_A = 0x60, 364fcf5ef2aSThomas Huth OPC1_16_SRR_MOV_AA = 0x40, 365fcf5ef2aSThomas Huth OPC1_16_SRR_MOV_D = 0x80, 366fcf5ef2aSThomas Huth OPC1_16_SRR_MUL = 0xe2, 367fcf5ef2aSThomas Huth OPC1_16_SR_NOT = 0x46, 368fcf5ef2aSThomas Huth OPC1_16_SC_OR = 0x96, 369fcf5ef2aSThomas Huth OPC1_16_SRR_OR = 0xa6, 370fcf5ef2aSThomas Huth OPC1_16_SRC_SH = 0x06, 371fcf5ef2aSThomas Huth OPC1_16_SRC_SHA = 0x86, 372fcf5ef2aSThomas Huth OPC1_16_SC_ST_A = 0xf8, 373fcf5ef2aSThomas Huth OPC1_16_SRO_ST_A = 0xec, 374fcf5ef2aSThomas Huth OPC1_16_SSR_ST_A = 0xf4, 375fcf5ef2aSThomas Huth OPC1_16_SSR_ST_A_POSTINC = 0xe4, 376fcf5ef2aSThomas Huth OPC1_16_SSRO_ST_A = 0xe8, 377fcf5ef2aSThomas Huth OPC1_16_SRO_ST_B = 0x2c, 378fcf5ef2aSThomas Huth OPC1_16_SSR_ST_B = 0x34, 379fcf5ef2aSThomas Huth OPC1_16_SSR_ST_B_POSTINC = 0x24, 380fcf5ef2aSThomas Huth OPC1_16_SSRO_ST_B = 0x28, 381fcf5ef2aSThomas Huth OPC1_16_SRO_ST_H = 0xac, 382fcf5ef2aSThomas Huth OPC1_16_SSR_ST_H = 0xb4, 383fcf5ef2aSThomas Huth OPC1_16_SSR_ST_H_POSTINC = 0xa4, 384fcf5ef2aSThomas Huth OPC1_16_SSRO_ST_H = 0xa8, 385fcf5ef2aSThomas Huth OPC1_16_SC_ST_W = 0x78, 386fcf5ef2aSThomas Huth OPC1_16_SRO_ST_W = 0x6c, 387fcf5ef2aSThomas Huth OPC1_16_SSR_ST_W = 0x74, 388fcf5ef2aSThomas Huth OPC1_16_SSR_ST_W_POSTINC = 0x64, 389fcf5ef2aSThomas Huth OPC1_16_SSRO_ST_W = 0x68, 390fcf5ef2aSThomas Huth OPC1_16_SRR_SUB = 0xa2, 391fcf5ef2aSThomas Huth OPC1_16_SRR_SUB_A15B = 0x52, 392fcf5ef2aSThomas Huth OPC1_16_SRR_SUB_15AB = 0x5a, 393fcf5ef2aSThomas Huth OPC1_16_SC_SUB_A = 0x20, 394fcf5ef2aSThomas Huth OPC1_16_SRR_SUBS = 0x62, 395fcf5ef2aSThomas Huth OPC1_16_SRR_XOR = 0xc6, 396fcf5ef2aSThomas Huth 397fcf5ef2aSThomas Huth }; 398fcf5ef2aSThomas Huth 399fcf5ef2aSThomas Huth /* 400fcf5ef2aSThomas Huth * SR Format 401fcf5ef2aSThomas Huth */ 402fcf5ef2aSThomas Huth /* OPCM_16_SR_SYSTEM */ 403fcf5ef2aSThomas Huth enum { 404fcf5ef2aSThomas Huth 405fcf5ef2aSThomas Huth OPC2_16_SR_NOP = 0x00, 406fcf5ef2aSThomas Huth OPC2_16_SR_RET = 0x09, 407fcf5ef2aSThomas Huth OPC2_16_SR_RFE = 0x08, 408fcf5ef2aSThomas Huth OPC2_16_SR_DEBUG = 0x0a, 409fcf5ef2aSThomas Huth OPC2_16_SR_FRET = 0x07, 410fcf5ef2aSThomas Huth }; 411fcf5ef2aSThomas Huth /* OPCM_16_SR_ACCU */ 412fcf5ef2aSThomas Huth enum { 413fcf5ef2aSThomas Huth OPC2_16_SR_RSUB = 0x05, 414fcf5ef2aSThomas Huth OPC2_16_SR_SAT_B = 0x00, 415fcf5ef2aSThomas Huth OPC2_16_SR_SAT_BU = 0x01, 416fcf5ef2aSThomas Huth OPC2_16_SR_SAT_H = 0x02, 417fcf5ef2aSThomas Huth OPC2_16_SR_SAT_HU = 0x03, 418fcf5ef2aSThomas Huth 419fcf5ef2aSThomas Huth }; 420fcf5ef2aSThomas Huth 421fcf5ef2aSThomas Huth /* 32-Bit */ 422fcf5ef2aSThomas Huth 423fcf5ef2aSThomas Huth enum { 424fcf5ef2aSThomas Huth /* ABS Format 1, M */ 425fcf5ef2aSThomas Huth OPCM_32_ABS_LDW = 0x85, 426fcf5ef2aSThomas Huth OPCM_32_ABS_LDB = 0x05, 427fcf5ef2aSThomas Huth OPCM_32_ABS_LDMST_SWAP = 0xe5, 428fcf5ef2aSThomas Huth OPCM_32_ABS_LDST_CONTEXT = 0x15, 429fcf5ef2aSThomas Huth OPCM_32_ABS_STORE = 0xa5, 430fcf5ef2aSThomas Huth OPCM_32_ABS_STOREB_H = 0x25, 431fcf5ef2aSThomas Huth OPC1_32_ABS_STOREQ = 0x65, 432fcf5ef2aSThomas Huth OPC1_32_ABS_LD_Q = 0x45, 43373f874d9SBastian Koppelmann OPCM_32_ABS_LEA_LHA = 0xc5, 434fcf5ef2aSThomas Huth /* ABSB Format */ 435fcf5ef2aSThomas Huth OPC1_32_ABSB_ST_T = 0xd5, 436fcf5ef2aSThomas Huth /* B Format */ 437fcf5ef2aSThomas Huth OPC1_32_B_CALL = 0x6d, 438fcf5ef2aSThomas Huth OPC1_32_B_CALLA = 0xed, 439fcf5ef2aSThomas Huth OPC1_32_B_FCALL = 0x61, 440fcf5ef2aSThomas Huth OPC1_32_B_FCALLA = 0xe1, 441fcf5ef2aSThomas Huth OPC1_32_B_J = 0x1d, 442fcf5ef2aSThomas Huth OPC1_32_B_JA = 0x9d, 443fcf5ef2aSThomas Huth OPC1_32_B_JL = 0x5d, 444fcf5ef2aSThomas Huth OPC1_32_B_JLA = 0xdd, 445fcf5ef2aSThomas Huth /* Bit Format */ 446fcf5ef2aSThomas Huth OPCM_32_BIT_ANDACC = 0x47, 447fcf5ef2aSThomas Huth OPCM_32_BIT_LOGICAL_T1 = 0x87, 448fcf5ef2aSThomas Huth OPCM_32_BIT_INSERT = 0x67, 449fcf5ef2aSThomas Huth OPCM_32_BIT_LOGICAL_T2 = 0x07, 450fcf5ef2aSThomas Huth OPCM_32_BIT_ORAND = 0xc7, 451fcf5ef2aSThomas Huth OPCM_32_BIT_SH_LOGIC1 = 0x27, 452fcf5ef2aSThomas Huth OPCM_32_BIT_SH_LOGIC2 = 0xa7, 453fcf5ef2aSThomas Huth /* BO Format */ 454fcf5ef2aSThomas Huth OPCM_32_BO_ADDRMODE_POST_PRE_BASE = 0x89, 455fcf5ef2aSThomas Huth OPCM_32_BO_ADDRMODE_BITREVERSE_CIRCULAR = 0xa9, 456fcf5ef2aSThomas Huth OPCM_32_BO_ADDRMODE_LD_POST_PRE_BASE = 0x09, 457fcf5ef2aSThomas Huth OPCM_32_BO_ADDRMODE_LD_BITREVERSE_CIRCULAR = 0x29, 458fcf5ef2aSThomas Huth OPCM_32_BO_ADDRMODE_STCTX_POST_PRE_BASE = 0x49, 459fcf5ef2aSThomas Huth OPCM_32_BO_ADDRMODE_LDMST_BITREVERSE_CIRCULAR = 0x69, 460fcf5ef2aSThomas Huth /* BOL Format */ 461fcf5ef2aSThomas Huth OPC1_32_BOL_LD_A_LONGOFF = 0x99, 462fcf5ef2aSThomas Huth OPC1_32_BOL_LD_W_LONGOFF = 0x19, 463fcf5ef2aSThomas Huth OPC1_32_BOL_LEA_LONGOFF = 0xd9, 464fcf5ef2aSThomas Huth OPC1_32_BOL_ST_W_LONGOFF = 0x59, 465fcf5ef2aSThomas Huth OPC1_32_BOL_ST_A_LONGOFF = 0xb5, /* 1.6 only */ 466fcf5ef2aSThomas Huth OPC1_32_BOL_LD_B_LONGOFF = 0x79, /* 1.6 only */ 467fcf5ef2aSThomas Huth OPC1_32_BOL_LD_BU_LONGOFF = 0x39, /* 1.6 only */ 468fcf5ef2aSThomas Huth OPC1_32_BOL_LD_H_LONGOFF = 0xc9, /* 1.6 only */ 469fcf5ef2aSThomas Huth OPC1_32_BOL_LD_HU_LONGOFF = 0xb9, /* 1.6 only */ 470fcf5ef2aSThomas Huth OPC1_32_BOL_ST_B_LONGOFF = 0xe9, /* 1.6 only */ 471fcf5ef2aSThomas Huth OPC1_32_BOL_ST_H_LONGOFF = 0xf9, /* 1.6 only */ 472fcf5ef2aSThomas Huth /* BRC Format */ 473fcf5ef2aSThomas Huth OPCM_32_BRC_EQ_NEQ = 0xdf, 474fcf5ef2aSThomas Huth OPCM_32_BRC_GE = 0xff, 475fcf5ef2aSThomas Huth OPCM_32_BRC_JLT = 0xbf, 476fcf5ef2aSThomas Huth OPCM_32_BRC_JNE = 0x9f, 477fcf5ef2aSThomas Huth /* BRN Format */ 478fcf5ef2aSThomas Huth OPCM_32_BRN_JTT = 0x6f, 479fcf5ef2aSThomas Huth /* BRR Format */ 480fcf5ef2aSThomas Huth OPCM_32_BRR_EQ_NEQ = 0x5f, 481fcf5ef2aSThomas Huth OPCM_32_BRR_ADDR_EQ_NEQ = 0x7d, 482fcf5ef2aSThomas Huth OPCM_32_BRR_GE = 0x7f, 483fcf5ef2aSThomas Huth OPCM_32_BRR_JLT = 0x3f, 484fcf5ef2aSThomas Huth OPCM_32_BRR_JNE = 0x1f, 485fcf5ef2aSThomas Huth OPCM_32_BRR_JNZ = 0xbd, 486fcf5ef2aSThomas Huth OPCM_32_BRR_LOOP = 0xfd, 487fcf5ef2aSThomas Huth /* RC Format */ 488fcf5ef2aSThomas Huth OPCM_32_RC_LOGICAL_SHIFT = 0x8f, 489fcf5ef2aSThomas Huth OPCM_32_RC_ACCUMULATOR = 0x8b, 490fcf5ef2aSThomas Huth OPCM_32_RC_SERVICEROUTINE = 0xad, 491fcf5ef2aSThomas Huth OPCM_32_RC_MUL = 0x53, 492fcf5ef2aSThomas Huth /* RCPW Format */ 493fcf5ef2aSThomas Huth OPCM_32_RCPW_MASK_INSERT = 0xb7, 494fcf5ef2aSThomas Huth /* RCR Format */ 495fcf5ef2aSThomas Huth OPCM_32_RCR_COND_SELECT = 0xab, 496fcf5ef2aSThomas Huth OPCM_32_RCR_MADD = 0x13, 497fcf5ef2aSThomas Huth OPCM_32_RCR_MSUB = 0x33, 498fcf5ef2aSThomas Huth /* RCRR Format */ 499fcf5ef2aSThomas Huth OPC1_32_RCRR_INSERT = 0x97, 500fcf5ef2aSThomas Huth /* RCRW Format */ 501fcf5ef2aSThomas Huth OPCM_32_RCRW_MASK_INSERT = 0xd7, 502fcf5ef2aSThomas Huth /* RLC Format */ 503fcf5ef2aSThomas Huth OPC1_32_RLC_ADDI = 0x1b, 504fcf5ef2aSThomas Huth OPC1_32_RLC_ADDIH = 0x9b, 505fcf5ef2aSThomas Huth OPC1_32_RLC_ADDIH_A = 0x11, 506fcf5ef2aSThomas Huth OPC1_32_RLC_MFCR = 0x4d, 507fcf5ef2aSThomas Huth OPC1_32_RLC_MOV = 0x3b, 508fcf5ef2aSThomas Huth OPC1_32_RLC_MOV_64 = 0xfb, /* 1.6 only */ 509fcf5ef2aSThomas Huth OPC1_32_RLC_MOV_U = 0xbb, 510fcf5ef2aSThomas Huth OPC1_32_RLC_MOV_H = 0x7b, 511fcf5ef2aSThomas Huth OPC1_32_RLC_MOVH_A = 0x91, 512fcf5ef2aSThomas Huth OPC1_32_RLC_MTCR = 0xcd, 513fcf5ef2aSThomas Huth /* RR Format */ 514fcf5ef2aSThomas Huth OPCM_32_RR_LOGICAL_SHIFT = 0x0f, 515fcf5ef2aSThomas Huth OPCM_32_RR_ACCUMULATOR = 0x0b, 516fcf5ef2aSThomas Huth OPCM_32_RR_ADDRESS = 0x01, 517fcf5ef2aSThomas Huth OPCM_32_RR_DIVIDE = 0x4b, 518fcf5ef2aSThomas Huth OPCM_32_RR_IDIRECT = 0x2d, 519fcf5ef2aSThomas Huth /* RR1 Format */ 520fcf5ef2aSThomas Huth OPCM_32_RR1_MUL = 0xb3, 521fcf5ef2aSThomas Huth OPCM_32_RR1_MULQ = 0x93, 522fcf5ef2aSThomas Huth /* RR2 Format */ 523fcf5ef2aSThomas Huth OPCM_32_RR2_MUL = 0x73, 524fcf5ef2aSThomas Huth /* RRPW Format */ 525fcf5ef2aSThomas Huth OPCM_32_RRPW_EXTRACT_INSERT = 0x37, 526fcf5ef2aSThomas Huth OPC1_32_RRPW_DEXTR = 0x77, 527fcf5ef2aSThomas Huth /* RRR Format */ 528fcf5ef2aSThomas Huth OPCM_32_RRR_COND_SELECT = 0x2b, 529fcf5ef2aSThomas Huth OPCM_32_RRR_DIVIDE = 0x6b, 530fcf5ef2aSThomas Huth /* RRR1 Format */ 531fcf5ef2aSThomas Huth OPCM_32_RRR1_MADD = 0x83, 532fcf5ef2aSThomas Huth OPCM_32_RRR1_MADDQ_H = 0x43, 533fcf5ef2aSThomas Huth OPCM_32_RRR1_MADDSU_H = 0xc3, 534fcf5ef2aSThomas Huth OPCM_32_RRR1_MSUB_H = 0xa3, 535fcf5ef2aSThomas Huth OPCM_32_RRR1_MSUB_Q = 0x63, 536fcf5ef2aSThomas Huth OPCM_32_RRR1_MSUBAD_H = 0xe3, 537fcf5ef2aSThomas Huth /* RRR2 Format */ 538fcf5ef2aSThomas Huth OPCM_32_RRR2_MADD = 0x03, 539fcf5ef2aSThomas Huth OPCM_32_RRR2_MSUB = 0x23, 540fcf5ef2aSThomas Huth /* RRRR Format */ 541fcf5ef2aSThomas Huth OPCM_32_RRRR_EXTRACT_INSERT = 0x17, 542fcf5ef2aSThomas Huth /* RRRW Format */ 543fcf5ef2aSThomas Huth OPCM_32_RRRW_EXTRACT_INSERT = 0x57, 544fcf5ef2aSThomas Huth /* SYS Format */ 545fcf5ef2aSThomas Huth OPCM_32_SYS_INTERRUPTS = 0x0d, 546fcf5ef2aSThomas Huth OPC1_32_SYS_RSTV = 0x2f, 547fcf5ef2aSThomas Huth }; 548fcf5ef2aSThomas Huth 549fcf5ef2aSThomas Huth 550fcf5ef2aSThomas Huth 551fcf5ef2aSThomas Huth /* 552fcf5ef2aSThomas Huth * ABS Format 553fcf5ef2aSThomas Huth */ 554fcf5ef2aSThomas Huth 555fcf5ef2aSThomas Huth /* OPCM_32_ABS_LDW */ 556fcf5ef2aSThomas Huth enum { 557fcf5ef2aSThomas Huth 558fcf5ef2aSThomas Huth OPC2_32_ABS_LD_A = 0x02, 559fcf5ef2aSThomas Huth OPC2_32_ABS_LD_D = 0x01, 560fcf5ef2aSThomas Huth OPC2_32_ABS_LD_DA = 0x03, 561fcf5ef2aSThomas Huth OPC2_32_ABS_LD_W = 0x00, 562fcf5ef2aSThomas Huth }; 563fcf5ef2aSThomas Huth 564fcf5ef2aSThomas Huth /* OPCM_32_ABS_LDB */ 565fcf5ef2aSThomas Huth enum { 566fcf5ef2aSThomas Huth OPC2_32_ABS_LD_B = 0x00, 567fcf5ef2aSThomas Huth OPC2_32_ABS_LD_BU = 0x01, 568fcf5ef2aSThomas Huth OPC2_32_ABS_LD_H = 0x02, 569fcf5ef2aSThomas Huth OPC2_32_ABS_LD_HU = 0x03, 570fcf5ef2aSThomas Huth }; 571fcf5ef2aSThomas Huth /* OPCM_32_ABS_LDMST_SWAP */ 572fcf5ef2aSThomas Huth enum { 573fcf5ef2aSThomas Huth OPC2_32_ABS_LDMST = 0x01, 574fcf5ef2aSThomas Huth OPC2_32_ABS_SWAP_W = 0x00, 575fcf5ef2aSThomas Huth }; 576fcf5ef2aSThomas Huth /* OPCM_32_ABS_LDST_CONTEXT */ 577fcf5ef2aSThomas Huth enum { 578fcf5ef2aSThomas Huth OPC2_32_ABS_LDLCX = 0x02, 579fcf5ef2aSThomas Huth OPC2_32_ABS_LDUCX = 0x03, 580fcf5ef2aSThomas Huth OPC2_32_ABS_STLCX = 0x00, 581fcf5ef2aSThomas Huth OPC2_32_ABS_STUCX = 0x01, 582fcf5ef2aSThomas Huth }; 583fcf5ef2aSThomas Huth /* OPCM_32_ABS_STORE */ 584fcf5ef2aSThomas Huth enum { 585fcf5ef2aSThomas Huth OPC2_32_ABS_ST_A = 0x02, 586fcf5ef2aSThomas Huth OPC2_32_ABS_ST_D = 0x01, 587fcf5ef2aSThomas Huth OPC2_32_ABS_ST_DA = 0x03, 588fcf5ef2aSThomas Huth OPC2_32_ABS_ST_W = 0x00, 589fcf5ef2aSThomas Huth }; 590fcf5ef2aSThomas Huth /* OPCM_32_ABS_STOREB_H */ 591fcf5ef2aSThomas Huth enum { 592fcf5ef2aSThomas Huth OPC2_32_ABS_ST_B = 0x00, 593fcf5ef2aSThomas Huth OPC2_32_ABS_ST_H = 0x02, 594fcf5ef2aSThomas Huth }; 59573f874d9SBastian Koppelmann 59673f874d9SBastian Koppelmann /* OPCM_32_ABS_LEA_LHA */ 59773f874d9SBastian Koppelmann enum { 59873f874d9SBastian Koppelmann OPC2_32_ABS_LEA = 0x00, 59973f874d9SBastian Koppelmann OPC2_32_ABS_LHA = 0x01, 60073f874d9SBastian Koppelmann }; 60173f874d9SBastian Koppelmann 602fcf5ef2aSThomas Huth /* 603fcf5ef2aSThomas Huth * Bit Format 604fcf5ef2aSThomas Huth */ 605fcf5ef2aSThomas Huth /* OPCM_32_BIT_ANDACC */ 606fcf5ef2aSThomas Huth enum { 607fcf5ef2aSThomas Huth OPC2_32_BIT_AND_AND_T = 0x00, 608fcf5ef2aSThomas Huth OPC2_32_BIT_AND_ANDN_T = 0x03, 609fcf5ef2aSThomas Huth OPC2_32_BIT_AND_NOR_T = 0x02, 610fcf5ef2aSThomas Huth OPC2_32_BIT_AND_OR_T = 0x01, 611fcf5ef2aSThomas Huth }; 612fcf5ef2aSThomas Huth /* OPCM_32_BIT_LOGICAL_T */ 613fcf5ef2aSThomas Huth enum { 614fcf5ef2aSThomas Huth OPC2_32_BIT_AND_T = 0x00, 615fcf5ef2aSThomas Huth OPC2_32_BIT_ANDN_T = 0x03, 616fcf5ef2aSThomas Huth OPC2_32_BIT_NOR_T = 0x02, 617fcf5ef2aSThomas Huth OPC2_32_BIT_OR_T = 0x01, 618fcf5ef2aSThomas Huth }; 619fcf5ef2aSThomas Huth /* OPCM_32_BIT_INSERT */ 620fcf5ef2aSThomas Huth enum { 621fcf5ef2aSThomas Huth OPC2_32_BIT_INS_T = 0x00, 622fcf5ef2aSThomas Huth OPC2_32_BIT_INSN_T = 0x01, 623fcf5ef2aSThomas Huth }; 624fcf5ef2aSThomas Huth /* OPCM_32_BIT_LOGICAL_T2 */ 625fcf5ef2aSThomas Huth enum { 626fcf5ef2aSThomas Huth OPC2_32_BIT_NAND_T = 0x00, 627fcf5ef2aSThomas Huth OPC2_32_BIT_ORN_T = 0x01, 628fcf5ef2aSThomas Huth OPC2_32_BIT_XNOR_T = 0x02, 629fcf5ef2aSThomas Huth OPC2_32_BIT_XOR_T = 0x03, 630fcf5ef2aSThomas Huth }; 631fcf5ef2aSThomas Huth /* OPCM_32_BIT_ORAND */ 632fcf5ef2aSThomas Huth enum { 633fcf5ef2aSThomas Huth OPC2_32_BIT_OR_AND_T = 0x00, 634fcf5ef2aSThomas Huth OPC2_32_BIT_OR_ANDN_T = 0x03, 635fcf5ef2aSThomas Huth OPC2_32_BIT_OR_NOR_T = 0x02, 636fcf5ef2aSThomas Huth OPC2_32_BIT_OR_OR_T = 0x01, 637fcf5ef2aSThomas Huth }; 638fcf5ef2aSThomas Huth /*OPCM_32_BIT_SH_LOGIC1 */ 639fcf5ef2aSThomas Huth enum { 640fcf5ef2aSThomas Huth OPC2_32_BIT_SH_AND_T = 0x00, 641fcf5ef2aSThomas Huth OPC2_32_BIT_SH_ANDN_T = 0x03, 642fcf5ef2aSThomas Huth OPC2_32_BIT_SH_NOR_T = 0x02, 643fcf5ef2aSThomas Huth OPC2_32_BIT_SH_OR_T = 0x01, 644fcf5ef2aSThomas Huth }; 645fcf5ef2aSThomas Huth /* OPCM_32_BIT_SH_LOGIC2 */ 646fcf5ef2aSThomas Huth enum { 647fcf5ef2aSThomas Huth OPC2_32_BIT_SH_NAND_T = 0x00, 648fcf5ef2aSThomas Huth OPC2_32_BIT_SH_ORN_T = 0x01, 649fcf5ef2aSThomas Huth OPC2_32_BIT_SH_XNOR_T = 0x02, 650fcf5ef2aSThomas Huth OPC2_32_BIT_SH_XOR_T = 0x03, 651fcf5ef2aSThomas Huth }; 652fcf5ef2aSThomas Huth /* 653fcf5ef2aSThomas Huth * BO Format 654fcf5ef2aSThomas Huth */ 655fcf5ef2aSThomas Huth /* OPCM_32_BO_ADDRMODE_POST_PRE_BASE */ 656fcf5ef2aSThomas Huth enum { 657fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_I_SHORTOFF = 0x2e, 658fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_I_POSTINC = 0x0e, 659fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_I_PREINC = 0x1e, 660fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_W_SHORTOFF = 0x2c, 661fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_W_POSTINC = 0x0c, 662fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_W_PREINC = 0x1c, 663fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_WI_SHORTOFF = 0x2d, 664fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_WI_POSTINC = 0x0d, 665fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_WI_PREINC = 0x1d, 666fcf5ef2aSThomas Huth /* 1.3.1 only */ 667fcf5ef2aSThomas Huth OPC2_32_BO_CACHEI_W_SHORTOFF = 0x2b, 668fcf5ef2aSThomas Huth OPC2_32_BO_CACHEI_W_POSTINC = 0x0b, 669fcf5ef2aSThomas Huth OPC2_32_BO_CACHEI_W_PREINC = 0x1b, 670fcf5ef2aSThomas Huth OPC2_32_BO_CACHEI_WI_SHORTOFF = 0x2f, 671fcf5ef2aSThomas Huth OPC2_32_BO_CACHEI_WI_POSTINC = 0x0f, 672fcf5ef2aSThomas Huth OPC2_32_BO_CACHEI_WI_PREINC = 0x1f, 673fcf5ef2aSThomas Huth /* end 1.3.1 only */ 674fcf5ef2aSThomas Huth OPC2_32_BO_ST_A_SHORTOFF = 0x26, 675fcf5ef2aSThomas Huth OPC2_32_BO_ST_A_POSTINC = 0x06, 676fcf5ef2aSThomas Huth OPC2_32_BO_ST_A_PREINC = 0x16, 677fcf5ef2aSThomas Huth OPC2_32_BO_ST_B_SHORTOFF = 0x20, 678fcf5ef2aSThomas Huth OPC2_32_BO_ST_B_POSTINC = 0x00, 679fcf5ef2aSThomas Huth OPC2_32_BO_ST_B_PREINC = 0x10, 680fcf5ef2aSThomas Huth OPC2_32_BO_ST_D_SHORTOFF = 0x25, 681fcf5ef2aSThomas Huth OPC2_32_BO_ST_D_POSTINC = 0x05, 682fcf5ef2aSThomas Huth OPC2_32_BO_ST_D_PREINC = 0x15, 683fcf5ef2aSThomas Huth OPC2_32_BO_ST_DA_SHORTOFF = 0x27, 684fcf5ef2aSThomas Huth OPC2_32_BO_ST_DA_POSTINC = 0x07, 685fcf5ef2aSThomas Huth OPC2_32_BO_ST_DA_PREINC = 0x17, 686fcf5ef2aSThomas Huth OPC2_32_BO_ST_H_SHORTOFF = 0x22, 687fcf5ef2aSThomas Huth OPC2_32_BO_ST_H_POSTINC = 0x02, 688fcf5ef2aSThomas Huth OPC2_32_BO_ST_H_PREINC = 0x12, 689fcf5ef2aSThomas Huth OPC2_32_BO_ST_Q_SHORTOFF = 0x28, 690fcf5ef2aSThomas Huth OPC2_32_BO_ST_Q_POSTINC = 0x08, 691fcf5ef2aSThomas Huth OPC2_32_BO_ST_Q_PREINC = 0x18, 692fcf5ef2aSThomas Huth OPC2_32_BO_ST_W_SHORTOFF = 0x24, 693fcf5ef2aSThomas Huth OPC2_32_BO_ST_W_POSTINC = 0x04, 694fcf5ef2aSThomas Huth OPC2_32_BO_ST_W_PREINC = 0x14, 695fcf5ef2aSThomas Huth }; 696fcf5ef2aSThomas Huth /* OPCM_32_BO_ADDRMODE_BITREVERSE_CIRCULAR */ 697fcf5ef2aSThomas Huth enum { 698fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_I_BR = 0x0e, 699fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_I_CIRC = 0x1e, 700fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_W_BR = 0x0c, 701fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_W_CIRC = 0x1c, 702fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_WI_BR = 0x0d, 703fcf5ef2aSThomas Huth OPC2_32_BO_CACHEA_WI_CIRC = 0x1d, 704fcf5ef2aSThomas Huth OPC2_32_BO_ST_A_BR = 0x06, 705fcf5ef2aSThomas Huth OPC2_32_BO_ST_A_CIRC = 0x16, 706fcf5ef2aSThomas Huth OPC2_32_BO_ST_B_BR = 0x00, 707fcf5ef2aSThomas Huth OPC2_32_BO_ST_B_CIRC = 0x10, 708fcf5ef2aSThomas Huth OPC2_32_BO_ST_D_BR = 0x05, 709fcf5ef2aSThomas Huth OPC2_32_BO_ST_D_CIRC = 0x15, 710fcf5ef2aSThomas Huth OPC2_32_BO_ST_DA_BR = 0x07, 711fcf5ef2aSThomas Huth OPC2_32_BO_ST_DA_CIRC = 0x17, 712fcf5ef2aSThomas Huth OPC2_32_BO_ST_H_BR = 0x02, 713fcf5ef2aSThomas Huth OPC2_32_BO_ST_H_CIRC = 0x12, 714fcf5ef2aSThomas Huth OPC2_32_BO_ST_Q_BR = 0x08, 715fcf5ef2aSThomas Huth OPC2_32_BO_ST_Q_CIRC = 0x18, 716fcf5ef2aSThomas Huth OPC2_32_BO_ST_W_BR = 0x04, 717fcf5ef2aSThomas Huth OPC2_32_BO_ST_W_CIRC = 0x14, 718fcf5ef2aSThomas Huth }; 719fcf5ef2aSThomas Huth /* OPCM_32_BO_ADDRMODE_LD_POST_PRE_BASE */ 720fcf5ef2aSThomas Huth enum { 721fcf5ef2aSThomas Huth OPC2_32_BO_LD_A_SHORTOFF = 0x26, 722fcf5ef2aSThomas Huth OPC2_32_BO_LD_A_POSTINC = 0x06, 723fcf5ef2aSThomas Huth OPC2_32_BO_LD_A_PREINC = 0x16, 724fcf5ef2aSThomas Huth OPC2_32_BO_LD_B_SHORTOFF = 0x20, 725fcf5ef2aSThomas Huth OPC2_32_BO_LD_B_POSTINC = 0x00, 726fcf5ef2aSThomas Huth OPC2_32_BO_LD_B_PREINC = 0x10, 727fcf5ef2aSThomas Huth OPC2_32_BO_LD_BU_SHORTOFF = 0x21, 728fcf5ef2aSThomas Huth OPC2_32_BO_LD_BU_POSTINC = 0x01, 729fcf5ef2aSThomas Huth OPC2_32_BO_LD_BU_PREINC = 0x11, 730fcf5ef2aSThomas Huth OPC2_32_BO_LD_D_SHORTOFF = 0x25, 731fcf5ef2aSThomas Huth OPC2_32_BO_LD_D_POSTINC = 0x05, 732fcf5ef2aSThomas Huth OPC2_32_BO_LD_D_PREINC = 0x15, 733fcf5ef2aSThomas Huth OPC2_32_BO_LD_DA_SHORTOFF = 0x27, 734fcf5ef2aSThomas Huth OPC2_32_BO_LD_DA_POSTINC = 0x07, 735fcf5ef2aSThomas Huth OPC2_32_BO_LD_DA_PREINC = 0x17, 736fcf5ef2aSThomas Huth OPC2_32_BO_LD_H_SHORTOFF = 0x22, 737fcf5ef2aSThomas Huth OPC2_32_BO_LD_H_POSTINC = 0x02, 738fcf5ef2aSThomas Huth OPC2_32_BO_LD_H_PREINC = 0x12, 739fcf5ef2aSThomas Huth OPC2_32_BO_LD_HU_SHORTOFF = 0x23, 740fcf5ef2aSThomas Huth OPC2_32_BO_LD_HU_POSTINC = 0x03, 741fcf5ef2aSThomas Huth OPC2_32_BO_LD_HU_PREINC = 0x13, 742fcf5ef2aSThomas Huth OPC2_32_BO_LD_Q_SHORTOFF = 0x28, 743fcf5ef2aSThomas Huth OPC2_32_BO_LD_Q_POSTINC = 0x08, 744fcf5ef2aSThomas Huth OPC2_32_BO_LD_Q_PREINC = 0x18, 745fcf5ef2aSThomas Huth OPC2_32_BO_LD_W_SHORTOFF = 0x24, 746fcf5ef2aSThomas Huth OPC2_32_BO_LD_W_POSTINC = 0x04, 747fcf5ef2aSThomas Huth OPC2_32_BO_LD_W_PREINC = 0x14, 748fcf5ef2aSThomas Huth }; 749fcf5ef2aSThomas Huth /* OPCM_32_BO_ADDRMODE_LD_BITREVERSE_CIRCULAR */ 750fcf5ef2aSThomas Huth enum { 751fcf5ef2aSThomas Huth OPC2_32_BO_LD_A_BR = 0x06, 752fcf5ef2aSThomas Huth OPC2_32_BO_LD_A_CIRC = 0x16, 753fcf5ef2aSThomas Huth OPC2_32_BO_LD_B_BR = 0x00, 754fcf5ef2aSThomas Huth OPC2_32_BO_LD_B_CIRC = 0x10, 755fcf5ef2aSThomas Huth OPC2_32_BO_LD_BU_BR = 0x01, 756fcf5ef2aSThomas Huth OPC2_32_BO_LD_BU_CIRC = 0x11, 757fcf5ef2aSThomas Huth OPC2_32_BO_LD_D_BR = 0x05, 758fcf5ef2aSThomas Huth OPC2_32_BO_LD_D_CIRC = 0x15, 759fcf5ef2aSThomas Huth OPC2_32_BO_LD_DA_BR = 0x07, 760fcf5ef2aSThomas Huth OPC2_32_BO_LD_DA_CIRC = 0x17, 761fcf5ef2aSThomas Huth OPC2_32_BO_LD_H_BR = 0x02, 762fcf5ef2aSThomas Huth OPC2_32_BO_LD_H_CIRC = 0x12, 763fcf5ef2aSThomas Huth OPC2_32_BO_LD_HU_BR = 0x03, 764fcf5ef2aSThomas Huth OPC2_32_BO_LD_HU_CIRC = 0x13, 765fcf5ef2aSThomas Huth OPC2_32_BO_LD_Q_BR = 0x08, 766fcf5ef2aSThomas Huth OPC2_32_BO_LD_Q_CIRC = 0x18, 767fcf5ef2aSThomas Huth OPC2_32_BO_LD_W_BR = 0x04, 768fcf5ef2aSThomas Huth OPC2_32_BO_LD_W_CIRC = 0x14, 769fcf5ef2aSThomas Huth }; 770fcf5ef2aSThomas Huth /* OPCM_32_BO_ADDRMODE_STCTX_POST_PRE_BASE */ 771fcf5ef2aSThomas Huth enum { 772fcf5ef2aSThomas Huth OPC2_32_BO_LDLCX_SHORTOFF = 0x24, 773fcf5ef2aSThomas Huth OPC2_32_BO_LDMST_SHORTOFF = 0x21, 774fcf5ef2aSThomas Huth OPC2_32_BO_LDMST_POSTINC = 0x01, 775fcf5ef2aSThomas Huth OPC2_32_BO_LDMST_PREINC = 0x11, 776fcf5ef2aSThomas Huth OPC2_32_BO_LDUCX_SHORTOFF = 0x25, 777fcf5ef2aSThomas Huth OPC2_32_BO_LEA_SHORTOFF = 0x28, 778fcf5ef2aSThomas Huth OPC2_32_BO_STLCX_SHORTOFF = 0x26, 779fcf5ef2aSThomas Huth OPC2_32_BO_STUCX_SHORTOFF = 0x27, 780fcf5ef2aSThomas Huth OPC2_32_BO_SWAP_W_SHORTOFF = 0x20, 781fcf5ef2aSThomas Huth OPC2_32_BO_SWAP_W_POSTINC = 0x00, 782fcf5ef2aSThomas Huth OPC2_32_BO_SWAP_W_PREINC = 0x10, 783fcf5ef2aSThomas Huth OPC2_32_BO_CMPSWAP_W_SHORTOFF = 0x23, 784fcf5ef2aSThomas Huth OPC2_32_BO_CMPSWAP_W_POSTINC = 0x03, 785fcf5ef2aSThomas Huth OPC2_32_BO_CMPSWAP_W_PREINC = 0x13, 786fcf5ef2aSThomas Huth OPC2_32_BO_SWAPMSK_W_SHORTOFF = 0x22, 787fcf5ef2aSThomas Huth OPC2_32_BO_SWAPMSK_W_POSTINC = 0x02, 788fcf5ef2aSThomas Huth OPC2_32_BO_SWAPMSK_W_PREINC = 0x12, 789fcf5ef2aSThomas Huth }; 790fcf5ef2aSThomas Huth /*OPCM_32_BO_ADDRMODE_LDMST_BITREVERSE_CIRCULAR */ 791fcf5ef2aSThomas Huth enum { 792fcf5ef2aSThomas Huth OPC2_32_BO_LDMST_BR = 0x01, 793fcf5ef2aSThomas Huth OPC2_32_BO_LDMST_CIRC = 0x11, 794fcf5ef2aSThomas Huth OPC2_32_BO_SWAP_W_BR = 0x00, 795fcf5ef2aSThomas Huth OPC2_32_BO_SWAP_W_CIRC = 0x10, 796fcf5ef2aSThomas Huth OPC2_32_BO_CMPSWAP_W_BR = 0x03, 797fcf5ef2aSThomas Huth OPC2_32_BO_CMPSWAP_W_CIRC = 0x13, 798fcf5ef2aSThomas Huth OPC2_32_BO_SWAPMSK_W_BR = 0x02, 799fcf5ef2aSThomas Huth OPC2_32_BO_SWAPMSK_W_CIRC = 0x12, 800fcf5ef2aSThomas Huth }; 801fcf5ef2aSThomas Huth /* 802fcf5ef2aSThomas Huth * BRC Format 803fcf5ef2aSThomas Huth */ 804fcf5ef2aSThomas Huth /*OPCM_32_BRC_EQ_NEQ */ 805fcf5ef2aSThomas Huth enum { 806fcf5ef2aSThomas Huth OPC2_32_BRC_JEQ = 0x00, 807fcf5ef2aSThomas Huth OPC2_32_BRC_JNE = 0x01, 808fcf5ef2aSThomas Huth }; 809fcf5ef2aSThomas Huth /* OPCM_32_BRC_GE */ 810fcf5ef2aSThomas Huth enum { 811fcf5ef2aSThomas Huth OP2_32_BRC_JGE = 0x00, 812fcf5ef2aSThomas Huth OPC_32_BRC_JGE_U = 0x01, 813fcf5ef2aSThomas Huth }; 814fcf5ef2aSThomas Huth /* OPCM_32_BRC_JLT */ 815fcf5ef2aSThomas Huth enum { 816fcf5ef2aSThomas Huth OPC2_32_BRC_JLT = 0x00, 817fcf5ef2aSThomas Huth OPC2_32_BRC_JLT_U = 0x01, 818fcf5ef2aSThomas Huth }; 819fcf5ef2aSThomas Huth /* OPCM_32_BRC_JNE */ 820fcf5ef2aSThomas Huth enum { 821fcf5ef2aSThomas Huth OPC2_32_BRC_JNED = 0x01, 822fcf5ef2aSThomas Huth OPC2_32_BRC_JNEI = 0x00, 823fcf5ef2aSThomas Huth }; 824fcf5ef2aSThomas Huth /* 825fcf5ef2aSThomas Huth * BRN Format 826fcf5ef2aSThomas Huth */ 827fcf5ef2aSThomas Huth /* OPCM_32_BRN_JTT */ 828fcf5ef2aSThomas Huth enum { 829fcf5ef2aSThomas Huth OPC2_32_BRN_JNZ_T = 0x01, 830fcf5ef2aSThomas Huth OPC2_32_BRN_JZ_T = 0x00, 831fcf5ef2aSThomas Huth }; 832fcf5ef2aSThomas Huth /* 833fcf5ef2aSThomas Huth * BRR Format 834fcf5ef2aSThomas Huth */ 835fcf5ef2aSThomas Huth /* OPCM_32_BRR_EQ_NEQ */ 836fcf5ef2aSThomas Huth enum { 837fcf5ef2aSThomas Huth OPC2_32_BRR_JEQ = 0x00, 838fcf5ef2aSThomas Huth OPC2_32_BRR_JNE = 0x01, 839fcf5ef2aSThomas Huth }; 840fcf5ef2aSThomas Huth /* OPCM_32_BRR_ADDR_EQ_NEQ */ 841fcf5ef2aSThomas Huth enum { 842fcf5ef2aSThomas Huth OPC2_32_BRR_JEQ_A = 0x00, 843fcf5ef2aSThomas Huth OPC2_32_BRR_JNE_A = 0x01, 844fcf5ef2aSThomas Huth }; 845fcf5ef2aSThomas Huth /*OPCM_32_BRR_GE */ 846fcf5ef2aSThomas Huth enum { 847fcf5ef2aSThomas Huth OPC2_32_BRR_JGE = 0x00, 848fcf5ef2aSThomas Huth OPC2_32_BRR_JGE_U = 0x01, 849fcf5ef2aSThomas Huth }; 850fcf5ef2aSThomas Huth /* OPCM_32_BRR_JLT */ 851fcf5ef2aSThomas Huth enum { 852fcf5ef2aSThomas Huth OPC2_32_BRR_JLT = 0x00, 853fcf5ef2aSThomas Huth OPC2_32_BRR_JLT_U = 0x01, 854fcf5ef2aSThomas Huth }; 855fcf5ef2aSThomas Huth /* OPCM_32_BRR_JNE */ 856fcf5ef2aSThomas Huth enum { 857fcf5ef2aSThomas Huth OPC2_32_BRR_JNED = 0x01, 858fcf5ef2aSThomas Huth OPC2_32_BRR_JNEI = 0x00, 859fcf5ef2aSThomas Huth }; 860fcf5ef2aSThomas Huth /* OPCM_32_BRR_JNZ */ 861fcf5ef2aSThomas Huth enum { 862fcf5ef2aSThomas Huth OPC2_32_BRR_JNZ_A = 0x01, 863fcf5ef2aSThomas Huth OPC2_32_BRR_JZ_A = 0x00, 864fcf5ef2aSThomas Huth }; 865fcf5ef2aSThomas Huth /* OPCM_32_BRR_LOOP */ 866fcf5ef2aSThomas Huth enum { 867fcf5ef2aSThomas Huth OPC2_32_BRR_LOOP = 0x00, 868fcf5ef2aSThomas Huth OPC2_32_BRR_LOOPU = 0x01, 869fcf5ef2aSThomas Huth }; 870fcf5ef2aSThomas Huth /* 871fcf5ef2aSThomas Huth * RC Format 872fcf5ef2aSThomas Huth */ 873fcf5ef2aSThomas Huth /* OPCM_32_RC_LOGICAL_SHIFT */ 874fcf5ef2aSThomas Huth enum { 875fcf5ef2aSThomas Huth OPC2_32_RC_AND = 0x08, 876fcf5ef2aSThomas Huth OPC2_32_RC_ANDN = 0x0e, 877fcf5ef2aSThomas Huth OPC2_32_RC_NAND = 0x09, 878fcf5ef2aSThomas Huth OPC2_32_RC_NOR = 0x0b, 879fcf5ef2aSThomas Huth OPC2_32_RC_OR = 0x0a, 880fcf5ef2aSThomas Huth OPC2_32_RC_ORN = 0x0f, 881fcf5ef2aSThomas Huth OPC2_32_RC_SH = 0x00, 882fcf5ef2aSThomas Huth OPC2_32_RC_SH_H = 0x40, 883fcf5ef2aSThomas Huth OPC2_32_RC_SHA = 0x01, 884fcf5ef2aSThomas Huth OPC2_32_RC_SHA_H = 0x41, 885fcf5ef2aSThomas Huth OPC2_32_RC_SHAS = 0x02, 886fcf5ef2aSThomas Huth OPC2_32_RC_XNOR = 0x0d, 887fcf5ef2aSThomas Huth OPC2_32_RC_XOR = 0x0c, 8884e3377bbSBastian Koppelmann OPC2_32_RC_SHUFFLE = 0x07, /* v1.6.2 only */ 889fcf5ef2aSThomas Huth }; 890fcf5ef2aSThomas Huth /* OPCM_32_RC_ACCUMULATOR */ 891fcf5ef2aSThomas Huth enum { 892fcf5ef2aSThomas Huth OPC2_32_RC_ABSDIF = 0x0e, 893fcf5ef2aSThomas Huth OPC2_32_RC_ABSDIFS = 0x0f, 894fcf5ef2aSThomas Huth OPC2_32_RC_ADD = 0x00, 895fcf5ef2aSThomas Huth OPC2_32_RC_ADDC = 0x05, 896fcf5ef2aSThomas Huth OPC2_32_RC_ADDS = 0x02, 897fcf5ef2aSThomas Huth OPC2_32_RC_ADDS_U = 0x03, 898fcf5ef2aSThomas Huth OPC2_32_RC_ADDX = 0x04, 899fcf5ef2aSThomas Huth OPC2_32_RC_AND_EQ = 0x20, 900fcf5ef2aSThomas Huth OPC2_32_RC_AND_GE = 0x24, 901fcf5ef2aSThomas Huth OPC2_32_RC_AND_GE_U = 0x25, 902fcf5ef2aSThomas Huth OPC2_32_RC_AND_LT = 0x22, 903fcf5ef2aSThomas Huth OPC2_32_RC_AND_LT_U = 0x23, 904fcf5ef2aSThomas Huth OPC2_32_RC_AND_NE = 0x21, 905fcf5ef2aSThomas Huth OPC2_32_RC_EQ = 0x10, 906fcf5ef2aSThomas Huth OPC2_32_RC_EQANY_B = 0x56, 907fcf5ef2aSThomas Huth OPC2_32_RC_EQANY_H = 0x76, 908fcf5ef2aSThomas Huth OPC2_32_RC_GE = 0x14, 909fcf5ef2aSThomas Huth OPC2_32_RC_GE_U = 0x15, 910fcf5ef2aSThomas Huth OPC2_32_RC_LT = 0x12, 911fcf5ef2aSThomas Huth OPC2_32_RC_LT_U = 0x13, 912fcf5ef2aSThomas Huth OPC2_32_RC_MAX = 0x1a, 913fcf5ef2aSThomas Huth OPC2_32_RC_MAX_U = 0x1b, 914fcf5ef2aSThomas Huth OPC2_32_RC_MIN = 0x18, 915fcf5ef2aSThomas Huth OPC2_32_RC_MIN_U = 0x19, 916fcf5ef2aSThomas Huth OPC2_32_RC_NE = 0x11, 917fcf5ef2aSThomas Huth OPC2_32_RC_OR_EQ = 0x27, 918fcf5ef2aSThomas Huth OPC2_32_RC_OR_GE = 0x2b, 919fcf5ef2aSThomas Huth OPC2_32_RC_OR_GE_U = 0x2c, 920fcf5ef2aSThomas Huth OPC2_32_RC_OR_LT = 0x29, 921fcf5ef2aSThomas Huth OPC2_32_RC_OR_LT_U = 0x2a, 922fcf5ef2aSThomas Huth OPC2_32_RC_OR_NE = 0x28, 923fcf5ef2aSThomas Huth OPC2_32_RC_RSUB = 0x08, 924fcf5ef2aSThomas Huth OPC2_32_RC_RSUBS = 0x0a, 925fcf5ef2aSThomas Huth OPC2_32_RC_RSUBS_U = 0x0b, 926fcf5ef2aSThomas Huth OPC2_32_RC_SH_EQ = 0x37, 927fcf5ef2aSThomas Huth OPC2_32_RC_SH_GE = 0x3b, 928fcf5ef2aSThomas Huth OPC2_32_RC_SH_GE_U = 0x3c, 929fcf5ef2aSThomas Huth OPC2_32_RC_SH_LT = 0x39, 930fcf5ef2aSThomas Huth OPC2_32_RC_SH_LT_U = 0x3a, 931fcf5ef2aSThomas Huth OPC2_32_RC_SH_NE = 0x38, 932fcf5ef2aSThomas Huth OPC2_32_RC_XOR_EQ = 0x2f, 933fcf5ef2aSThomas Huth OPC2_32_RC_XOR_GE = 0x33, 934fcf5ef2aSThomas Huth OPC2_32_RC_XOR_GE_U = 0x34, 935fcf5ef2aSThomas Huth OPC2_32_RC_XOR_LT = 0x31, 936fcf5ef2aSThomas Huth OPC2_32_RC_XOR_LT_U = 0x32, 937fcf5ef2aSThomas Huth OPC2_32_RC_XOR_NE = 0x30, 938fcf5ef2aSThomas Huth }; 939fcf5ef2aSThomas Huth /* OPCM_32_RC_SERVICEROUTINE */ 940fcf5ef2aSThomas Huth enum { 941fcf5ef2aSThomas Huth OPC2_32_RC_BISR = 0x00, 942fcf5ef2aSThomas Huth OPC2_32_RC_SYSCALL = 0x04, 943fcf5ef2aSThomas Huth }; 944fcf5ef2aSThomas Huth /* OPCM_32_RC_MUL */ 945fcf5ef2aSThomas Huth enum { 946fcf5ef2aSThomas Huth OPC2_32_RC_MUL_32 = 0x01, 947fcf5ef2aSThomas Huth OPC2_32_RC_MUL_64 = 0x03, 948fcf5ef2aSThomas Huth OPC2_32_RC_MULS_32 = 0x05, 949fcf5ef2aSThomas Huth OPC2_32_RC_MUL_U_64 = 0x02, 950fcf5ef2aSThomas Huth OPC2_32_RC_MULS_U_32 = 0x04, 951fcf5ef2aSThomas Huth }; 952fcf5ef2aSThomas Huth /* 953fcf5ef2aSThomas Huth * RCPW Format 954fcf5ef2aSThomas Huth */ 955fcf5ef2aSThomas Huth /* OPCM_32_RCPW_MASK_INSERT */ 956fcf5ef2aSThomas Huth enum { 957fcf5ef2aSThomas Huth OPC2_32_RCPW_IMASK = 0x01, 958fcf5ef2aSThomas Huth OPC2_32_RCPW_INSERT = 0x00, 959fcf5ef2aSThomas Huth }; 960fcf5ef2aSThomas Huth /* 961fcf5ef2aSThomas Huth * RCR Format 962fcf5ef2aSThomas Huth */ 963fcf5ef2aSThomas Huth /* OPCM_32_RCR_COND_SELECT */ 964fcf5ef2aSThomas Huth enum { 965fcf5ef2aSThomas Huth OPC2_32_RCR_CADD = 0x00, 966fcf5ef2aSThomas Huth OPC2_32_RCR_CADDN = 0x01, 967fcf5ef2aSThomas Huth OPC2_32_RCR_SEL = 0x04, 968fcf5ef2aSThomas Huth OPC2_32_RCR_SELN = 0x05, 969fcf5ef2aSThomas Huth }; 970fcf5ef2aSThomas Huth /* OPCM_32_RCR_MADD */ 971fcf5ef2aSThomas Huth enum { 972fcf5ef2aSThomas Huth OPC2_32_RCR_MADD_32 = 0x01, 973fcf5ef2aSThomas Huth OPC2_32_RCR_MADD_64 = 0x03, 974fcf5ef2aSThomas Huth OPC2_32_RCR_MADDS_32 = 0x05, 975fcf5ef2aSThomas Huth OPC2_32_RCR_MADDS_64 = 0x07, 976fcf5ef2aSThomas Huth OPC2_32_RCR_MADD_U_64 = 0x02, 977fcf5ef2aSThomas Huth OPC2_32_RCR_MADDS_U_32 = 0x04, 978fcf5ef2aSThomas Huth OPC2_32_RCR_MADDS_U_64 = 0x06, 979fcf5ef2aSThomas Huth }; 980fcf5ef2aSThomas Huth /* OPCM_32_RCR_MSUB */ 981fcf5ef2aSThomas Huth enum { 982fcf5ef2aSThomas Huth OPC2_32_RCR_MSUB_32 = 0x01, 983fcf5ef2aSThomas Huth OPC2_32_RCR_MSUB_64 = 0x03, 984fcf5ef2aSThomas Huth OPC2_32_RCR_MSUBS_32 = 0x05, 985fcf5ef2aSThomas Huth OPC2_32_RCR_MSUBS_64 = 0x07, 986fcf5ef2aSThomas Huth OPC2_32_RCR_MSUB_U_64 = 0x02, 987fcf5ef2aSThomas Huth OPC2_32_RCR_MSUBS_U_32 = 0x04, 988fcf5ef2aSThomas Huth OPC2_32_RCR_MSUBS_U_64 = 0x06, 989fcf5ef2aSThomas Huth }; 990fcf5ef2aSThomas Huth /* 991fcf5ef2aSThomas Huth * RCRW Format 992fcf5ef2aSThomas Huth */ 993fcf5ef2aSThomas Huth /* OPCM_32_RCRW_MASK_INSERT */ 994fcf5ef2aSThomas Huth enum { 995fcf5ef2aSThomas Huth OPC2_32_RCRW_IMASK = 0x01, 996fcf5ef2aSThomas Huth OPC2_32_RCRW_INSERT = 0x00, 997fcf5ef2aSThomas Huth }; 998fcf5ef2aSThomas Huth 999fcf5ef2aSThomas Huth /* 1000fcf5ef2aSThomas Huth * RR Format 1001fcf5ef2aSThomas Huth */ 1002fcf5ef2aSThomas Huth /* OPCM_32_RR_LOGICAL_SHIFT */ 1003fcf5ef2aSThomas Huth enum { 1004fcf5ef2aSThomas Huth OPC2_32_RR_AND = 0x08, 1005fcf5ef2aSThomas Huth OPC2_32_RR_ANDN = 0x0e, 1006fcf5ef2aSThomas Huth OPC2_32_RR_CLO = 0x1c, 1007fcf5ef2aSThomas Huth OPC2_32_RR_CLO_H = 0x7d, 1008fcf5ef2aSThomas Huth OPC2_32_RR_CLS = 0x1d, 1009fcf5ef2aSThomas Huth OPC2_32_RR_CLS_H = 0x7e, 1010fcf5ef2aSThomas Huth OPC2_32_RR_CLZ = 0x1b, 1011fcf5ef2aSThomas Huth OPC2_32_RR_CLZ_H = 0x7c, 1012fcf5ef2aSThomas Huth OPC2_32_RR_NAND = 0x09, 1013fcf5ef2aSThomas Huth OPC2_32_RR_NOR = 0x0b, 1014fcf5ef2aSThomas Huth OPC2_32_RR_OR = 0x0a, 1015fcf5ef2aSThomas Huth OPC2_32_RR_ORN = 0x0f, 1016fcf5ef2aSThomas Huth OPC2_32_RR_SH = 0x00, 1017fcf5ef2aSThomas Huth OPC2_32_RR_SH_H = 0x40, 1018fcf5ef2aSThomas Huth OPC2_32_RR_SHA = 0x01, 1019fcf5ef2aSThomas Huth OPC2_32_RR_SHA_H = 0x41, 1020fcf5ef2aSThomas Huth OPC2_32_RR_SHAS = 0x02, 1021fcf5ef2aSThomas Huth OPC2_32_RR_XNOR = 0x0d, 1022fcf5ef2aSThomas Huth OPC2_32_RR_XOR = 0x0c, 1023fcf5ef2aSThomas Huth }; 1024fcf5ef2aSThomas Huth /* OPCM_32_RR_ACCUMULATOR */ 1025fcf5ef2aSThomas Huth enum { 1026fcf5ef2aSThomas Huth OPC2_32_RR_ABS = 0x1c, 1027fcf5ef2aSThomas Huth OPC2_32_RR_ABS_B = 0x5c, 1028fcf5ef2aSThomas Huth OPC2_32_RR_ABS_H = 0x7c, 1029fcf5ef2aSThomas Huth OPC2_32_RR_ABSDIF = 0x0e, 1030fcf5ef2aSThomas Huth OPC2_32_RR_ABSDIF_B = 0x4e, 1031fcf5ef2aSThomas Huth OPC2_32_RR_ABSDIF_H = 0x6e, 1032fcf5ef2aSThomas Huth OPC2_32_RR_ABSDIFS = 0x0f, 1033fcf5ef2aSThomas Huth OPC2_32_RR_ABSDIFS_H = 0x6f, 1034fcf5ef2aSThomas Huth OPC2_32_RR_ABSS = 0x1d, 1035fcf5ef2aSThomas Huth OPC2_32_RR_ABSS_H = 0x7d, 1036fcf5ef2aSThomas Huth OPC2_32_RR_ADD = 0x00, 1037fcf5ef2aSThomas Huth OPC2_32_RR_ADD_B = 0x40, 1038fcf5ef2aSThomas Huth OPC2_32_RR_ADD_H = 0x60, 1039fcf5ef2aSThomas Huth OPC2_32_RR_ADDC = 0x05, 1040fcf5ef2aSThomas Huth OPC2_32_RR_ADDS = 0x02, 1041fcf5ef2aSThomas Huth OPC2_32_RR_ADDS_H = 0x62, 1042fcf5ef2aSThomas Huth OPC2_32_RR_ADDS_HU = 0x63, 1043fcf5ef2aSThomas Huth OPC2_32_RR_ADDS_U = 0x03, 1044fcf5ef2aSThomas Huth OPC2_32_RR_ADDX = 0x04, 1045fcf5ef2aSThomas Huth OPC2_32_RR_AND_EQ = 0x20, 1046fcf5ef2aSThomas Huth OPC2_32_RR_AND_GE = 0x24, 1047fcf5ef2aSThomas Huth OPC2_32_RR_AND_GE_U = 0x25, 1048fcf5ef2aSThomas Huth OPC2_32_RR_AND_LT = 0x22, 1049fcf5ef2aSThomas Huth OPC2_32_RR_AND_LT_U = 0x23, 1050fcf5ef2aSThomas Huth OPC2_32_RR_AND_NE = 0x21, 1051fcf5ef2aSThomas Huth OPC2_32_RR_EQ = 0x10, 1052fcf5ef2aSThomas Huth OPC2_32_RR_EQ_B = 0x50, 1053fcf5ef2aSThomas Huth OPC2_32_RR_EQ_H = 0x70, 1054fcf5ef2aSThomas Huth OPC2_32_RR_EQ_W = 0x90, 1055fcf5ef2aSThomas Huth OPC2_32_RR_EQANY_B = 0x56, 1056fcf5ef2aSThomas Huth OPC2_32_RR_EQANY_H = 0x76, 1057fcf5ef2aSThomas Huth OPC2_32_RR_GE = 0x14, 1058fcf5ef2aSThomas Huth OPC2_32_RR_GE_U = 0x15, 1059fcf5ef2aSThomas Huth OPC2_32_RR_LT = 0x12, 1060fcf5ef2aSThomas Huth OPC2_32_RR_LT_U = 0x13, 1061fcf5ef2aSThomas Huth OPC2_32_RR_LT_B = 0x52, 1062fcf5ef2aSThomas Huth OPC2_32_RR_LT_BU = 0x53, 1063fcf5ef2aSThomas Huth OPC2_32_RR_LT_H = 0x72, 1064fcf5ef2aSThomas Huth OPC2_32_RR_LT_HU = 0x73, 1065fcf5ef2aSThomas Huth OPC2_32_RR_LT_W = 0x92, 1066fcf5ef2aSThomas Huth OPC2_32_RR_LT_WU = 0x93, 1067fcf5ef2aSThomas Huth OPC2_32_RR_MAX = 0x1a, 1068fcf5ef2aSThomas Huth OPC2_32_RR_MAX_U = 0x1b, 1069fcf5ef2aSThomas Huth OPC2_32_RR_MAX_B = 0x5a, 1070fcf5ef2aSThomas Huth OPC2_32_RR_MAX_BU = 0x5b, 1071fcf5ef2aSThomas Huth OPC2_32_RR_MAX_H = 0x7a, 1072fcf5ef2aSThomas Huth OPC2_32_RR_MAX_HU = 0x7b, 1073fcf5ef2aSThomas Huth OPC2_32_RR_MIN = 0x18, 1074fcf5ef2aSThomas Huth OPC2_32_RR_MIN_U = 0x19, 1075fcf5ef2aSThomas Huth OPC2_32_RR_MIN_B = 0x58, 1076fcf5ef2aSThomas Huth OPC2_32_RR_MIN_BU = 0x59, 1077fcf5ef2aSThomas Huth OPC2_32_RR_MIN_H = 0x78, 1078fcf5ef2aSThomas Huth OPC2_32_RR_MIN_HU = 0x79, 1079fcf5ef2aSThomas Huth OPC2_32_RR_MOV = 0x1f, 1080defda2d4SDavid Brenken OPC2_32_RR_MOVS_64 = 0x80, 1081550929ddSPeer Adelt OPC2_32_RR_MOV_64 = 0x81, 1082fcf5ef2aSThomas Huth OPC2_32_RR_NE = 0x11, 1083fcf5ef2aSThomas Huth OPC2_32_RR_OR_EQ = 0x27, 1084fcf5ef2aSThomas Huth OPC2_32_RR_OR_GE = 0x2b, 1085fcf5ef2aSThomas Huth OPC2_32_RR_OR_GE_U = 0x2c, 1086fcf5ef2aSThomas Huth OPC2_32_RR_OR_LT = 0x29, 1087fcf5ef2aSThomas Huth OPC2_32_RR_OR_LT_U = 0x2a, 1088fcf5ef2aSThomas Huth OPC2_32_RR_OR_NE = 0x28, 1089fcf5ef2aSThomas Huth OPC2_32_RR_SAT_B = 0x5e, 1090fcf5ef2aSThomas Huth OPC2_32_RR_SAT_BU = 0x5f, 1091fcf5ef2aSThomas Huth OPC2_32_RR_SAT_H = 0x7e, 1092fcf5ef2aSThomas Huth OPC2_32_RR_SAT_HU = 0x7f, 1093fcf5ef2aSThomas Huth OPC2_32_RR_SH_EQ = 0x37, 1094fcf5ef2aSThomas Huth OPC2_32_RR_SH_GE = 0x3b, 1095fcf5ef2aSThomas Huth OPC2_32_RR_SH_GE_U = 0x3c, 1096fcf5ef2aSThomas Huth OPC2_32_RR_SH_LT = 0x39, 1097fcf5ef2aSThomas Huth OPC2_32_RR_SH_LT_U = 0x3a, 1098fcf5ef2aSThomas Huth OPC2_32_RR_SH_NE = 0x38, 1099fcf5ef2aSThomas Huth OPC2_32_RR_SUB = 0x08, 1100fcf5ef2aSThomas Huth OPC2_32_RR_SUB_B = 0x48, 1101fcf5ef2aSThomas Huth OPC2_32_RR_SUB_H = 0x68, 1102fcf5ef2aSThomas Huth OPC2_32_RR_SUBC = 0x0d, 1103fcf5ef2aSThomas Huth OPC2_32_RR_SUBS = 0x0a, 1104fcf5ef2aSThomas Huth OPC2_32_RR_SUBS_U = 0x0b, 1105fcf5ef2aSThomas Huth OPC2_32_RR_SUBS_H = 0x6a, 1106fcf5ef2aSThomas Huth OPC2_32_RR_SUBS_HU = 0x6b, 1107fcf5ef2aSThomas Huth OPC2_32_RR_SUBX = 0x0c, 1108fcf5ef2aSThomas Huth OPC2_32_RR_XOR_EQ = 0x2f, 1109fcf5ef2aSThomas Huth OPC2_32_RR_XOR_GE = 0x33, 1110fcf5ef2aSThomas Huth OPC2_32_RR_XOR_GE_U = 0x34, 1111fcf5ef2aSThomas Huth OPC2_32_RR_XOR_LT = 0x31, 1112fcf5ef2aSThomas Huth OPC2_32_RR_XOR_LT_U = 0x32, 1113fcf5ef2aSThomas Huth OPC2_32_RR_XOR_NE = 0x30, 1114fcf5ef2aSThomas Huth }; 1115fcf5ef2aSThomas Huth /* OPCM_32_RR_ADDRESS */ 1116fcf5ef2aSThomas Huth enum { 1117fcf5ef2aSThomas Huth OPC2_32_RR_ADD_A = 0x01, 1118fcf5ef2aSThomas Huth OPC2_32_RR_ADDSC_A = 0x60, 1119fcf5ef2aSThomas Huth OPC2_32_RR_ADDSC_AT = 0x62, 1120fcf5ef2aSThomas Huth OPC2_32_RR_EQ_A = 0x40, 1121fcf5ef2aSThomas Huth OPC2_32_RR_EQZ = 0x48, 1122fcf5ef2aSThomas Huth OPC2_32_RR_GE_A = 0x43, 1123fcf5ef2aSThomas Huth OPC2_32_RR_LT_A = 0x42, 1124fcf5ef2aSThomas Huth OPC2_32_RR_MOV_A = 0x63, 1125fcf5ef2aSThomas Huth OPC2_32_RR_MOV_AA = 0x00, 1126fcf5ef2aSThomas Huth OPC2_32_RR_MOV_D = 0x4c, 1127fcf5ef2aSThomas Huth OPC2_32_RR_NE_A = 0x41, 1128fcf5ef2aSThomas Huth OPC2_32_RR_NEZ_A = 0x49, 1129fcf5ef2aSThomas Huth OPC2_32_RR_SUB_A = 0x02, 1130fcf5ef2aSThomas Huth }; 1131fcf5ef2aSThomas Huth /* OPCM_32_RR_FLOAT */ 1132fcf5ef2aSThomas Huth enum { 1133fcf5ef2aSThomas Huth OPC2_32_RR_BMERGE = 0x01, 1134fcf5ef2aSThomas Huth OPC2_32_RR_BSPLIT = 0x09, 1135fcf5ef2aSThomas Huth OPC2_32_RR_DVINIT_B = 0x5a, 1136fcf5ef2aSThomas Huth OPC2_32_RR_DVINIT_BU = 0x4a, 1137fcf5ef2aSThomas Huth OPC2_32_RR_DVINIT_H = 0x3a, 1138fcf5ef2aSThomas Huth OPC2_32_RR_DVINIT_HU = 0x2a, 1139fcf5ef2aSThomas Huth OPC2_32_RR_DVINIT = 0x1a, 1140fcf5ef2aSThomas Huth OPC2_32_RR_DVINIT_U = 0x0a, 1141fcf5ef2aSThomas Huth OPC2_32_RR_PARITY = 0x02, 1142fcf5ef2aSThomas Huth OPC2_32_RR_UNPACK = 0x08, 1143dc0b4368SBastian Koppelmann OPC2_32_RR_CRC32 = 0x03, /* CRC32B.W in 1.6.2 */ 11440eaafe33SBastian Koppelmann OPC2_32_RR_CRC32_B = 0x06, /* 1.6.2 only */ 1145dc0b4368SBastian Koppelmann OPC2_32_RR_CRC32L_W = 0x07, /* 1.6.2 only */ 1146fd6f446aSBastian Koppelmann OPC2_32_RR_POPCNT_W = 0x22, /* 1.6.2 only */ 1147fcf5ef2aSThomas Huth OPC2_32_RR_DIV = 0x20, 1148fcf5ef2aSThomas Huth OPC2_32_RR_DIV_U = 0x21, 1149fcf5ef2aSThomas Huth OPC2_32_RR_MUL_F = 0x04, 1150fcf5ef2aSThomas Huth OPC2_32_RR_DIV_F = 0x05, 1151fcf5ef2aSThomas Huth OPC2_32_RR_FTOI = 0x10, 1152fcf5ef2aSThomas Huth OPC2_32_RR_ITOF = 0x14, 1153fcf5ef2aSThomas Huth OPC2_32_RR_CMP_F = 0x00, 1154fcf5ef2aSThomas Huth OPC2_32_RR_FTOIZ = 0x13, 1155815061b9SBastian Koppelmann OPC2_32_RR_FTOHP = 0x25, /* 1.6.2 only */ 1156*5e0e06d9SBastian Koppelmann OPC2_32_RR_HPTOF = 0x24, /* 1.6.2 only */ 1157fcf5ef2aSThomas Huth OPC2_32_RR_FTOQ31 = 0x11, 1158fcf5ef2aSThomas Huth OPC2_32_RR_FTOQ31Z = 0x18, 1159fcf5ef2aSThomas Huth OPC2_32_RR_FTOU = 0x12, 1160fcf5ef2aSThomas Huth OPC2_32_RR_FTOUZ = 0x17, 1161fcf5ef2aSThomas Huth OPC2_32_RR_Q31TOF = 0x15, 1162fcf5ef2aSThomas Huth OPC2_32_RR_QSEED_F = 0x19, 1163fcf5ef2aSThomas Huth OPC2_32_RR_UPDFL = 0x0c, 1164fcf5ef2aSThomas Huth OPC2_32_RR_UTOF = 0x16, 1165fcf5ef2aSThomas Huth }; 1166fcf5ef2aSThomas Huth /* OPCM_32_RR_IDIRECT */ 1167fcf5ef2aSThomas Huth enum { 1168fcf5ef2aSThomas Huth OPC2_32_RR_JI = 0x03, 1169fcf5ef2aSThomas Huth OPC2_32_RR_JLI = 0x02, 1170fcf5ef2aSThomas Huth OPC2_32_RR_CALLI = 0x00, 1171fcf5ef2aSThomas Huth OPC2_32_RR_FCALLI = 0x01, 1172fcf5ef2aSThomas Huth }; 1173fcf5ef2aSThomas Huth /* 1174fcf5ef2aSThomas Huth * RR1 Format 1175fcf5ef2aSThomas Huth */ 1176fcf5ef2aSThomas Huth /* OPCM_32_RR1_MUL */ 1177fcf5ef2aSThomas Huth enum { 1178fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_H_32_LL = 0x1a, 1179fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_H_32_LU = 0x19, 1180fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_H_32_UL = 0x18, 1181fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_H_32_UU = 0x1b, 1182fcf5ef2aSThomas Huth OPC2_32_RR1_MULM_H_64_LL = 0x1e, 1183fcf5ef2aSThomas Huth OPC2_32_RR1_MULM_H_64_LU = 0x1d, 1184fcf5ef2aSThomas Huth OPC2_32_RR1_MULM_H_64_UL = 0x1c, 1185fcf5ef2aSThomas Huth OPC2_32_RR1_MULM_H_64_UU = 0x1f, 1186fcf5ef2aSThomas Huth OPC2_32_RR1_MULR_H_16_LL = 0x0e, 1187fcf5ef2aSThomas Huth OPC2_32_RR1_MULR_H_16_LU = 0x0d, 1188fcf5ef2aSThomas Huth OPC2_32_RR1_MULR_H_16_UL = 0x0c, 1189fcf5ef2aSThomas Huth OPC2_32_RR1_MULR_H_16_UU = 0x0f, 1190fcf5ef2aSThomas Huth }; 1191fcf5ef2aSThomas Huth /* OPCM_32_RR1_MULQ */ 1192fcf5ef2aSThomas Huth enum { 1193fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_Q_32 = 0x02, 1194fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_Q_64 = 0x1b, 1195fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_Q_32_L = 0x01, 1196fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_Q_64_L = 0x19, 1197fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_Q_32_U = 0x00, 1198fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_Q_64_U = 0x18, 1199fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_Q_32_LL = 0x05, 1200fcf5ef2aSThomas Huth OPC2_32_RR1_MUL_Q_32_UU = 0x04, 1201fcf5ef2aSThomas Huth OPC2_32_RR1_MULR_Q_32_L = 0x07, 1202fcf5ef2aSThomas Huth OPC2_32_RR1_MULR_Q_32_U = 0x06, 1203fcf5ef2aSThomas Huth }; 1204fcf5ef2aSThomas Huth /* 1205fcf5ef2aSThomas Huth * RR2 Format 1206fcf5ef2aSThomas Huth */ 1207fcf5ef2aSThomas Huth /* OPCM_32_RR2_MUL */ 1208fcf5ef2aSThomas Huth enum { 1209fcf5ef2aSThomas Huth OPC2_32_RR2_MUL_32 = 0x0a, 1210fcf5ef2aSThomas Huth OPC2_32_RR2_MUL_64 = 0x6a, 1211fcf5ef2aSThomas Huth OPC2_32_RR2_MULS_32 = 0x8a, 1212fcf5ef2aSThomas Huth OPC2_32_RR2_MUL_U_64 = 0x68, 1213fcf5ef2aSThomas Huth OPC2_32_RR2_MULS_U_32 = 0x88, 1214fcf5ef2aSThomas Huth }; 1215fcf5ef2aSThomas Huth /* 1216fcf5ef2aSThomas Huth * RRPW Format 1217fcf5ef2aSThomas Huth */ 1218fcf5ef2aSThomas Huth /* OPCM_32_RRPW_EXTRACT_INSERT */ 1219fcf5ef2aSThomas Huth enum { 1220fcf5ef2aSThomas Huth 1221fcf5ef2aSThomas Huth OPC2_32_RRPW_EXTR = 0x02, 1222fcf5ef2aSThomas Huth OPC2_32_RRPW_EXTR_U = 0x03, 1223fcf5ef2aSThomas Huth OPC2_32_RRPW_IMASK = 0x01, 1224fcf5ef2aSThomas Huth OPC2_32_RRPW_INSERT = 0x00, 1225fcf5ef2aSThomas Huth }; 1226fcf5ef2aSThomas Huth /* 1227fcf5ef2aSThomas Huth * RRR Format 1228fcf5ef2aSThomas Huth */ 1229fcf5ef2aSThomas Huth /* OPCM_32_RRR_COND_SELECT */ 1230fcf5ef2aSThomas Huth enum { 1231fcf5ef2aSThomas Huth OPC2_32_RRR_CADD = 0x00, 1232fcf5ef2aSThomas Huth OPC2_32_RRR_CADDN = 0x01, 1233fcf5ef2aSThomas Huth OPC2_32_RRR_CSUB = 0x02, 1234fcf5ef2aSThomas Huth OPC2_32_RRR_CSUBN = 0x03, 1235fcf5ef2aSThomas Huth OPC2_32_RRR_SEL = 0x04, 1236fcf5ef2aSThomas Huth OPC2_32_RRR_SELN = 0x05, 1237fcf5ef2aSThomas Huth }; 1238fcf5ef2aSThomas Huth /* OPCM_32_RRR_FLOAT */ 1239fcf5ef2aSThomas Huth enum { 1240fcf5ef2aSThomas Huth OPC2_32_RRR_DVADJ = 0x0d, 1241fcf5ef2aSThomas Huth OPC2_32_RRR_DVSTEP = 0x0f, 1242fcf5ef2aSThomas Huth OPC2_32_RRR_DVSTEP_U = 0x0e, 1243fcf5ef2aSThomas Huth OPC2_32_RRR_IXMAX = 0x0a, 1244fcf5ef2aSThomas Huth OPC2_32_RRR_IXMAX_U = 0x0b, 1245fcf5ef2aSThomas Huth OPC2_32_RRR_IXMIN = 0x08, 1246fcf5ef2aSThomas Huth OPC2_32_RRR_IXMIN_U = 0x09, 1247fcf5ef2aSThomas Huth OPC2_32_RRR_PACK = 0x00, 1248fcf5ef2aSThomas Huth OPC2_32_RRR_ADD_F = 0x02, 1249fcf5ef2aSThomas Huth OPC2_32_RRR_SUB_F = 0x03, 1250fcf5ef2aSThomas Huth OPC2_32_RRR_MADD_F = 0x06, 1251fcf5ef2aSThomas Huth OPC2_32_RRR_MSUB_F = 0x07, 12523e2a5107SBastian Koppelmann OPC2_32_RRR_CRCN = 0x01, /* 1.6.2 up */ 1253fcf5ef2aSThomas Huth }; 1254fcf5ef2aSThomas Huth /* 1255fcf5ef2aSThomas Huth * RRR1 Format 1256fcf5ef2aSThomas Huth */ 1257fcf5ef2aSThomas Huth /* OPCM_32_RRR1_MADD */ 1258fcf5ef2aSThomas Huth enum { 1259fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_H_LL = 0x1a, 1260fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_H_LU = 0x19, 1261fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_H_UL = 0x18, 1262fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_H_UU = 0x1b, 1263fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_H_LL = 0x3a, 1264fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_H_LU = 0x39, 1265fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_H_UL = 0x38, 1266fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_H_UU = 0x3b, 1267fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDM_H_LL = 0x1e, 1268fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDM_H_LU = 0x1d, 1269fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDM_H_UL = 0x1c, 1270fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDM_H_UU = 0x1f, 1271fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDMS_H_LL = 0x3e, 1272fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDMS_H_LU = 0x3d, 1273fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDMS_H_UL = 0x3c, 1274fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDMS_H_UU = 0x3f, 1275fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDR_H_LL = 0x0e, 1276fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDR_H_LU = 0x0d, 1277fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDR_H_UL = 0x0c, 1278fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDR_H_UU = 0x0f, 1279fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDRS_H_LL = 0x2e, 1280fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDRS_H_LU = 0x2d, 1281fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDRS_H_UL = 0x2c, 1282fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDRS_H_UU = 0x2f, 1283fcf5ef2aSThomas Huth }; 1284fcf5ef2aSThomas Huth /* OPCM_32_RRR1_MADDQ_H */ 1285fcf5ef2aSThomas Huth enum { 1286fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_32 = 0x02, 1287fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_64 = 0x1b, 1288fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_32_L = 0x01, 1289fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_64_L = 0x19, 1290fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_32_U = 0x00, 1291fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_64_U = 0x18, 1292fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_32_LL = 0x05, 1293fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_64_LL = 0x1d, 1294fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_32_UU = 0x04, 1295fcf5ef2aSThomas Huth OPC2_32_RRR1_MADD_Q_64_UU = 0x1c, 1296fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_32 = 0x22, 1297fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_64 = 0x3b, 1298fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_32_L = 0x21, 1299fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_64_L = 0x39, 1300fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_32_U = 0x20, 1301fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_64_U = 0x38, 1302fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_32_LL = 0x25, 1303fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_64_LL = 0x3d, 1304fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_32_UU = 0x24, 1305fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDS_Q_64_UU = 0x3c, 1306fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDR_H_64_UL = 0x1e, 1307fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDRS_H_64_UL = 0x3e, 1308fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDR_Q_32_LL = 0x07, 1309fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDR_Q_32_UU = 0x06, 1310fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDRS_Q_32_LL = 0x27, 1311fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDRS_Q_32_UU = 0x26, 1312fcf5ef2aSThomas Huth }; 1313fcf5ef2aSThomas Huth /* OPCM_32_RRR1_MADDSU_H */ 1314fcf5ef2aSThomas Huth enum { 1315fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSU_H_32_LL = 0x1a, 1316fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSU_H_32_LU = 0x19, 1317fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSU_H_32_UL = 0x18, 1318fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSU_H_32_UU = 0x1b, 1319fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUS_H_32_LL = 0x3a, 1320fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUS_H_32_LU = 0x39, 1321fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUS_H_32_UL = 0x38, 1322fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUS_H_32_UU = 0x3b, 1323fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUM_H_64_LL = 0x1e, 1324fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUM_H_64_LU = 0x1d, 1325fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUM_H_64_UL = 0x1c, 1326fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUM_H_64_UU = 0x1f, 1327fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUMS_H_64_LL = 0x3e, 1328fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUMS_H_64_LU = 0x3d, 1329fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUMS_H_64_UL = 0x3c, 1330fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUMS_H_64_UU = 0x3f, 1331fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUR_H_16_LL = 0x0e, 1332fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUR_H_16_LU = 0x0d, 1333fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUR_H_16_UL = 0x0c, 1334fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSUR_H_16_UU = 0x0f, 1335fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSURS_H_16_LL = 0x2e, 1336fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSURS_H_16_LU = 0x2d, 1337fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSURS_H_16_UL = 0x2c, 1338fcf5ef2aSThomas Huth OPC2_32_RRR1_MADDSURS_H_16_UU = 0x2f, 1339fcf5ef2aSThomas Huth }; 1340fcf5ef2aSThomas Huth /* OPCM_32_RRR1_MSUB_H */ 1341fcf5ef2aSThomas Huth enum { 1342fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_H_LL = 0x1a, 1343fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_H_LU = 0x19, 1344fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_H_UL = 0x18, 1345fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_H_UU = 0x1b, 1346fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_H_LL = 0x3a, 1347fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_H_LU = 0x39, 1348fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_H_UL = 0x38, 1349fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_H_UU = 0x3b, 1350fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBM_H_LL = 0x1e, 1351fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBM_H_LU = 0x1d, 1352fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBM_H_UL = 0x1c, 1353fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBM_H_UU = 0x1f, 1354fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBMS_H_LL = 0x3e, 1355fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBMS_H_LU = 0x3d, 1356fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBMS_H_UL = 0x3c, 1357fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBMS_H_UU = 0x3f, 1358fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBR_H_LL = 0x0e, 1359fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBR_H_LU = 0x0d, 1360fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBR_H_UL = 0x0c, 1361fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBR_H_UU = 0x0f, 1362fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBRS_H_LL = 0x2e, 1363fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBRS_H_LU = 0x2d, 1364fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBRS_H_UL = 0x2c, 1365fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBRS_H_UU = 0x2f, 1366fcf5ef2aSThomas Huth }; 1367fcf5ef2aSThomas Huth /* OPCM_32_RRR1_MSUB_Q */ 1368fcf5ef2aSThomas Huth enum { 1369fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_32 = 0x02, 1370fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_64 = 0x1b, 1371fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_32_L = 0x01, 1372fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_64_L = 0x19, 1373fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_32_U = 0x00, 1374fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_64_U = 0x18, 1375fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_32_LL = 0x05, 1376fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_64_LL = 0x1d, 1377fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_32_UU = 0x04, 1378fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUB_Q_64_UU = 0x1c, 1379fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_32 = 0x22, 1380fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_64 = 0x3b, 1381fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_32_L = 0x21, 1382fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_64_L = 0x39, 1383fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_32_U = 0x20, 1384fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_64_U = 0x38, 1385fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_32_LL = 0x25, 1386fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_64_LL = 0x3d, 1387fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_32_UU = 0x24, 1388fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBS_Q_64_UU = 0x3c, 1389fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBR_H_64_UL = 0x1e, 1390fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBRS_H_64_UL = 0x3e, 1391fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBR_Q_32_LL = 0x07, 1392fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBR_Q_32_UU = 0x06, 1393fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBRS_Q_32_LL = 0x27, 1394fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBRS_Q_32_UU = 0x26, 1395fcf5ef2aSThomas Huth }; 1396fcf5ef2aSThomas Huth /* OPCM_32_RRR1_MSUBADS_H */ 1397fcf5ef2aSThomas Huth enum { 1398fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBAD_H_32_LL = 0x1a, 1399fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBAD_H_32_LU = 0x19, 1400fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBAD_H_32_UL = 0x18, 1401fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBAD_H_32_UU = 0x1b, 1402fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADS_H_32_LL = 0x3a, 1403fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADS_H_32_LU = 0x39, 1404fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADS_H_32_UL = 0x38, 1405fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADS_H_32_UU = 0x3b, 1406fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADM_H_64_LL = 0x1e, 1407fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADM_H_64_LU = 0x1d, 1408fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADM_H_64_UL = 0x1c, 1409fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADM_H_64_UU = 0x1f, 1410fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADMS_H_64_LL = 0x3e, 1411fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADMS_H_64_LU = 0x3d, 1412fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADMS_H_64_UL = 0x3c, 1413fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADMS_H_64_UU = 0x3f, 1414fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADR_H_16_LL = 0x0e, 1415fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADR_H_16_LU = 0x0d, 1416fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADR_H_16_UL = 0x0c, 1417fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADR_H_16_UU = 0x0f, 1418fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADRS_H_16_LL = 0x2e, 1419fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADRS_H_16_LU = 0x2d, 1420fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADRS_H_16_UL = 0x2c, 1421fcf5ef2aSThomas Huth OPC2_32_RRR1_MSUBADRS_H_16_UU = 0x2f, 1422fcf5ef2aSThomas Huth }; 1423fcf5ef2aSThomas Huth /* 1424fcf5ef2aSThomas Huth * RRR2 Format 1425fcf5ef2aSThomas Huth */ 1426fcf5ef2aSThomas Huth /* OPCM_32_RRR2_MADD */ 1427fcf5ef2aSThomas Huth enum { 1428fcf5ef2aSThomas Huth OPC2_32_RRR2_MADD_32 = 0x0a, 1429fcf5ef2aSThomas Huth OPC2_32_RRR2_MADD_64 = 0x6a, 1430fcf5ef2aSThomas Huth OPC2_32_RRR2_MADDS_32 = 0x8a, 1431fcf5ef2aSThomas Huth OPC2_32_RRR2_MADDS_64 = 0xea, 1432fcf5ef2aSThomas Huth OPC2_32_RRR2_MADD_U_64 = 0x68, 1433fcf5ef2aSThomas Huth OPC2_32_RRR2_MADDS_U_32 = 0x88, 1434fcf5ef2aSThomas Huth OPC2_32_RRR2_MADDS_U_64 = 0xe8, 1435fcf5ef2aSThomas Huth }; 1436fcf5ef2aSThomas Huth /* OPCM_32_RRR2_MSUB */ 1437fcf5ef2aSThomas Huth enum { 1438fcf5ef2aSThomas Huth OPC2_32_RRR2_MSUB_32 = 0x0a, 1439fcf5ef2aSThomas Huth OPC2_32_RRR2_MSUB_64 = 0x6a, 1440fcf5ef2aSThomas Huth OPC2_32_RRR2_MSUBS_32 = 0x8a, 1441fcf5ef2aSThomas Huth OPC2_32_RRR2_MSUBS_64 = 0xea, 1442fcf5ef2aSThomas Huth OPC2_32_RRR2_MSUB_U_64 = 0x68, 1443fcf5ef2aSThomas Huth OPC2_32_RRR2_MSUBS_U_32 = 0x88, 1444fcf5ef2aSThomas Huth OPC2_32_RRR2_MSUBS_U_64 = 0xe8, 1445fcf5ef2aSThomas Huth }; 1446fcf5ef2aSThomas Huth /* 1447fcf5ef2aSThomas Huth * RRRR Format 1448fcf5ef2aSThomas Huth */ 1449fcf5ef2aSThomas Huth /* OPCM_32_RRRR_EXTRACT_INSERT */ 1450fcf5ef2aSThomas Huth enum { 1451fcf5ef2aSThomas Huth OPC2_32_RRRR_DEXTR = 0x04, 1452fcf5ef2aSThomas Huth OPC2_32_RRRR_EXTR = 0x02, 1453fcf5ef2aSThomas Huth OPC2_32_RRRR_EXTR_U = 0x03, 1454fcf5ef2aSThomas Huth OPC2_32_RRRR_INSERT = 0x00, 1455fcf5ef2aSThomas Huth }; 1456fcf5ef2aSThomas Huth /* 1457fcf5ef2aSThomas Huth * RRRW Format 1458fcf5ef2aSThomas Huth */ 1459fcf5ef2aSThomas Huth /* OPCM_32_RRRW_EXTRACT_INSERT */ 1460fcf5ef2aSThomas Huth enum { 1461fcf5ef2aSThomas Huth OPC2_32_RRRW_EXTR = 0x02, 1462fcf5ef2aSThomas Huth OPC2_32_RRRW_EXTR_U = 0x03, 1463fcf5ef2aSThomas Huth OPC2_32_RRRW_IMASK = 0x01, 1464fcf5ef2aSThomas Huth OPC2_32_RRRW_INSERT = 0x00, 1465fcf5ef2aSThomas Huth }; 1466fcf5ef2aSThomas Huth /* 1467fcf5ef2aSThomas Huth * SYS Format 1468fcf5ef2aSThomas Huth */ 1469fcf5ef2aSThomas Huth /* OPCM_32_SYS_INTERRUPTS */ 1470fcf5ef2aSThomas Huth enum { 1471fcf5ef2aSThomas Huth OPC2_32_SYS_DEBUG = 0x04, 1472fcf5ef2aSThomas Huth OPC2_32_SYS_DISABLE = 0x0d, 14730b9f9b63SBastian Koppelmann OPC2_32_SYS_DISABLE_D = 0x0f, /* 1.6 up */ 1474fcf5ef2aSThomas Huth OPC2_32_SYS_DSYNC = 0x12, 1475fcf5ef2aSThomas Huth OPC2_32_SYS_ENABLE = 0x0c, 1476fcf5ef2aSThomas Huth OPC2_32_SYS_ISYNC = 0x13, 1477fcf5ef2aSThomas Huth OPC2_32_SYS_NOP = 0x00, 1478fcf5ef2aSThomas Huth OPC2_32_SYS_RET = 0x06, 1479fcf5ef2aSThomas Huth OPC2_32_SYS_RFE = 0x07, 1480fcf5ef2aSThomas Huth OPC2_32_SYS_RFM = 0x05, 1481fcf5ef2aSThomas Huth OPC2_32_SYS_RSLCX = 0x09, 1482fcf5ef2aSThomas Huth OPC2_32_SYS_SVLCX = 0x08, 1483fcf5ef2aSThomas Huth OPC2_32_SYS_TRAPSV = 0x15, 1484fcf5ef2aSThomas Huth OPC2_32_SYS_TRAPV = 0x14, 1485fcf5ef2aSThomas Huth OPC2_32_SYS_RESTORE = 0x0e, 1486fcf5ef2aSThomas Huth OPC2_32_SYS_FRET = 0x03, 1487fcf5ef2aSThomas Huth }; 1488f91005e1SMarkus Armbruster 1489f91005e1SMarkus Armbruster #endif 1490