1212397c6Schristos /* Nios II R2 opcode list for GAS, the GNU assembler. 2*aab831ceSchristos Copyright (C) 2013-2024 Free Software Foundation, Inc. 3212397c6Schristos Contributed by Mentor Graphics, Inc. 4212397c6Schristos 5796c32c9Schristos This file is part of the GNU opcodes library. 6212397c6Schristos 7212397c6Schristos GAS/GDB is free software; you can redistribute it and/or modify 8212397c6Schristos it under the terms of the GNU General Public License as published by 9212397c6Schristos the Free Software Foundation; either version 3, or (at your option) 10212397c6Schristos any later version. 11212397c6Schristos 12212397c6Schristos GAS/GDB is distributed in the hope that it will be useful, 13212397c6Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 14212397c6Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15212397c6Schristos GNU General Public License for more details. 16212397c6Schristos 17212397c6Schristos You should have received a copy of the GNU General Public License 18212397c6Schristos along with GAS or GDB; see the file COPYING3. If not, write to 19212397c6Schristos the Free Software Foundation, 51 Franklin Street - Fifth Floor, 20212397c6Schristos Boston, MA 02110-1301, USA. */ 21212397c6Schristos 22212397c6Schristos #ifndef _NIOS2R2_H_ 23212397c6Schristos #define _NIOS2R2_H_ 24212397c6Schristos 25212397c6Schristos /* Fields for 32-bit R2 instructions. */ 26212397c6Schristos 27212397c6Schristos #define IW_R2_OP_LSB 0 28212397c6Schristos #define IW_R2_OP_SIZE 6 29212397c6Schristos #define IW_R2_OP_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_R2_OP_SIZE)) 30212397c6Schristos #define IW_R2_OP_SHIFTED_MASK (IW_R2_OP_UNSHIFTED_MASK << IW_R2_OP_LSB) 31212397c6Schristos #define GET_IW_R2_OP(W) (((W) >> IW_R2_OP_LSB) & IW_R2_OP_UNSHIFTED_MASK) 32212397c6Schristos #define SET_IW_R2_OP(V) (((V) & IW_R2_OP_UNSHIFTED_MASK) << IW_R2_OP_LSB) 33212397c6Schristos 34212397c6Schristos #define IW_L26_IMM26_LSB 6 35212397c6Schristos #define IW_L26_IMM26_SIZE 26 36212397c6Schristos #define IW_L26_IMM26_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_L26_IMM26_SIZE)) 37212397c6Schristos #define IW_L26_IMM26_SHIFTED_MASK (IW_L26_IMM26_UNSHIFTED_MASK << IW_L26_IMM26_LSB) 38212397c6Schristos #define GET_IW_L26_IMM26(W) (((W) >> IW_L26_IMM26_LSB) & IW_L26_IMM26_UNSHIFTED_MASK) 39212397c6Schristos #define SET_IW_L26_IMM26(V) (((V) & IW_L26_IMM26_UNSHIFTED_MASK) << IW_L26_IMM26_LSB) 40212397c6Schristos 41212397c6Schristos #define IW_F2I16_A_LSB 6 42212397c6Schristos #define IW_F2I16_A_SIZE 5 43212397c6Schristos #define IW_F2I16_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2I16_A_SIZE)) 44212397c6Schristos #define IW_F2I16_A_SHIFTED_MASK (IW_F2I16_A_UNSHIFTED_MASK << IW_F2I16_A_LSB) 45212397c6Schristos #define GET_IW_F2I16_A(W) (((W) >> IW_F2I16_A_LSB) & IW_F2I16_A_UNSHIFTED_MASK) 46212397c6Schristos #define SET_IW_F2I16_A(V) (((V) & IW_F2I16_A_UNSHIFTED_MASK) << IW_F2I16_A_LSB) 47212397c6Schristos 48212397c6Schristos #define IW_F2I16_B_LSB 11 49212397c6Schristos #define IW_F2I16_B_SIZE 5 50212397c6Schristos #define IW_F2I16_B_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2I16_B_SIZE)) 51212397c6Schristos #define IW_F2I16_B_SHIFTED_MASK (IW_F2I16_B_UNSHIFTED_MASK << IW_F2I16_B_LSB) 52212397c6Schristos #define GET_IW_F2I16_B(W) (((W) >> IW_F2I16_B_LSB) & IW_F2I16_B_UNSHIFTED_MASK) 53212397c6Schristos #define SET_IW_F2I16_B(V) (((V) & IW_F2I16_B_UNSHIFTED_MASK) << IW_F2I16_B_LSB) 54212397c6Schristos 55212397c6Schristos #define IW_F2I16_IMM16_LSB 16 56212397c6Schristos #define IW_F2I16_IMM16_SIZE 16 57212397c6Schristos #define IW_F2I16_IMM16_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2I16_IMM16_SIZE)) 58212397c6Schristos #define IW_F2I16_IMM16_SHIFTED_MASK (IW_F2I16_IMM16_UNSHIFTED_MASK << IW_F2I16_IMM16_LSB) 59212397c6Schristos #define GET_IW_F2I16_IMM16(W) (((W) >> IW_F2I16_IMM16_LSB) & IW_F2I16_IMM16_UNSHIFTED_MASK) 60212397c6Schristos #define SET_IW_F2I16_IMM16(V) (((V) & IW_F2I16_IMM16_UNSHIFTED_MASK) << IW_F2I16_IMM16_LSB) 61212397c6Schristos 62212397c6Schristos /* Common to all three I12-group formats F2X4I12, F1X4I12, F1X4L17. */ 63212397c6Schristos #define IW_I12_X_LSB 28 64212397c6Schristos #define IW_I12_X_SIZE 4 65212397c6Schristos #define IW_I12_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_I12_X_SIZE)) 66212397c6Schristos #define IW_I12_X_SHIFTED_MASK (IW_I12_X_UNSHIFTED_MASK << IW_I12_X_LSB) 67212397c6Schristos #define GET_IW_I12_X(W) (((W) >> IW_I12_X_LSB) & IW_I12_X_UNSHIFTED_MASK) 68212397c6Schristos #define SET_IW_I12_X(V) (((V) & IW_I12_X_UNSHIFTED_MASK) << IW_I12_X_LSB) 69212397c6Schristos 70212397c6Schristos #define IW_F2X4I12_A_LSB 6 71212397c6Schristos #define IW_F2X4I12_A_SIZE 5 72212397c6Schristos #define IW_F2X4I12_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2X4I12_A_SIZE)) 73212397c6Schristos #define IW_F2X4I12_A_SHIFTED_MASK (IW_F2X4I12_A_UNSHIFTED_MASK << IW_F2X4I12_A_LSB) 74212397c6Schristos #define GET_IW_F2X4I12_A(W) (((W) >> IW_F2X4I12_A_LSB) & IW_F2X4I12_A_UNSHIFTED_MASK) 75212397c6Schristos #define SET_IW_F2X4I12_A(V) (((V) & IW_F2X4I12_A_UNSHIFTED_MASK) << IW_F2X4I12_A_LSB) 76212397c6Schristos 77212397c6Schristos #define IW_F2X4I12_B_LSB 11 78212397c6Schristos #define IW_F2X4I12_B_SIZE 5 79212397c6Schristos #define IW_F2X4I12_B_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2X4I12_B_SIZE)) 80212397c6Schristos #define IW_F2X4I12_B_SHIFTED_MASK (IW_F2X4I12_B_UNSHIFTED_MASK << IW_F2X4I12_B_LSB) 81212397c6Schristos #define GET_IW_F2X4I12_B(W) (((W) >> IW_F2X4I12_B_LSB) & IW_F2X4I12_B_UNSHIFTED_MASK) 82212397c6Schristos #define SET_IW_F2X4I12_B(V) (((V) & IW_F2X4I12_B_UNSHIFTED_MASK) << IW_F2X4I12_B_LSB) 83212397c6Schristos 84212397c6Schristos #define IW_F2X4I12_IMM12_LSB 16 85212397c6Schristos #define IW_F2X4I12_IMM12_SIZE 12 86212397c6Schristos #define IW_F2X4I12_IMM12_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2X4I12_IMM12_SIZE)) 87212397c6Schristos #define IW_F2X4I12_IMM12_SHIFTED_MASK (IW_F2X4I12_IMM12_UNSHIFTED_MASK << IW_F2X4I12_IMM12_LSB) 88212397c6Schristos #define GET_IW_F2X4I12_IMM12(W) (((W) >> IW_F2X4I12_IMM12_LSB) & IW_F2X4I12_IMM12_UNSHIFTED_MASK) 89212397c6Schristos #define SET_IW_F2X4I12_IMM12(V) (((V) & IW_F2X4I12_IMM12_UNSHIFTED_MASK) << IW_F2X4I12_IMM12_LSB) 90212397c6Schristos 91212397c6Schristos #define IW_F1X4I12_A_LSB 6 92212397c6Schristos #define IW_F1X4I12_A_SIZE 5 93212397c6Schristos #define IW_F1X4I12_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4I12_A_SIZE)) 94212397c6Schristos #define IW_F1X4I12_A_SHIFTED_MASK (IW_F1X4I12_A_UNSHIFTED_MASK << IW_F1X4I12_A_LSB) 95212397c6Schristos #define GET_IW_F1X4I12_A(W) (((W) >> IW_F1X4I12_A_LSB) & IW_F1X4I12_A_UNSHIFTED_MASK) 96212397c6Schristos #define SET_IW_F1X4I12_A(V) (((V) & IW_F1X4I12_A_UNSHIFTED_MASK) << IW_F1X4I12_A_LSB) 97212397c6Schristos 98212397c6Schristos #define IW_F1X4I12_X_LSB 11 99212397c6Schristos #define IW_F1X4I12_X_SIZE 5 100212397c6Schristos #define IW_F1X4I12_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4I12_X_SIZE)) 101212397c6Schristos #define IW_F1X4I12_X_SHIFTED_MASK (IW_F1X4I12_X_UNSHIFTED_MASK << IW_F1X4I12_X_LSB) 102212397c6Schristos #define GET_IW_F1X4I12_X(W) (((W) >> IW_F1X4I12_X_LSB) & IW_F1X4I12_X_UNSHIFTED_MASK) 103212397c6Schristos #define SET_IW_F1X4I12_X(V) (((V) & IW_F1X4I12_X_UNSHIFTED_MASK) << IW_F1X4I12_X_LSB) 104212397c6Schristos 105212397c6Schristos #define IW_F1X4I12_IMM12_LSB 16 106212397c6Schristos #define IW_F1X4I12_IMM12_SIZE 12 107212397c6Schristos #define IW_F1X4I12_IMM12_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4I12_IMM12_SIZE)) 108212397c6Schristos #define IW_F1X4I12_IMM12_SHIFTED_MASK (IW_F1X4I12_IMM12_UNSHIFTED_MASK << IW_F1X4I12_IMM12_LSB) 109212397c6Schristos #define GET_IW_F1X4I12_IMM12(W) (((W) >> IW_F1X4I12_IMM12_LSB) & IW_F1X4I12_IMM12_UNSHIFTED_MASK) 110212397c6Schristos #define SET_IW_F1X4I12_IMM12(V) (((V) & IW_F1X4I12_IMM12_UNSHIFTED_MASK) << IW_F1X4I12_IMM12_LSB) 111212397c6Schristos 112212397c6Schristos #define IW_F1X4L17_A_LSB 6 113212397c6Schristos #define IW_F1X4L17_A_SIZE 5 114212397c6Schristos #define IW_F1X4L17_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4L17_A_SIZE)) 115212397c6Schristos #define IW_F1X4L17_A_SHIFTED_MASK (IW_F1X4L17_A_UNSHIFTED_MASK << IW_F1X4L17_A_LSB) 116212397c6Schristos #define GET_IW_F1X4L17_A(W) (((W) >> IW_F1X4L17_A_LSB) & IW_F1X4L17_A_UNSHIFTED_MASK) 117212397c6Schristos #define SET_IW_F1X4L17_A(V) (((V) & IW_F1X4L17_A_UNSHIFTED_MASK) << IW_F1X4L17_A_LSB) 118212397c6Schristos 119212397c6Schristos #define IW_F1X4L17_ID_LSB 11 120212397c6Schristos #define IW_F1X4L17_ID_SIZE 1 121212397c6Schristos #define IW_F1X4L17_ID_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4L17_ID_SIZE)) 122212397c6Schristos #define IW_F1X4L17_ID_SHIFTED_MASK (IW_F1X4L17_ID_UNSHIFTED_MASK << IW_F1X4L17_ID_LSB) 123212397c6Schristos #define GET_IW_F1X4L17_ID(W) (((W) >> IW_F1X4L17_ID_LSB) & IW_F1X4L17_ID_UNSHIFTED_MASK) 124212397c6Schristos #define SET_IW_F1X4L17_ID(V) (((V) & IW_F1X4L17_ID_UNSHIFTED_MASK) << IW_F1X4L17_ID_LSB) 125212397c6Schristos 126212397c6Schristos #define IW_F1X4L17_WB_LSB 12 127212397c6Schristos #define IW_F1X4L17_WB_SIZE 1 128212397c6Schristos #define IW_F1X4L17_WB_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4L17_WB_SIZE)) 129212397c6Schristos #define IW_F1X4L17_WB_SHIFTED_MASK (IW_F1X4L17_WB_UNSHIFTED_MASK << IW_F1X4L17_WB_LSB) 130212397c6Schristos #define GET_IW_F1X4L17_WB(W) (((W) >> IW_F1X4L17_WB_LSB) & IW_F1X4L17_WB_UNSHIFTED_MASK) 131212397c6Schristos #define SET_IW_F1X4L17_WB(V) (((V) & IW_F1X4L17_WB_UNSHIFTED_MASK) << IW_F1X4L17_WB_LSB) 132212397c6Schristos 133212397c6Schristos #define IW_F1X4L17_RS_LSB 13 134212397c6Schristos #define IW_F1X4L17_RS_SIZE 1 135212397c6Schristos #define IW_F1X4L17_RS_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4L17_RS_SIZE)) 136212397c6Schristos #define IW_F1X4L17_RS_SHIFTED_MASK (IW_F1X4L17_RS_UNSHIFTED_MASK << IW_F1X4L17_RS_LSB) 137212397c6Schristos #define GET_IW_F1X4L17_RS(W) (((W) >> IW_F1X4L17_RS_LSB) & IW_F1X4L17_RS_UNSHIFTED_MASK) 138212397c6Schristos #define SET_IW_F1X4L17_RS(V) (((V) & IW_F1X4L17_RS_UNSHIFTED_MASK) << IW_F1X4L17_RS_LSB) 139212397c6Schristos 140212397c6Schristos #define IW_F1X4L17_PC_LSB 14 141212397c6Schristos #define IW_F1X4L17_PC_SIZE 1 142212397c6Schristos #define IW_F1X4L17_PC_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4L17_PC_SIZE)) 143212397c6Schristos #define IW_F1X4L17_PC_SHIFTED_MASK (IW_F1X4L17_PC_UNSHIFTED_MASK << IW_F1X4L17_PC_LSB) 144212397c6Schristos #define GET_IW_F1X4L17_PC(W) (((W) >> IW_F1X4L17_PC_LSB) & IW_F1X4L17_PC_UNSHIFTED_MASK) 145212397c6Schristos #define SET_IW_F1X4L17_PC(V) (((V) & IW_F1X4L17_PC_UNSHIFTED_MASK) << IW_F1X4L17_PC_LSB) 146212397c6Schristos 147212397c6Schristos #define IW_F1X4L17_RSV_LSB 15 148212397c6Schristos #define IW_F1X4L17_RSV_SIZE 1 149212397c6Schristos #define IW_F1X4L17_RSV_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4L17_RSV_SIZE)) 150212397c6Schristos #define IW_F1X4L17_RSV_SHIFTED_MASK (IW_F1X4L17_RSV_UNSHIFTED_MASK << IW_F1X4L17_RSV_LSB) 151212397c6Schristos #define GET_IW_F1X4L17_RSV(W) (((W) >> IW_F1X4L17_RSV_LSB) & IW_F1X4L17_RSV_UNSHIFTED_MASK) 152212397c6Schristos #define SET_IW_F1X4L17_RSV(V) (((V) & IW_F1X4L17_RSV_UNSHIFTED_MASK) << IW_F1X4L17_RSV_LSB) 153212397c6Schristos 154212397c6Schristos #define IW_F1X4L17_REGMASK_LSB 16 155212397c6Schristos #define IW_F1X4L17_REGMASK_SIZE 12 156212397c6Schristos #define IW_F1X4L17_REGMASK_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X4L17_REGMASK_SIZE)) 157212397c6Schristos #define IW_F1X4L17_REGMASK_SHIFTED_MASK (IW_F1X4L17_REGMASK_UNSHIFTED_MASK << IW_F1X4L17_REGMASK_LSB) 158212397c6Schristos #define GET_IW_F1X4L17_REGMASK(W) (((W) >> IW_F1X4L17_REGMASK_LSB) & IW_F1X4L17_REGMASK_UNSHIFTED_MASK) 159212397c6Schristos #define SET_IW_F1X4L17_REGMASK(V) (((V) & IW_F1X4L17_REGMASK_UNSHIFTED_MASK) << IW_F1X4L17_REGMASK_LSB) 160212397c6Schristos 161212397c6Schristos /* Shared by OPX-group formats F3X6L5, F2X6L10, F3X6. */ 162212397c6Schristos #define IW_OPX_X_LSB 26 163212397c6Schristos #define IW_OPX_X_SIZE 6 164212397c6Schristos #define IW_OPX_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_OPX_X_SIZE)) 165212397c6Schristos #define IW_OPX_X_SHIFTED_MASK (IW_OPX_X_UNSHIFTED_MASK << IW_OPX_X_LSB) 166212397c6Schristos #define GET_IW_OPX_X(W) (((W) >> IW_OPX_X_LSB) & IW_OPX_X_UNSHIFTED_MASK) 167212397c6Schristos #define SET_IW_OPX_X(V) (((V) & IW_OPX_X_UNSHIFTED_MASK) << IW_OPX_X_LSB) 168212397c6Schristos 169212397c6Schristos /* F3X6L5 accessors are also used for F3X6 formats. */ 170212397c6Schristos #define IW_F3X6L5_A_LSB 6 171212397c6Schristos #define IW_F3X6L5_A_SIZE 5 172212397c6Schristos #define IW_F3X6L5_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X6L5_A_SIZE)) 173212397c6Schristos #define IW_F3X6L5_A_SHIFTED_MASK (IW_F3X6L5_A_UNSHIFTED_MASK << IW_F3X6L5_A_LSB) 174212397c6Schristos #define GET_IW_F3X6L5_A(W) (((W) >> IW_F3X6L5_A_LSB) & IW_F3X6L5_A_UNSHIFTED_MASK) 175212397c6Schristos #define SET_IW_F3X6L5_A(V) (((V) & IW_F3X6L5_A_UNSHIFTED_MASK) << IW_F3X6L5_A_LSB) 176212397c6Schristos 177212397c6Schristos #define IW_F3X6L5_B_LSB 11 178212397c6Schristos #define IW_F3X6L5_B_SIZE 5 179212397c6Schristos #define IW_F3X6L5_B_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X6L5_B_SIZE)) 180212397c6Schristos #define IW_F3X6L5_B_SHIFTED_MASK (IW_F3X6L5_B_UNSHIFTED_MASK << IW_F3X6L5_B_LSB) 181212397c6Schristos #define GET_IW_F3X6L5_B(W) (((W) >> IW_F3X6L5_B_LSB) & IW_F3X6L5_B_UNSHIFTED_MASK) 182212397c6Schristos #define SET_IW_F3X6L5_B(V) (((V) & IW_F3X6L5_B_UNSHIFTED_MASK) << IW_F3X6L5_B_LSB) 183212397c6Schristos 184212397c6Schristos #define IW_F3X6L5_C_LSB 16 185212397c6Schristos #define IW_F3X6L5_C_SIZE 5 186212397c6Schristos #define IW_F3X6L5_C_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X6L5_C_SIZE)) 187212397c6Schristos #define IW_F3X6L5_C_SHIFTED_MASK (IW_F3X6L5_C_UNSHIFTED_MASK << IW_F3X6L5_C_LSB) 188212397c6Schristos #define GET_IW_F3X6L5_C(W) (((W) >> IW_F3X6L5_C_LSB) & IW_F3X6L5_C_UNSHIFTED_MASK) 189212397c6Schristos #define SET_IW_F3X6L5_C(V) (((V) & IW_F3X6L5_C_UNSHIFTED_MASK) << IW_F3X6L5_C_LSB) 190212397c6Schristos 191212397c6Schristos #define IW_F3X6L5_IMM5_LSB 21 192212397c6Schristos #define IW_F3X6L5_IMM5_SIZE 5 193212397c6Schristos #define IW_F3X6L5_IMM5_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X6L5_IMM5_SIZE)) 194212397c6Schristos #define IW_F3X6L5_IMM5_SHIFTED_MASK (IW_F3X6L5_IMM5_UNSHIFTED_MASK << IW_F3X6L5_IMM5_LSB) 195212397c6Schristos #define GET_IW_F3X6L5_IMM5(W) (((W) >> IW_F3X6L5_IMM5_LSB) & IW_F3X6L5_IMM5_UNSHIFTED_MASK) 196212397c6Schristos #define SET_IW_F3X6L5_IMM5(V) (((V) & IW_F3X6L5_IMM5_UNSHIFTED_MASK) << IW_F3X6L5_IMM5_LSB) 197212397c6Schristos 198212397c6Schristos #define IW_F2X6L10_A_LSB 6 199212397c6Schristos #define IW_F2X6L10_A_SIZE 5 200212397c6Schristos #define IW_F2X6L10_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2X6L10_A_SIZE)) 201212397c6Schristos #define IW_F2X6L10_A_SHIFTED_MASK (IW_F2X6L10_A_UNSHIFTED_MASK << IW_F2X6L10_A_LSB) 202212397c6Schristos #define GET_IW_F2X6L10_A(W) (((W) >> IW_F2X6L10_A_LSB) & IW_F2X6L10_A_UNSHIFTED_MASK) 203212397c6Schristos #define SET_IW_F2X6L10_A(V) (((V) & IW_F2X6L10_A_UNSHIFTED_MASK) << IW_F2X6L10_A_LSB) 204212397c6Schristos 205212397c6Schristos #define IW_F2X6L10_B_LSB 11 206212397c6Schristos #define IW_F2X6L10_B_SIZE 5 207212397c6Schristos #define IW_F2X6L10_B_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2X6L10_B_SIZE)) 208212397c6Schristos #define IW_F2X6L10_B_SHIFTED_MASK (IW_F2X6L10_B_UNSHIFTED_MASK << IW_F2X6L10_B_LSB) 209212397c6Schristos #define GET_IW_F2X6L10_B(W) (((W) >> IW_F2X6L10_B_LSB) & IW_F2X6L10_B_UNSHIFTED_MASK) 210212397c6Schristos #define SET_IW_F2X6L10_B(V) (((V) & IW_F2X6L10_B_UNSHIFTED_MASK) << IW_F2X6L10_B_LSB) 211212397c6Schristos 212212397c6Schristos #define IW_F2X6L10_LSB_LSB 16 213212397c6Schristos #define IW_F2X6L10_LSB_SIZE 5 214212397c6Schristos #define IW_F2X6L10_LSB_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2X6L10_LSB_SIZE)) 215212397c6Schristos #define IW_F2X6L10_LSB_SHIFTED_MASK (IW_F2X6L10_LSB_UNSHIFTED_MASK << IW_F2X6L10_LSB_LSB) 216212397c6Schristos #define GET_IW_F2X6L10_LSB(W) (((W) >> IW_F2X6L10_LSB_LSB) & IW_F2X6L10_LSB_UNSHIFTED_MASK) 217212397c6Schristos #define SET_IW_F2X6L10_LSB(V) (((V) & IW_F2X6L10_LSB_UNSHIFTED_MASK) << IW_F2X6L10_LSB_LSB) 218212397c6Schristos 219212397c6Schristos #define IW_F2X6L10_MSB_LSB 21 220212397c6Schristos #define IW_F2X6L10_MSB_SIZE 5 221212397c6Schristos #define IW_F2X6L10_MSB_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2X6L10_MSB_SIZE)) 222212397c6Schristos #define IW_F2X6L10_MSB_SHIFTED_MASK (IW_F2X6L10_MSB_UNSHIFTED_MASK << IW_F2X6L10_MSB_LSB) 223212397c6Schristos #define GET_IW_F2X6L10_MSB(W) (((W) >> IW_F2X6L10_MSB_LSB) & IW_F2X6L10_MSB_UNSHIFTED_MASK) 224212397c6Schristos #define SET_IW_F2X6L10_MSB(V) (((V) & IW_F2X6L10_MSB_UNSHIFTED_MASK) << IW_F2X6L10_MSB_LSB) 225212397c6Schristos 226212397c6Schristos #define IW_F3X8_A_LSB 6 227212397c6Schristos #define IW_F3X8_A_SIZE 5 228212397c6Schristos #define IW_F3X8_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X8_A_SIZE)) 229212397c6Schristos #define IW_F3X8_A_SHIFTED_MASK (IW_F3X8_A_UNSHIFTED_MASK << IW_F3X8_A_LSB) 230212397c6Schristos #define GET_IW_F3X8_A(W) (((W) >> IW_F3X8_A_LSB) & IW_F3X8_A_UNSHIFTED_MASK) 231212397c6Schristos #define SET_IW_F3X8_A(V) (((V) & IW_F3X8_A_UNSHIFTED_MASK) << IW_F3X8_A_LSB) 232212397c6Schristos 233212397c6Schristos #define IW_F3X8_B_LSB 11 234212397c6Schristos #define IW_F3X8_B_SIZE 5 235212397c6Schristos #define IW_F3X8_B_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X8_B_SIZE)) 236212397c6Schristos #define IW_F3X8_B_SHIFTED_MASK (IW_F3X8_B_UNSHIFTED_MASK << IW_F3X8_B_LSB) 237212397c6Schristos #define GET_IW_F3X8_B(W) (((W) >> IW_F3X8_B_LSB) & IW_F3X8_B_UNSHIFTED_MASK) 238212397c6Schristos #define SET_IW_F3X8_B(V) (((V) & IW_F3X8_B_UNSHIFTED_MASK) << IW_F3X8_B_LSB) 239212397c6Schristos 240212397c6Schristos #define IW_F3X8_C_LSB 16 241212397c6Schristos #define IW_F3X8_C_SIZE 5 242212397c6Schristos #define IW_F3X8_C_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X8_C_SIZE)) 243212397c6Schristos #define IW_F3X8_C_SHIFTED_MASK (IW_F3X8_C_UNSHIFTED_MASK << IW_F3X8_C_LSB) 244212397c6Schristos #define GET_IW_F3X8_C(W) (((W) >> IW_F3X8_C_LSB) & IW_F3X8_C_UNSHIFTED_MASK) 245212397c6Schristos #define SET_IW_F3X8_C(V) (((V) & IW_F3X8_C_UNSHIFTED_MASK) << IW_F3X8_C_LSB) 246212397c6Schristos 247212397c6Schristos #define IW_F3X8_READA_LSB 21 248212397c6Schristos #define IW_F3X8_READA_SIZE 1 249212397c6Schristos #define IW_F3X8_READA_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X8_READA_SIZE)) 250212397c6Schristos #define IW_F3X8_READA_SHIFTED_MASK (IW_F3X8_READA_UNSHIFTED_MASK << IW_F3X8_READA_LSB) 251212397c6Schristos #define GET_IW_F3X8_READA(W) (((W) >> IW_F3X8_READA_LSB) & IW_F3X8_READA_UNSHIFTED_MASK) 252212397c6Schristos #define SET_IW_F3X8_READA(V) (((V) & IW_F3X8_READA_UNSHIFTED_MASK) << IW_F3X8_READA_LSB) 253212397c6Schristos 254212397c6Schristos #define IW_F3X8_READB_LSB 22 255212397c6Schristos #define IW_F3X8_READB_SIZE 1 256212397c6Schristos #define IW_F3X8_READB_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X8_READB_SIZE)) 257212397c6Schristos #define IW_F3X8_READB_SHIFTED_MASK (IW_F3X8_READB_UNSHIFTED_MASK << IW_F3X8_READB_LSB) 258212397c6Schristos #define GET_IW_F3X8_READB(W) (((W) >> IW_F3X8_READB_LSB) & IW_F3X8_READB_UNSHIFTED_MASK) 259212397c6Schristos #define SET_IW_F3X8_READB(V) (((V) & IW_F3X8_READB_UNSHIFTED_MASK) << IW_F3X8_READB_LSB) 260212397c6Schristos 261212397c6Schristos #define IW_F3X8_READC_LSB 23 262212397c6Schristos #define IW_F3X8_READC_SIZE 1 263212397c6Schristos #define IW_F3X8_READC_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X8_READC_SIZE)) 264212397c6Schristos #define IW_F3X8_READC_SHIFTED_MASK (IW_F3X8_READC_UNSHIFTED_MASK << IW_F3X8_READC_LSB) 265212397c6Schristos #define GET_IW_F3X8_READC(W) (((W) >> IW_F3X8_READC_LSB) & IW_F3X8_READC_UNSHIFTED_MASK) 266212397c6Schristos #define SET_IW_F3X8_READC(V) (((V) & IW_F3X8_READC_UNSHIFTED_MASK) << IW_F3X8_READC_LSB) 267212397c6Schristos 268212397c6Schristos #define IW_F3X8_N_LSB 24 269212397c6Schristos #define IW_F3X8_N_SIZE 8 270212397c6Schristos #define IW_F3X8_N_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F3X8_N_SIZE)) 271212397c6Schristos #define IW_F3X8_N_SHIFTED_MASK (IW_F3X8_N_UNSHIFTED_MASK << IW_F3X8_N_LSB) 272212397c6Schristos #define GET_IW_F3X8_N(W) (((W) >> IW_F3X8_N_LSB) & IW_F3X8_N_UNSHIFTED_MASK) 273212397c6Schristos #define SET_IW_F3X8_N(V) (((V) & IW_F3X8_N_UNSHIFTED_MASK) << IW_F3X8_N_LSB) 274212397c6Schristos 275212397c6Schristos /* 16-bit R2 fields. */ 276212397c6Schristos 277212397c6Schristos #define IW_I10_IMM10_LSB 6 278212397c6Schristos #define IW_I10_IMM10_SIZE 10 279212397c6Schristos #define IW_I10_IMM10_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_I10_IMM10_SIZE)) 280212397c6Schristos #define IW_I10_IMM10_SHIFTED_MASK (IW_I10_IMM10_UNSHIFTED_MASK << IW_I10_IMM10_LSB) 281212397c6Schristos #define GET_IW_I10_IMM10(W) (((W) >> IW_I10_IMM10_LSB) & IW_I10_IMM10_UNSHIFTED_MASK) 282212397c6Schristos #define SET_IW_I10_IMM10(V) (((V) & IW_I10_IMM10_UNSHIFTED_MASK) << IW_I10_IMM10_LSB) 283212397c6Schristos 284212397c6Schristos #define IW_T1I7_A3_LSB 6 285212397c6Schristos #define IW_T1I7_A3_SIZE 3 286212397c6Schristos #define IW_T1I7_A3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T1I7_A3_SIZE)) 287212397c6Schristos #define IW_T1I7_A3_SHIFTED_MASK (IW_T1I7_A3_UNSHIFTED_MASK << IW_T1I7_A3_LSB) 288212397c6Schristos #define GET_IW_T1I7_A3(W) (((W) >> IW_T1I7_A3_LSB) & IW_T1I7_A3_UNSHIFTED_MASK) 289212397c6Schristos #define SET_IW_T1I7_A3(V) (((V) & IW_T1I7_A3_UNSHIFTED_MASK) << IW_T1I7_A3_LSB) 290212397c6Schristos 291212397c6Schristos #define IW_T1I7_IMM7_LSB 9 292212397c6Schristos #define IW_T1I7_IMM7_SIZE 7 293212397c6Schristos #define IW_T1I7_IMM7_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T1I7_IMM7_SIZE)) 294212397c6Schristos #define IW_T1I7_IMM7_SHIFTED_MASK (IW_T1I7_IMM7_UNSHIFTED_MASK << IW_T1I7_IMM7_LSB) 295212397c6Schristos #define GET_IW_T1I7_IMM7(W) (((W) >> IW_T1I7_IMM7_LSB) & IW_T1I7_IMM7_UNSHIFTED_MASK) 296212397c6Schristos #define SET_IW_T1I7_IMM7(V) (((V) & IW_T1I7_IMM7_UNSHIFTED_MASK) << IW_T1I7_IMM7_LSB) 297212397c6Schristos 298212397c6Schristos #define IW_T2I4_A3_LSB 6 299212397c6Schristos #define IW_T2I4_A3_SIZE 3 300212397c6Schristos #define IW_T2I4_A3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2I4_A3_SIZE)) 301212397c6Schristos #define IW_T2I4_A3_SHIFTED_MASK (IW_T2I4_A3_UNSHIFTED_MASK << IW_T2I4_A3_LSB) 302212397c6Schristos #define GET_IW_T2I4_A3(W) (((W) >> IW_T2I4_A3_LSB) & IW_T2I4_A3_UNSHIFTED_MASK) 303212397c6Schristos #define SET_IW_T2I4_A3(V) (((V) & IW_T2I4_A3_UNSHIFTED_MASK) << IW_T2I4_A3_LSB) 304212397c6Schristos 305212397c6Schristos #define IW_T2I4_B3_LSB 9 306212397c6Schristos #define IW_T2I4_B3_SIZE 3 307212397c6Schristos #define IW_T2I4_B3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2I4_B3_SIZE)) 308212397c6Schristos #define IW_T2I4_B3_SHIFTED_MASK (IW_T2I4_B3_UNSHIFTED_MASK << IW_T2I4_B3_LSB) 309212397c6Schristos #define GET_IW_T2I4_B3(W) (((W) >> IW_T2I4_B3_LSB) & IW_T2I4_B3_UNSHIFTED_MASK) 310212397c6Schristos #define SET_IW_T2I4_B3(V) (((V) & IW_T2I4_B3_UNSHIFTED_MASK) << IW_T2I4_B3_LSB) 311212397c6Schristos 312212397c6Schristos #define IW_T2I4_IMM4_LSB 12 313212397c6Schristos #define IW_T2I4_IMM4_SIZE 4 314212397c6Schristos #define IW_T2I4_IMM4_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2I4_IMM4_SIZE)) 315212397c6Schristos #define IW_T2I4_IMM4_SHIFTED_MASK (IW_T2I4_IMM4_UNSHIFTED_MASK << IW_T2I4_IMM4_LSB) 316212397c6Schristos #define GET_IW_T2I4_IMM4(W) (((W) >> IW_T2I4_IMM4_LSB) & IW_T2I4_IMM4_UNSHIFTED_MASK) 317212397c6Schristos #define SET_IW_T2I4_IMM4(V) (((V) & IW_T2I4_IMM4_UNSHIFTED_MASK) << IW_T2I4_IMM4_LSB) 318212397c6Schristos 319212397c6Schristos #define IW_T1X1I6_A3_LSB 6 320212397c6Schristos #define IW_T1X1I6_A3_SIZE 3 321212397c6Schristos #define IW_T1X1I6_A3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T1X1I6_A3_SIZE)) 322212397c6Schristos #define IW_T1X1I6_A3_SHIFTED_MASK (IW_T1X1I6_A3_UNSHIFTED_MASK << IW_T1X1I6_A3_LSB) 323212397c6Schristos #define GET_IW_T1X1I6_A3(W) (((W) >> IW_T1X1I6_A3_LSB) & IW_T1X1I6_A3_UNSHIFTED_MASK) 324212397c6Schristos #define SET_IW_T1X1I6_A3(V) (((V) & IW_T1X1I6_A3_UNSHIFTED_MASK) << IW_T1X1I6_A3_LSB) 325212397c6Schristos 326212397c6Schristos #define IW_T1X1I6_IMM6_LSB 9 327212397c6Schristos #define IW_T1X1I6_IMM6_SIZE 6 328212397c6Schristos #define IW_T1X1I6_IMM6_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T1X1I6_IMM6_SIZE)) 329212397c6Schristos #define IW_T1X1I6_IMM6_SHIFTED_MASK (IW_T1X1I6_IMM6_UNSHIFTED_MASK << IW_T1X1I6_IMM6_LSB) 330212397c6Schristos #define GET_IW_T1X1I6_IMM6(W) (((W) >> IW_T1X1I6_IMM6_LSB) & IW_T1X1I6_IMM6_UNSHIFTED_MASK) 331212397c6Schristos #define SET_IW_T1X1I6_IMM6(V) (((V) & IW_T1X1I6_IMM6_UNSHIFTED_MASK) << IW_T1X1I6_IMM6_LSB) 332212397c6Schristos 333212397c6Schristos #define IW_T1X1I6_X_LSB 15 334212397c6Schristos #define IW_T1X1I6_X_SIZE 1 335212397c6Schristos #define IW_T1X1I6_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T1X1I6_X_SIZE)) 336212397c6Schristos #define IW_T1X1I6_X_SHIFTED_MASK (IW_T1X1I6_X_UNSHIFTED_MASK << IW_T1X1I6_X_LSB) 337212397c6Schristos #define GET_IW_T1X1I6_X(W) (((W) >> IW_T1X1I6_X_LSB) & IW_T1X1I6_X_UNSHIFTED_MASK) 338212397c6Schristos #define SET_IW_T1X1I6_X(V) (((V) & IW_T1X1I6_X_UNSHIFTED_MASK) << IW_T1X1I6_X_LSB) 339212397c6Schristos 340212397c6Schristos #define IW_X1I7_IMM7_LSB 6 341212397c6Schristos #define IW_X1I7_IMM7_SIZE 7 342212397c6Schristos #define IW_X1I7_IMM7_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_X1I7_IMM7_SIZE)) 343212397c6Schristos #define IW_X1I7_IMM7_SHIFTED_MASK (IW_X1I7_IMM7_UNSHIFTED_MASK << IW_X1I7_IMM7_LSB) 344212397c6Schristos #define GET_IW_X1I7_IMM7(W) (((W) >> IW_X1I7_IMM7_LSB) & IW_X1I7_IMM7_UNSHIFTED_MASK) 345212397c6Schristos #define SET_IW_X1I7_IMM7(V) (((V) & IW_X1I7_IMM7_UNSHIFTED_MASK) << IW_X1I7_IMM7_LSB) 346212397c6Schristos 347212397c6Schristos #define IW_X1I7_RSV_LSB 13 348212397c6Schristos #define IW_X1I7_RSV_SIZE 2 349212397c6Schristos #define IW_X1I7_RSV_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_X1I7_RSV_SIZE)) 350212397c6Schristos #define IW_X1I7_RSV_SHIFTED_MASK (IW_X1I7_RSV_UNSHIFTED_MASK << IW_X1I7_RSV_LSB) 351212397c6Schristos #define GET_IW_X1I7_RSV(W) (((W) >> IW_X1I7_RSV_LSB) & IW_X1I7_RSV_UNSHIFTED_MASK) 352212397c6Schristos #define SET_IW_X1I7_RSV(V) (((V) & IW_X1I7_RSV_UNSHIFTED_MASK) << IW_X1I7_RSV_LSB) 353212397c6Schristos 354212397c6Schristos #define IW_X1I7_X_LSB 15 355212397c6Schristos #define IW_X1I7_X_SIZE 1 356212397c6Schristos #define IW_X1I7_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_X1I7_X_SIZE)) 357212397c6Schristos #define IW_X1I7_X_SHIFTED_MASK (IW_X1I7_X_UNSHIFTED_MASK << IW_X1I7_X_LSB) 358212397c6Schristos #define GET_IW_X1I7_X(W) (((W) >> IW_X1I7_X_LSB) & IW_X1I7_X_UNSHIFTED_MASK) 359212397c6Schristos #define SET_IW_X1I7_X(V) (((V) & IW_X1I7_X_UNSHIFTED_MASK) << IW_X1I7_X_LSB) 360212397c6Schristos 361212397c6Schristos #define IW_L5I4X1_IMM4_LSB 6 362212397c6Schristos #define IW_L5I4X1_IMM4_SIZE 4 363212397c6Schristos #define IW_L5I4X1_IMM4_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_L5I4X1_IMM4_SIZE)) 364212397c6Schristos #define IW_L5I4X1_IMM4_SHIFTED_MASK (IW_L5I4X1_IMM4_UNSHIFTED_MASK << IW_L5I4X1_IMM4_LSB) 365212397c6Schristos #define GET_IW_L5I4X1_IMM4(W) (((W) >> IW_L5I4X1_IMM4_LSB) & IW_L5I4X1_IMM4_UNSHIFTED_MASK) 366212397c6Schristos #define SET_IW_L5I4X1_IMM4(V) (((V) & IW_L5I4X1_IMM4_UNSHIFTED_MASK) << IW_L5I4X1_IMM4_LSB) 367212397c6Schristos 368212397c6Schristos #define IW_L5I4X1_REGRANGE_LSB 10 369212397c6Schristos #define IW_L5I4X1_REGRANGE_SIZE 3 370212397c6Schristos #define IW_L5I4X1_REGRANGE_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_L5I4X1_REGRANGE_SIZE)) 371212397c6Schristos #define IW_L5I4X1_REGRANGE_SHIFTED_MASK (IW_L5I4X1_REGRANGE_UNSHIFTED_MASK << IW_L5I4X1_REGRANGE_LSB) 372212397c6Schristos #define GET_IW_L5I4X1_REGRANGE(W) (((W) >> IW_L5I4X1_REGRANGE_LSB) & IW_L5I4X1_REGRANGE_UNSHIFTED_MASK) 373212397c6Schristos #define SET_IW_L5I4X1_REGRANGE(V) (((V) & IW_L5I4X1_REGRANGE_UNSHIFTED_MASK) << IW_L5I4X1_REGRANGE_LSB) 374212397c6Schristos 375212397c6Schristos #define IW_L5I4X1_FP_LSB 13 376212397c6Schristos #define IW_L5I4X1_FP_SIZE 1 377212397c6Schristos #define IW_L5I4X1_FP_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_L5I4X1_FP_SIZE)) 378212397c6Schristos #define IW_L5I4X1_FP_SHIFTED_MASK (IW_L5I4X1_FP_UNSHIFTED_MASK << IW_L5I4X1_FP_LSB) 379212397c6Schristos #define GET_IW_L5I4X1_FP(W) (((W) >> IW_L5I4X1_FP_LSB) & IW_L5I4X1_FP_UNSHIFTED_MASK) 380212397c6Schristos #define SET_IW_L5I4X1_FP(V) (((V) & IW_L5I4X1_FP_UNSHIFTED_MASK) << IW_L5I4X1_FP_LSB) 381212397c6Schristos 382212397c6Schristos #define IW_L5I4X1_CS_LSB 14 383212397c6Schristos #define IW_L5I4X1_CS_SIZE 1 384212397c6Schristos #define IW_L5I4X1_CS_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_L5I4X1_CS_SIZE)) 385212397c6Schristos #define IW_L5I4X1_CS_SHIFTED_MASK (IW_L5I4X1_CS_UNSHIFTED_MASK << IW_L5I4X1_CS_LSB) 386212397c6Schristos #define GET_IW_L5I4X1_CS(W) (((W) >> IW_L5I4X1_CS_LSB) & IW_L5I4X1_CS_UNSHIFTED_MASK) 387212397c6Schristos #define SET_IW_L5I4X1_CS(V) (((V) & IW_L5I4X1_CS_UNSHIFTED_MASK) << IW_L5I4X1_CS_LSB) 388212397c6Schristos 389212397c6Schristos #define IW_L5I4X1_X_LSB 15 390212397c6Schristos #define IW_L5I4X1_X_SIZE 1 391212397c6Schristos #define IW_L5I4X1_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_L5I4X1_X_SIZE)) 392212397c6Schristos #define IW_L5I4X1_X_SHIFTED_MASK (IW_L5I4X1_X_UNSHIFTED_MASK << IW_L5I4X1_X_LSB) 393212397c6Schristos #define GET_IW_L5I4X1_X(W) (((W) >> IW_L5I4X1_X_LSB) & IW_L5I4X1_X_UNSHIFTED_MASK) 394212397c6Schristos #define SET_IW_L5I4X1_X(V) (((V) & IW_L5I4X1_X_UNSHIFTED_MASK) << IW_L5I4X1_X_LSB) 395212397c6Schristos 396212397c6Schristos #define IW_T2X1L3_A3_LSB 6 397212397c6Schristos #define IW_T2X1L3_A3_SIZE 3 398212397c6Schristos #define IW_T2X1L3_A3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X1L3_A3_SIZE)) 399212397c6Schristos #define IW_T2X1L3_A3_SHIFTED_MASK (IW_T2X1L3_A3_UNSHIFTED_MASK << IW_T2X1L3_A3_LSB) 400212397c6Schristos #define GET_IW_T2X1L3_A3(W) (((W) >> IW_T2X1L3_A3_LSB) & IW_T2X1L3_A3_UNSHIFTED_MASK) 401212397c6Schristos #define SET_IW_T2X1L3_A3(V) (((V) & IW_T2X1L3_A3_UNSHIFTED_MASK) << IW_T2X1L3_A3_LSB) 402212397c6Schristos 403212397c6Schristos #define IW_T2X1L3_B3_LSB 9 404212397c6Schristos #define IW_T2X1L3_B3_SIZE 3 405212397c6Schristos #define IW_T2X1L3_B3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X1L3_B3_SIZE)) 406212397c6Schristos #define IW_T2X1L3_B3_SHIFTED_MASK (IW_T2X1L3_B3_UNSHIFTED_MASK << IW_T2X1L3_B3_LSB) 407212397c6Schristos #define GET_IW_T2X1L3_B3(W) (((W) >> IW_T2X1L3_B3_LSB) & IW_T2X1L3_B3_UNSHIFTED_MASK) 408212397c6Schristos #define SET_IW_T2X1L3_B3(V) (((V) & IW_T2X1L3_B3_UNSHIFTED_MASK) << IW_T2X1L3_B3_LSB) 409212397c6Schristos 410212397c6Schristos #define IW_T2X1L3_SHAMT_LSB 12 411212397c6Schristos #define IW_T2X1L3_SHAMT_SIZE 3 412212397c6Schristos #define IW_T2X1L3_SHAMT_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X1L3_SHAMT_SIZE)) 413212397c6Schristos #define IW_T2X1L3_SHAMT_SHIFTED_MASK (IW_T2X1L3_SHAMT_UNSHIFTED_MASK << IW_T2X1L3_SHAMT_LSB) 414212397c6Schristos #define GET_IW_T2X1L3_SHAMT(W) (((W) >> IW_T2X1L3_SHAMT_LSB) & IW_T2X1L3_SHAMT_UNSHIFTED_MASK) 415212397c6Schristos #define SET_IW_T2X1L3_SHAMT(V) (((V) & IW_T2X1L3_SHAMT_UNSHIFTED_MASK) << IW_T2X1L3_SHAMT_LSB) 416212397c6Schristos 417212397c6Schristos #define IW_T2X1L3_X_LSB 15 418212397c6Schristos #define IW_T2X1L3_X_SIZE 1 419212397c6Schristos #define IW_T2X1L3_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X1L3_X_SIZE)) 420212397c6Schristos #define IW_T2X1L3_X_SHIFTED_MASK (IW_T2X1L3_X_UNSHIFTED_MASK << IW_T2X1L3_X_LSB) 421212397c6Schristos #define GET_IW_T2X1L3_X(W) (((W) >> IW_T2X1L3_X_LSB) & IW_T2X1L3_X_UNSHIFTED_MASK) 422212397c6Schristos #define SET_IW_T2X1L3_X(V) (((V) & IW_T2X1L3_X_UNSHIFTED_MASK) << IW_T2X1L3_X_LSB) 423212397c6Schristos 424212397c6Schristos #define IW_T2X1I3_A3_LSB 6 425212397c6Schristos #define IW_T2X1I3_A3_SIZE 3 426212397c6Schristos #define IW_T2X1I3_A3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X1I3_A3_SIZE)) 427212397c6Schristos #define IW_T2X1I3_A3_SHIFTED_MASK (IW_T2X1I3_A3_UNSHIFTED_MASK << IW_T2X1I3_A3_LSB) 428212397c6Schristos #define GET_IW_T2X1I3_A3(W) (((W) >> IW_T2X1I3_A3_LSB) & IW_T2X1I3_A3_UNSHIFTED_MASK) 429212397c6Schristos #define SET_IW_T2X1I3_A3(V) (((V) & IW_T2X1I3_A3_UNSHIFTED_MASK) << IW_T2X1I3_A3_LSB) 430212397c6Schristos 431212397c6Schristos #define IW_T2X1I3_B3_LSB 9 432212397c6Schristos #define IW_T2X1I3_B3_SIZE 3 433212397c6Schristos #define IW_T2X1I3_B3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X1I3_B3_SIZE)) 434212397c6Schristos #define IW_T2X1I3_B3_SHIFTED_MASK (IW_T2X1I3_B3_UNSHIFTED_MASK << IW_T2X1I3_B3_LSB) 435212397c6Schristos #define GET_IW_T2X1I3_B3(W) (((W) >> IW_T2X1I3_B3_LSB) & IW_T2X1I3_B3_UNSHIFTED_MASK) 436212397c6Schristos #define SET_IW_T2X1I3_B3(V) (((V) & IW_T2X1I3_B3_UNSHIFTED_MASK) << IW_T2X1I3_B3_LSB) 437212397c6Schristos 438212397c6Schristos #define IW_T2X1I3_IMM3_LSB 12 439212397c6Schristos #define IW_T2X1I3_IMM3_SIZE 3 440212397c6Schristos #define IW_T2X1I3_IMM3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X1I3_IMM3_SIZE)) 441212397c6Schristos #define IW_T2X1I3_IMM3_SHIFTED_MASK (IW_T2X1I3_IMM3_UNSHIFTED_MASK << IW_T2X1I3_IMM3_LSB) 442212397c6Schristos #define GET_IW_T2X1I3_IMM3(W) (((W) >> IW_T2X1I3_IMM3_LSB) & IW_T2X1I3_IMM3_UNSHIFTED_MASK) 443212397c6Schristos #define SET_IW_T2X1I3_IMM3(V) (((V) & IW_T2X1I3_IMM3_UNSHIFTED_MASK) << IW_T2X1I3_IMM3_LSB) 444212397c6Schristos 445212397c6Schristos #define IW_T2X1I3_X_LSB 15 446212397c6Schristos #define IW_T2X1I3_X_SIZE 1 447212397c6Schristos #define IW_T2X1I3_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X1I3_X_SIZE)) 448212397c6Schristos #define IW_T2X1I3_X_SHIFTED_MASK (IW_T2X1I3_X_UNSHIFTED_MASK << IW_T2X1I3_X_LSB) 449212397c6Schristos #define GET_IW_T2X1I3_X(W) (((W) >> IW_T2X1I3_X_LSB) & IW_T2X1I3_X_UNSHIFTED_MASK) 450212397c6Schristos #define SET_IW_T2X1I3_X(V) (((V) & IW_T2X1I3_X_UNSHIFTED_MASK) << IW_T2X1I3_X_LSB) 451212397c6Schristos 452212397c6Schristos #define IW_T3X1_A3_LSB 6 453212397c6Schristos #define IW_T3X1_A3_SIZE 3 454212397c6Schristos #define IW_T3X1_A3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T3X1_A3_SIZE)) 455212397c6Schristos #define IW_T3X1_A3_SHIFTED_MASK (IW_T3X1_A3_UNSHIFTED_MASK << IW_T3X1_A3_LSB) 456212397c6Schristos #define GET_IW_T3X1_A3(W) (((W) >> IW_T3X1_A3_LSB) & IW_T3X1_A3_UNSHIFTED_MASK) 457212397c6Schristos #define SET_IW_T3X1_A3(V) (((V) & IW_T3X1_A3_UNSHIFTED_MASK) << IW_T3X1_A3_LSB) 458212397c6Schristos 459212397c6Schristos #define IW_T3X1_B3_LSB 9 460212397c6Schristos #define IW_T3X1_B3_SIZE 3 461212397c6Schristos #define IW_T3X1_B3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T3X1_B3_SIZE)) 462212397c6Schristos #define IW_T3X1_B3_SHIFTED_MASK (IW_T3X1_B3_UNSHIFTED_MASK << IW_T3X1_B3_LSB) 463212397c6Schristos #define GET_IW_T3X1_B3(W) (((W) >> IW_T3X1_B3_LSB) & IW_T3X1_B3_UNSHIFTED_MASK) 464212397c6Schristos #define SET_IW_T3X1_B3(V) (((V) & IW_T3X1_B3_UNSHIFTED_MASK) << IW_T3X1_B3_LSB) 465212397c6Schristos 466212397c6Schristos #define IW_T3X1_C3_LSB 12 467212397c6Schristos #define IW_T3X1_C3_SIZE 3 468212397c6Schristos #define IW_T3X1_C3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T3X1_C3_SIZE)) 469212397c6Schristos #define IW_T3X1_C3_SHIFTED_MASK (IW_T3X1_C3_UNSHIFTED_MASK << IW_T3X1_C3_LSB) 470212397c6Schristos #define GET_IW_T3X1_C3(W) (((W) >> IW_T3X1_C3_LSB) & IW_T3X1_C3_UNSHIFTED_MASK) 471212397c6Schristos #define SET_IW_T3X1_C3(V) (((V) & IW_T3X1_C3_UNSHIFTED_MASK) << IW_T3X1_C3_LSB) 472212397c6Schristos 473212397c6Schristos #define IW_T3X1_X_LSB 15 474212397c6Schristos #define IW_T3X1_X_SIZE 1 475212397c6Schristos #define IW_T3X1_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T3X1_X_SIZE)) 476212397c6Schristos #define IW_T3X1_X_SHIFTED_MASK (IW_T3X1_X_UNSHIFTED_MASK << IW_T3X1_X_LSB) 477212397c6Schristos #define GET_IW_T3X1_X(W) (((W) >> IW_T3X1_X_LSB) & IW_T3X1_X_UNSHIFTED_MASK) 478212397c6Schristos #define SET_IW_T3X1_X(V) (((V) & IW_T3X1_X_UNSHIFTED_MASK) << IW_T3X1_X_LSB) 479212397c6Schristos 480212397c6Schristos /* The X field for all three R.N-class instruction formats is represented 481212397c6Schristos here as 4 bits, including the bits defined as constant 0 or 1 that 482212397c6Schristos determine which of the formats T2X3, F1X1, or X2L5 it is. */ 483212397c6Schristos #define IW_R_N_X_LSB 12 484212397c6Schristos #define IW_R_N_X_SIZE 4 485212397c6Schristos #define IW_R_N_X_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_R_N_X_SIZE)) 486212397c6Schristos #define IW_R_N_X_SHIFTED_MASK (IW_R_N_X_UNSHIFTED_MASK << IW_R_N_X_LSB) 487212397c6Schristos #define GET_IW_R_N_X(W) (((W) >> IW_R_N_X_LSB) & IW_R_N_X_UNSHIFTED_MASK) 488212397c6Schristos #define SET_IW_R_N_X(V) (((V) & IW_R_N_X_UNSHIFTED_MASK) << IW_R_N_X_LSB) 489212397c6Schristos 490212397c6Schristos #define IW_T2X3_A3_LSB 6 491212397c6Schristos #define IW_T2X3_A3_SIZE 3 492212397c6Schristos #define IW_T2X3_A3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X3_A3_SIZE)) 493212397c6Schristos #define IW_T2X3_A3_SHIFTED_MASK (IW_T2X3_A3_UNSHIFTED_MASK << IW_T2X3_A3_LSB) 494212397c6Schristos #define GET_IW_T2X3_A3(W) (((W) >> IW_T2X3_A3_LSB) & IW_T2X3_A3_UNSHIFTED_MASK) 495212397c6Schristos #define SET_IW_T2X3_A3(V) (((V) & IW_T2X3_A3_UNSHIFTED_MASK) << IW_T2X3_A3_LSB) 496212397c6Schristos 497212397c6Schristos #define IW_T2X3_B3_LSB 9 498212397c6Schristos #define IW_T2X3_B3_SIZE 3 499212397c6Schristos #define IW_T2X3_B3_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_T2X3_B3_SIZE)) 500212397c6Schristos #define IW_T2X3_B3_SHIFTED_MASK (IW_T2X3_B3_UNSHIFTED_MASK << IW_T2X3_B3_LSB) 501212397c6Schristos #define GET_IW_T2X3_B3(W) (((W) >> IW_T2X3_B3_LSB) & IW_T2X3_B3_UNSHIFTED_MASK) 502212397c6Schristos #define SET_IW_T2X3_B3(V) (((V) & IW_T2X3_B3_UNSHIFTED_MASK) << IW_T2X3_B3_LSB) 503212397c6Schristos 504212397c6Schristos #define IW_F1X1_A_LSB 6 505212397c6Schristos #define IW_F1X1_A_SIZE 5 506212397c6Schristos #define IW_F1X1_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X1_A_SIZE)) 507212397c6Schristos #define IW_F1X1_A_SHIFTED_MASK (IW_F1X1_A_UNSHIFTED_MASK << IW_F1X1_A_LSB) 508212397c6Schristos #define GET_IW_F1X1_A(W) (((W) >> IW_F1X1_A_LSB) & IW_F1X1_A_UNSHIFTED_MASK) 509212397c6Schristos #define SET_IW_F1X1_A(V) (((V) & IW_F1X1_A_UNSHIFTED_MASK) << IW_F1X1_A_LSB) 510212397c6Schristos 511212397c6Schristos #define IW_F1X1_RSV_LSB 11 512212397c6Schristos #define IW_F1X1_RSV_SIZE 1 513212397c6Schristos #define IW_F1X1_RSV_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1X1_RSV_SIZE)) 514212397c6Schristos #define IW_F1X1_RSV_SHIFTED_MASK (IW_F1X1_RSV_UNSHIFTED_MASK << IW_F1X1_RSV_LSB) 515212397c6Schristos #define GET_IW_F1X1_RSV(W) (((W) >> IW_F1X1_RSV_LSB) & IW_F1X1_RSV_UNSHIFTED_MASK) 516212397c6Schristos #define SET_IW_F1X1_RSV(V) (((V) & IW_F1X1_RSV_UNSHIFTED_MASK) << IW_F1X1_RSV_LSB) 517212397c6Schristos 518212397c6Schristos #define IW_X2L5_IMM5_LSB 6 519212397c6Schristos #define IW_X2L5_IMM5_SIZE 5 520212397c6Schristos #define IW_X2L5_IMM5_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_X2L5_IMM5_SIZE)) 521212397c6Schristos #define IW_X2L5_IMM5_SHIFTED_MASK (IW_X2L5_IMM5_UNSHIFTED_MASK << IW_X2L5_IMM5_LSB) 522212397c6Schristos #define GET_IW_X2L5_IMM5(W) (((W) >> IW_X2L5_IMM5_LSB) & IW_X2L5_IMM5_UNSHIFTED_MASK) 523212397c6Schristos #define SET_IW_X2L5_IMM5(V) (((V) & IW_X2L5_IMM5_UNSHIFTED_MASK) << IW_X2L5_IMM5_LSB) 524212397c6Schristos 525212397c6Schristos #define IW_X2L5_RSV_LSB 11 526212397c6Schristos #define IW_X2L5_RSV_SIZE 1 527212397c6Schristos #define IW_X2L5_RSV_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_X2L5_RSV_SIZE)) 528212397c6Schristos #define IW_X2L5_RSV_SHIFTED_MASK (IW_X2L5_RSV_UNSHIFTED_MASK << IW_X2L5_RSV_LSB) 529212397c6Schristos #define GET_IW_X2L5_RSV(W) (((W) >> IW_X2L5_RSV_LSB) & IW_X2L5_RSV_UNSHIFTED_MASK) 530212397c6Schristos #define SET_IW_X2L5_RSV(V) (((V) & IW_X2L5_RSV_UNSHIFTED_MASK) << IW_X2L5_RSV_LSB) 531212397c6Schristos 532212397c6Schristos #define IW_F1I5_IMM5_LSB 6 533212397c6Schristos #define IW_F1I5_IMM5_SIZE 5 534212397c6Schristos #define IW_F1I5_IMM5_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1I5_IMM5_SIZE)) 535212397c6Schristos #define IW_F1I5_IMM5_SHIFTED_MASK (IW_F1I5_IMM5_UNSHIFTED_MASK << IW_F1I5_IMM5_LSB) 536212397c6Schristos #define GET_IW_F1I5_IMM5(W) (((W) >> IW_F1I5_IMM5_LSB) & IW_F1I5_IMM5_UNSHIFTED_MASK) 537212397c6Schristos #define SET_IW_F1I5_IMM5(V) (((V) & IW_F1I5_IMM5_UNSHIFTED_MASK) << IW_F1I5_IMM5_LSB) 538212397c6Schristos 539212397c6Schristos #define IW_F1I5_B_LSB 11 540212397c6Schristos #define IW_F1I5_B_SIZE 5 541212397c6Schristos #define IW_F1I5_B_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F1I5_B_SIZE)) 542212397c6Schristos #define IW_F1I5_B_SHIFTED_MASK (IW_F1I5_B_UNSHIFTED_MASK << IW_F1I5_B_LSB) 543212397c6Schristos #define GET_IW_F1I5_B(W) (((W) >> IW_F1I5_B_LSB) & IW_F1I5_B_UNSHIFTED_MASK) 544212397c6Schristos #define SET_IW_F1I5_B(V) (((V) & IW_F1I5_B_UNSHIFTED_MASK) << IW_F1I5_B_LSB) 545212397c6Schristos 546212397c6Schristos #define IW_F2_A_LSB 6 547212397c6Schristos #define IW_F2_A_SIZE 5 548212397c6Schristos #define IW_F2_A_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2_A_SIZE)) 549212397c6Schristos #define IW_F2_A_SHIFTED_MASK (IW_F2_A_UNSHIFTED_MASK << IW_F2_A_LSB) 550212397c6Schristos #define GET_IW_F2_A(W) (((W) >> IW_F2_A_LSB) & IW_F2_A_UNSHIFTED_MASK) 551212397c6Schristos #define SET_IW_F2_A(V) (((V) & IW_F2_A_UNSHIFTED_MASK) << IW_F2_A_LSB) 552212397c6Schristos 553212397c6Schristos #define IW_F2_B_LSB 11 554212397c6Schristos #define IW_F2_B_SIZE 5 555212397c6Schristos #define IW_F2_B_UNSHIFTED_MASK (0xffffffffu >> (32 - IW_F2_B_SIZE)) 556212397c6Schristos #define IW_F2_B_SHIFTED_MASK (IW_F2_B_UNSHIFTED_MASK << IW_F2_B_LSB) 557212397c6Schristos #define GET_IW_F2_B(W) (((W) >> IW_F2_B_LSB) & IW_F2_B_UNSHIFTED_MASK) 558212397c6Schristos #define SET_IW_F2_B(V) (((V) & IW_F2_B_UNSHIFTED_MASK) << IW_F2_B_LSB) 559212397c6Schristos 560212397c6Schristos /* R2 opcodes. */ 561212397c6Schristos #define R2_OP_CALL 0 562212397c6Schristos #define R2_OP_AS_N 1 563212397c6Schristos #define R2_OP_BR 2 564212397c6Schristos #define R2_OP_BR_N 3 565212397c6Schristos #define R2_OP_ADDI 4 566212397c6Schristos #define R2_OP_LDBU_N 5 567212397c6Schristos #define R2_OP_LDBU 6 568212397c6Schristos #define R2_OP_LDB 7 569212397c6Schristos #define R2_OP_JMPI 8 570212397c6Schristos #define R2_OP_R_N 9 571212397c6Schristos #define R2_OP_ANDI_N 11 572212397c6Schristos #define R2_OP_ANDI 12 573212397c6Schristos #define R2_OP_LDHU_N 13 574212397c6Schristos #define R2_OP_LDHU 14 575212397c6Schristos #define R2_OP_LDH 15 576212397c6Schristos #define R2_OP_ASI_N 17 577212397c6Schristos #define R2_OP_BGE 18 578212397c6Schristos #define R2_OP_LDWSP_N 19 579212397c6Schristos #define R2_OP_ORI 20 580212397c6Schristos #define R2_OP_LDW_N 21 581212397c6Schristos #define R2_OP_CMPGEI 22 582212397c6Schristos #define R2_OP_LDW 23 583212397c6Schristos #define R2_OP_SHI_N 25 584212397c6Schristos #define R2_OP_BLT 26 585212397c6Schristos #define R2_OP_MOVI_N 27 586212397c6Schristos #define R2_OP_XORI 28 587212397c6Schristos #define R2_OP_STZ_N 29 588212397c6Schristos #define R2_OP_CMPLTI 30 589212397c6Schristos #define R2_OP_ANDCI 31 590212397c6Schristos #define R2_OP_OPX 32 591212397c6Schristos #define R2_OP_PP_N 33 592212397c6Schristos #define R2_OP_BNE 34 593212397c6Schristos #define R2_OP_BNEZ_N 35 594212397c6Schristos #define R2_OP_MULI 36 595212397c6Schristos #define R2_OP_STB_N 37 596212397c6Schristos #define R2_OP_CMPNEI 38 597212397c6Schristos #define R2_OP_STB 39 598212397c6Schristos #define R2_OP_I12 40 599212397c6Schristos #define R2_OP_SPI_N 41 600212397c6Schristos #define R2_OP_BEQ 42 601212397c6Schristos #define R2_OP_BEQZ_N 43 602212397c6Schristos #define R2_OP_ANDHI 44 603212397c6Schristos #define R2_OP_STH_N 45 604212397c6Schristos #define R2_OP_CMPEQI 46 605212397c6Schristos #define R2_OP_STH 47 606212397c6Schristos #define R2_OP_CUSTOM 48 607212397c6Schristos #define R2_OP_BGEU 50 608212397c6Schristos #define R2_OP_STWSP_N 51 609212397c6Schristos #define R2_OP_ORHI 52 610212397c6Schristos #define R2_OP_STW_N 53 611212397c6Schristos #define R2_OP_CMPGEUI 54 612212397c6Schristos #define R2_OP_STW 55 613212397c6Schristos #define R2_OP_BLTU 58 614212397c6Schristos #define R2_OP_MOV_N 59 615212397c6Schristos #define R2_OP_XORHI 60 616212397c6Schristos #define R2_OP_SPADDI_N 61 617212397c6Schristos #define R2_OP_CMPLTUI 62 618212397c6Schristos #define R2_OP_ANDCHI 63 619212397c6Schristos 620212397c6Schristos #define R2_OPX_WRPIE 0 621212397c6Schristos #define R2_OPX_ERET 1 622212397c6Schristos #define R2_OPX_ROLI 2 623212397c6Schristos #define R2_OPX_ROL 3 624212397c6Schristos #define R2_OPX_FLUSHP 4 625212397c6Schristos #define R2_OPX_RET 5 626212397c6Schristos #define R2_OPX_NOR 6 627212397c6Schristos #define R2_OPX_MULXUU 7 628212397c6Schristos #define R2_OPX_ENI 8 629212397c6Schristos #define R2_OPX_BRET 9 630212397c6Schristos #define R2_OPX_ROR 11 631212397c6Schristos #define R2_OPX_FLUSHI 12 632212397c6Schristos #define R2_OPX_JMP 13 633212397c6Schristos #define R2_OPX_AND 14 634212397c6Schristos #define R2_OPX_CMPGE 16 635212397c6Schristos #define R2_OPX_SLLI 18 636212397c6Schristos #define R2_OPX_SLL 19 637212397c6Schristos #define R2_OPX_WRPRS 20 638212397c6Schristos #define R2_OPX_OR 22 639212397c6Schristos #define R2_OPX_MULXSU 23 640212397c6Schristos #define R2_OPX_CMPLT 24 641212397c6Schristos #define R2_OPX_SRLI 26 642212397c6Schristos #define R2_OPX_SRL 27 643212397c6Schristos #define R2_OPX_NEXTPC 28 644212397c6Schristos #define R2_OPX_CALLR 29 645212397c6Schristos #define R2_OPX_XOR 30 646212397c6Schristos #define R2_OPX_MULXSS 31 647212397c6Schristos #define R2_OPX_CMPNE 32 648212397c6Schristos #define R2_OPX_INSERT 35 649212397c6Schristos #define R2_OPX_DIVU 36 650212397c6Schristos #define R2_OPX_DIV 37 651212397c6Schristos #define R2_OPX_RDCTL 38 652212397c6Schristos #define R2_OPX_MUL 39 653212397c6Schristos #define R2_OPX_CMPEQ 40 654212397c6Schristos #define R2_OPX_INITI 41 655212397c6Schristos #define R2_OPX_MERGE 43 656212397c6Schristos #define R2_OPX_HBREAK 44 657212397c6Schristos #define R2_OPX_TRAP 45 658212397c6Schristos #define R2_OPX_WRCTL 46 659212397c6Schristos #define R2_OPX_CMPGEU 48 660212397c6Schristos #define R2_OPX_ADD 49 661212397c6Schristos #define R2_OPX_EXTRACT 51 662212397c6Schristos #define R2_OPX_BREAK 52 663212397c6Schristos #define R2_OPX_LDEX 53 664212397c6Schristos #define R2_OPX_SYNC 54 665212397c6Schristos #define R2_OPX_LDSEX 55 666212397c6Schristos #define R2_OPX_CMPLTU 56 667212397c6Schristos #define R2_OPX_SUB 57 668212397c6Schristos #define R2_OPX_SRAI 58 669212397c6Schristos #define R2_OPX_SRA 59 670212397c6Schristos #define R2_OPX_STEX 61 671212397c6Schristos #define R2_OPX_STSEX 63 672212397c6Schristos 673212397c6Schristos #define R2_I12_LDBIO 0 674212397c6Schristos #define R2_I12_STBIO 1 675212397c6Schristos #define R2_I12_LDBUIO 2 676212397c6Schristos #define R2_I12_DCACHE 3 677212397c6Schristos #define R2_I12_LDHIO 4 678212397c6Schristos #define R2_I12_STHIO 5 679212397c6Schristos #define R2_I12_LDHUIO 6 680212397c6Schristos #define R2_I12_RDPRS 7 681212397c6Schristos #define R2_I12_LDWIO 8 682212397c6Schristos #define R2_I12_STWIO 9 683212397c6Schristos #define R2_I12_LDWM 12 684212397c6Schristos #define R2_I12_STWM 13 685212397c6Schristos 686212397c6Schristos #define R2_DCACHE_INITD 0 687212397c6Schristos #define R2_DCACHE_INITDA 1 688212397c6Schristos #define R2_DCACHE_FLUSHD 2 689212397c6Schristos #define R2_DCACHE_FLUSHDA 3 690212397c6Schristos 691212397c6Schristos #define R2_AS_N_ADD_N 0 692212397c6Schristos #define R2_AS_N_SUB_N 1 693212397c6Schristos 694212397c6Schristos #define R2_R_N_AND_N 0 695212397c6Schristos #define R2_R_N_OR_N 2 696212397c6Schristos #define R2_R_N_XOR_N 3 697212397c6Schristos #define R2_R_N_SLL_N 4 698212397c6Schristos #define R2_R_N_SRL_N 5 699212397c6Schristos #define R2_R_N_NOT_N 6 700212397c6Schristos #define R2_R_N_NEG_N 7 701212397c6Schristos #define R2_R_N_CALLR_N 8 702212397c6Schristos #define R2_R_N_JMPR_N 10 703212397c6Schristos #define R2_R_N_BREAK_N 12 704212397c6Schristos #define R2_R_N_TRAP_N 13 705212397c6Schristos #define R2_R_N_RET_N 14 706212397c6Schristos 707212397c6Schristos #define R2_SPI_N_SPINCI_N 0 708212397c6Schristos #define R2_SPI_N_SPDECI_N 1 709212397c6Schristos 710212397c6Schristos #define R2_ASI_N_ADDI_N 0 711212397c6Schristos #define R2_ASI_N_SUBI_N 1 712212397c6Schristos 713212397c6Schristos #define R2_SHI_N_SLLI_N 0 714212397c6Schristos #define R2_SHI_N_SRLI_N 1 715212397c6Schristos 716212397c6Schristos #define R2_PP_N_POP_N 0 717212397c6Schristos #define R2_PP_N_PUSH_N 1 718212397c6Schristos 719212397c6Schristos #define R2_STZ_N_STWZ_N 0 720212397c6Schristos #define R2_STZ_N_STBZ_N 1 721212397c6Schristos 722212397c6Schristos /* Convenience macros for R2 encodings. */ 723212397c6Schristos 724212397c6Schristos #define MATCH_R2_OP(NAME) \ 725212397c6Schristos (SET_IW_R2_OP (R2_OP_##NAME)) 726212397c6Schristos #define MASK_R2_OP \ 727212397c6Schristos IW_R2_OP_SHIFTED_MASK 728212397c6Schristos 729212397c6Schristos #define MATCH_R2_OPX0(NAME) \ 730212397c6Schristos (SET_IW_R2_OP (R2_OP_OPX) | SET_IW_OPX_X (R2_OPX_##NAME)) 731212397c6Schristos #define MASK_R2_OPX0 \ 732212397c6Schristos (IW_R2_OP_SHIFTED_MASK | IW_OPX_X_SHIFTED_MASK \ 733212397c6Schristos | IW_F3X6L5_IMM5_SHIFTED_MASK) 734212397c6Schristos 735212397c6Schristos #define MATCH_R2_OPX(NAME, A, B, C) \ 736212397c6Schristos (MATCH_R2_OPX0 (NAME) | SET_IW_F3X6L5_A (A) | SET_IW_F3X6L5_B (B) \ 737212397c6Schristos | SET_IW_F3X6L5_C (C)) 738212397c6Schristos #define MASK_R2_OPX(A, B, C, N) \ 739212397c6Schristos (IW_R2_OP_SHIFTED_MASK | IW_OPX_X_SHIFTED_MASK \ 740212397c6Schristos | (A ? IW_F3X6L5_A_SHIFTED_MASK : 0) \ 741212397c6Schristos | (B ? IW_F3X6L5_B_SHIFTED_MASK : 0) \ 742212397c6Schristos | (C ? IW_F3X6L5_C_SHIFTED_MASK : 0) \ 743212397c6Schristos | (N ? IW_F3X6L5_IMM5_SHIFTED_MASK : 0)) 744212397c6Schristos 745212397c6Schristos #define MATCH_R2_I12(NAME) \ 746212397c6Schristos (SET_IW_R2_OP (R2_OP_I12) | SET_IW_I12_X (R2_I12_##NAME)) 747212397c6Schristos #define MASK_R2_I12 \ 748212397c6Schristos (IW_R2_OP_SHIFTED_MASK | IW_I12_X_SHIFTED_MASK ) 749212397c6Schristos 750212397c6Schristos #define MATCH_R2_DCACHE(NAME) \ 751212397c6Schristos (MATCH_R2_I12(DCACHE) | SET_IW_F1X4I12_X (R2_DCACHE_##NAME)) 752212397c6Schristos #define MASK_R2_DCACHE \ 753212397c6Schristos (MASK_R2_I12 | IW_F1X4I12_X_SHIFTED_MASK) 754212397c6Schristos 755212397c6Schristos #define MATCH_R2_R_N(NAME) \ 756212397c6Schristos (SET_IW_R2_OP (R2_OP_R_N) | SET_IW_R_N_X (R2_R_N_##NAME)) 757212397c6Schristos #define MASK_R2_R_N \ 758212397c6Schristos (IW_R2_OP_SHIFTED_MASK | IW_R_N_X_SHIFTED_MASK ) 759212397c6Schristos 760212397c6Schristos /* Match/mask macros for R2 instructions. */ 761212397c6Schristos 762212397c6Schristos #define MATCH_R2_ADD MATCH_R2_OPX0 (ADD) 763212397c6Schristos #define MASK_R2_ADD MASK_R2_OPX0 764212397c6Schristos #define MATCH_R2_ADDI MATCH_R2_OP (ADDI) 765212397c6Schristos #define MASK_R2_ADDI MASK_R2_OP 766212397c6Schristos #define MATCH_R2_ADD_N (MATCH_R2_OP (AS_N) | SET_IW_T3X1_X (R2_AS_N_ADD_N)) 767212397c6Schristos #define MASK_R2_ADD_N (MASK_R2_OP | IW_T3X1_X_SHIFTED_MASK) 768212397c6Schristos #define MATCH_R2_ADDI_N (MATCH_R2_OP (ASI_N) | SET_IW_T2X1I3_X (R2_ASI_N_ADDI_N)) 769212397c6Schristos #define MASK_R2_ADDI_N (MASK_R2_OP | IW_T2X1I3_X_SHIFTED_MASK) 770212397c6Schristos #define MATCH_R2_AND MATCH_R2_OPX0 (AND) 771212397c6Schristos #define MASK_R2_AND MASK_R2_OPX0 772212397c6Schristos #define MATCH_R2_ANDCHI MATCH_R2_OP (ANDCHI) 773212397c6Schristos #define MASK_R2_ANDCHI MASK_R2_OP 774212397c6Schristos #define MATCH_R2_ANDCI MATCH_R2_OP (ANDCI) 775212397c6Schristos #define MASK_R2_ANDCI MASK_R2_OP 776212397c6Schristos #define MATCH_R2_ANDHI MATCH_R2_OP (ANDHI) 777212397c6Schristos #define MASK_R2_ANDHI MASK_R2_OP 778212397c6Schristos #define MATCH_R2_ANDI MATCH_R2_OP (ANDI) 779212397c6Schristos #define MASK_R2_ANDI MASK_R2_OP 780212397c6Schristos #define MATCH_R2_ANDI_N MATCH_R2_OP (ANDI_N) 781212397c6Schristos #define MASK_R2_ANDI_N MASK_R2_OP 782212397c6Schristos #define MATCH_R2_AND_N MATCH_R2_R_N (AND_N) 783212397c6Schristos #define MASK_R2_AND_N MASK_R2_R_N 784212397c6Schristos #define MATCH_R2_BEQ MATCH_R2_OP (BEQ) 785212397c6Schristos #define MASK_R2_BEQ MASK_R2_OP 786212397c6Schristos #define MATCH_R2_BEQZ_N MATCH_R2_OP (BEQZ_N) 787212397c6Schristos #define MASK_R2_BEQZ_N MASK_R2_OP 788212397c6Schristos #define MATCH_R2_BGE MATCH_R2_OP (BGE) 789212397c6Schristos #define MASK_R2_BGE MASK_R2_OP 790212397c6Schristos #define MATCH_R2_BGEU MATCH_R2_OP (BGEU) 791212397c6Schristos #define MASK_R2_BGEU MASK_R2_OP 792212397c6Schristos #define MATCH_R2_BGT MATCH_R2_OP (BLT) 793212397c6Schristos #define MASK_R2_BGT MASK_R2_OP 794212397c6Schristos #define MATCH_R2_BGTU MATCH_R2_OP (BLTU) 795212397c6Schristos #define MASK_R2_BGTU MASK_R2_OP 796212397c6Schristos #define MATCH_R2_BLE MATCH_R2_OP (BGE) 797212397c6Schristos #define MASK_R2_BLE MASK_R2_OP 798212397c6Schristos #define MATCH_R2_BLEU MATCH_R2_OP (BGEU) 799212397c6Schristos #define MASK_R2_BLEU MASK_R2_OP 800212397c6Schristos #define MATCH_R2_BLT MATCH_R2_OP (BLT) 801212397c6Schristos #define MASK_R2_BLT MASK_R2_OP 802212397c6Schristos #define MATCH_R2_BLTU MATCH_R2_OP (BLTU) 803212397c6Schristos #define MASK_R2_BLTU MASK_R2_OP 804212397c6Schristos #define MATCH_R2_BNE MATCH_R2_OP (BNE) 805212397c6Schristos #define MASK_R2_BNE MASK_R2_OP 806212397c6Schristos #define MATCH_R2_BNEZ_N MATCH_R2_OP (BNEZ_N) 807212397c6Schristos #define MASK_R2_BNEZ_N MASK_R2_OP 808212397c6Schristos #define MATCH_R2_BR MATCH_R2_OP (BR) 809212397c6Schristos #define MASK_R2_BR MASK_R2_OP | IW_F2I16_A_SHIFTED_MASK | IW_F2I16_B_SHIFTED_MASK 810212397c6Schristos #define MATCH_R2_BREAK MATCH_R2_OPX (BREAK, 0, 0, 0x1e) 811212397c6Schristos #define MASK_R2_BREAK MASK_R2_OPX (1, 1, 1, 0) 812212397c6Schristos #define MATCH_R2_BREAK_N MATCH_R2_R_N (BREAK_N) 813212397c6Schristos #define MASK_R2_BREAK_N MASK_R2_R_N 814212397c6Schristos #define MATCH_R2_BRET MATCH_R2_OPX (BRET, 0x1e, 0, 0) 815212397c6Schristos #define MASK_R2_BRET MASK_R2_OPX (1, 1, 1, 1) 816212397c6Schristos #define MATCH_R2_BR_N MATCH_R2_OP (BR_N) 817212397c6Schristos #define MASK_R2_BR_N MASK_R2_OP 818212397c6Schristos #define MATCH_R2_CALL MATCH_R2_OP (CALL) 819212397c6Schristos #define MASK_R2_CALL MASK_R2_OP 820212397c6Schristos #define MATCH_R2_CALLR MATCH_R2_OPX (CALLR, 0, 0, 0x1f) 821212397c6Schristos #define MASK_R2_CALLR MASK_R2_OPX (0, 1, 1, 1) 822212397c6Schristos #define MATCH_R2_CALLR_N MATCH_R2_R_N (CALLR_N) 823212397c6Schristos #define MASK_R2_CALLR_N MASK_R2_R_N 824212397c6Schristos #define MATCH_R2_CMPEQ MATCH_R2_OPX0 (CMPEQ) 825212397c6Schristos #define MASK_R2_CMPEQ MASK_R2_OPX0 826212397c6Schristos #define MATCH_R2_CMPEQI MATCH_R2_OP (CMPEQI) 827212397c6Schristos #define MASK_R2_CMPEQI MASK_R2_OP 828212397c6Schristos #define MATCH_R2_CMPGE MATCH_R2_OPX0 (CMPGE) 829212397c6Schristos #define MASK_R2_CMPGE MASK_R2_OPX0 830212397c6Schristos #define MATCH_R2_CMPGEI MATCH_R2_OP (CMPGEI) 831212397c6Schristos #define MASK_R2_CMPGEI MASK_R2_OP 832212397c6Schristos #define MATCH_R2_CMPGEU MATCH_R2_OPX0 (CMPGEU) 833212397c6Schristos #define MASK_R2_CMPGEU MASK_R2_OPX0 834212397c6Schristos #define MATCH_R2_CMPGEUI MATCH_R2_OP (CMPGEUI) 835212397c6Schristos #define MASK_R2_CMPGEUI MASK_R2_OP 836212397c6Schristos #define MATCH_R2_CMPGT MATCH_R2_OPX0 (CMPLT) 837212397c6Schristos #define MASK_R2_CMPGT MASK_R2_OPX0 838212397c6Schristos #define MATCH_R2_CMPGTI MATCH_R2_OP (CMPGEI) 839212397c6Schristos #define MASK_R2_CMPGTI MASK_R2_OP 840212397c6Schristos #define MATCH_R2_CMPGTU MATCH_R2_OPX0 (CMPLTU) 841212397c6Schristos #define MASK_R2_CMPGTU MASK_R2_OPX0 842212397c6Schristos #define MATCH_R2_CMPGTUI MATCH_R2_OP (CMPGEUI) 843212397c6Schristos #define MASK_R2_CMPGTUI MASK_R2_OP 844212397c6Schristos #define MATCH_R2_CMPLE MATCH_R2_OPX0 (CMPGE) 845212397c6Schristos #define MASK_R2_CMPLE MASK_R2_OPX0 846212397c6Schristos #define MATCH_R2_CMPLEI MATCH_R2_OP (CMPLTI) 847212397c6Schristos #define MASK_R2_CMPLEI MASK_R2_OP 848212397c6Schristos #define MATCH_R2_CMPLEU MATCH_R2_OPX0 (CMPGEU) 849212397c6Schristos #define MASK_R2_CMPLEU MASK_R2_OPX0 850212397c6Schristos #define MATCH_R2_CMPLEUI MATCH_R2_OP (CMPLTUI) 851212397c6Schristos #define MASK_R2_CMPLEUI MASK_R2_OP 852212397c6Schristos #define MATCH_R2_CMPLT MATCH_R2_OPX0 (CMPLT) 853212397c6Schristos #define MASK_R2_CMPLT MASK_R2_OPX0 854212397c6Schristos #define MATCH_R2_CMPLTI MATCH_R2_OP (CMPLTI) 855212397c6Schristos #define MASK_R2_CMPLTI MASK_R2_OP 856212397c6Schristos #define MATCH_R2_CMPLTU MATCH_R2_OPX0 (CMPLTU) 857212397c6Schristos #define MASK_R2_CMPLTU MASK_R2_OPX0 858212397c6Schristos #define MATCH_R2_CMPLTUI MATCH_R2_OP (CMPLTUI) 859212397c6Schristos #define MASK_R2_CMPLTUI MASK_R2_OP 860212397c6Schristos #define MATCH_R2_CMPNE MATCH_R2_OPX0 (CMPNE) 861212397c6Schristos #define MASK_R2_CMPNE MASK_R2_OPX0 862212397c6Schristos #define MATCH_R2_CMPNEI MATCH_R2_OP (CMPNEI) 863212397c6Schristos #define MASK_R2_CMPNEI MASK_R2_OP 864212397c6Schristos #define MATCH_R2_CUSTOM MATCH_R2_OP (CUSTOM) 865212397c6Schristos #define MASK_R2_CUSTOM MASK_R2_OP 866212397c6Schristos #define MATCH_R2_DIV MATCH_R2_OPX0 (DIV) 867212397c6Schristos #define MASK_R2_DIV MASK_R2_OPX0 868212397c6Schristos #define MATCH_R2_DIVU MATCH_R2_OPX0 (DIVU) 869212397c6Schristos #define MASK_R2_DIVU MASK_R2_OPX0 870212397c6Schristos #define MATCH_R2_ENI MATCH_R2_OPX (ENI, 0, 0, 0) 871212397c6Schristos #define MASK_R2_ENI MASK_R2_OPX (1, 1, 1, 0) 872212397c6Schristos #define MATCH_R2_ERET MATCH_R2_OPX (ERET, 0x1d, 0x1e, 0) 873212397c6Schristos #define MASK_R2_ERET MASK_R2_OPX (1, 1, 1, 1) 874212397c6Schristos #define MATCH_R2_EXTRACT MATCH_R2_OPX (EXTRACT, 0, 0, 0) 875212397c6Schristos #define MASK_R2_EXTRACT MASK_R2_OPX (0, 0, 0, 0) 876212397c6Schristos #define MATCH_R2_FLUSHD MATCH_R2_DCACHE (FLUSHD) 877212397c6Schristos #define MASK_R2_FLUSHD MASK_R2_DCACHE 878212397c6Schristos #define MATCH_R2_FLUSHDA MATCH_R2_DCACHE (FLUSHDA) 879212397c6Schristos #define MASK_R2_FLUSHDA MASK_R2_DCACHE 880212397c6Schristos #define MATCH_R2_FLUSHI MATCH_R2_OPX (FLUSHI, 0, 0, 0) 881212397c6Schristos #define MASK_R2_FLUSHI MASK_R2_OPX (0, 1, 1, 1) 882212397c6Schristos #define MATCH_R2_FLUSHP MATCH_R2_OPX (FLUSHP, 0, 0, 0) 883212397c6Schristos #define MASK_R2_FLUSHP MASK_R2_OPX (1, 1, 1, 1) 884212397c6Schristos #define MATCH_R2_INITD MATCH_R2_DCACHE (INITD) 885212397c6Schristos #define MASK_R2_INITD MASK_R2_DCACHE 886212397c6Schristos #define MATCH_R2_INITDA MATCH_R2_DCACHE (INITDA) 887212397c6Schristos #define MASK_R2_INITDA MASK_R2_DCACHE 888212397c6Schristos #define MATCH_R2_INITI MATCH_R2_OPX (INITI, 0, 0, 0) 889212397c6Schristos #define MASK_R2_INITI MASK_R2_OPX (0, 1, 1, 1) 890212397c6Schristos #define MATCH_R2_INSERT MATCH_R2_OPX (INSERT, 0, 0, 0) 891212397c6Schristos #define MASK_R2_INSERT MASK_R2_OPX (0, 0, 0, 0) 892212397c6Schristos #define MATCH_R2_JMP MATCH_R2_OPX (JMP, 0, 0, 0) 893212397c6Schristos #define MASK_R2_JMP MASK_R2_OPX (0, 1, 1, 1) 894212397c6Schristos #define MATCH_R2_JMPI MATCH_R2_OP (JMPI) 895212397c6Schristos #define MASK_R2_JMPI MASK_R2_OP 896212397c6Schristos #define MATCH_R2_JMPR_N MATCH_R2_R_N (JMPR_N) 897212397c6Schristos #define MASK_R2_JMPR_N MASK_R2_R_N 898212397c6Schristos #define MATCH_R2_LDB MATCH_R2_OP (LDB) 899212397c6Schristos #define MASK_R2_LDB MASK_R2_OP 900212397c6Schristos #define MATCH_R2_LDBIO MATCH_R2_I12 (LDBIO) 901212397c6Schristos #define MASK_R2_LDBIO MASK_R2_I12 902212397c6Schristos #define MATCH_R2_LDBU MATCH_R2_OP (LDBU) 903212397c6Schristos #define MASK_R2_LDBU MASK_R2_OP 904212397c6Schristos #define MATCH_R2_LDBUIO MATCH_R2_I12 (LDBUIO) 905212397c6Schristos #define MASK_R2_LDBUIO MASK_R2_I12 906212397c6Schristos #define MATCH_R2_LDBU_N MATCH_R2_OP (LDBU_N) 907212397c6Schristos #define MASK_R2_LDBU_N MASK_R2_OP 908212397c6Schristos #define MATCH_R2_LDEX MATCH_R2_OPX (LDEX, 0, 0, 0) 909212397c6Schristos #define MASK_R2_LDEX MASK_R2_OPX (0, 1, 0, 1) 910212397c6Schristos #define MATCH_R2_LDH MATCH_R2_OP (LDH) 911212397c6Schristos #define MASK_R2_LDH MASK_R2_OP 912212397c6Schristos #define MATCH_R2_LDHIO MATCH_R2_I12 (LDHIO) 913212397c6Schristos #define MASK_R2_LDHIO MASK_R2_I12 914212397c6Schristos #define MATCH_R2_LDHU MATCH_R2_OP (LDHU) 915212397c6Schristos #define MASK_R2_LDHU MASK_R2_OP 916212397c6Schristos #define MATCH_R2_LDHUIO MATCH_R2_I12 (LDHUIO) 917212397c6Schristos #define MASK_R2_LDHUIO MASK_R2_I12 918212397c6Schristos #define MATCH_R2_LDHU_N MATCH_R2_OP (LDHU_N) 919212397c6Schristos #define MASK_R2_LDHU_N MASK_R2_OP 920212397c6Schristos #define MATCH_R2_LDSEX MATCH_R2_OPX (LDSEX, 0, 0, 0) 921212397c6Schristos #define MASK_R2_LDSEX MASK_R2_OPX (0, 1, 0, 1) 922212397c6Schristos #define MATCH_R2_LDW MATCH_R2_OP (LDW) 923212397c6Schristos #define MASK_R2_LDW MASK_R2_OP 924212397c6Schristos #define MATCH_R2_LDWIO MATCH_R2_I12 (LDWIO) 925212397c6Schristos #define MASK_R2_LDWIO MASK_R2_I12 926212397c6Schristos #define MATCH_R2_LDWM MATCH_R2_I12 (LDWM) 927212397c6Schristos #define MASK_R2_LDWM MASK_R2_I12 928212397c6Schristos #define MATCH_R2_LDWSP_N MATCH_R2_OP (LDWSP_N) 929212397c6Schristos #define MASK_R2_LDWSP_N MASK_R2_OP 930212397c6Schristos #define MATCH_R2_LDW_N MATCH_R2_OP (LDW_N) 931212397c6Schristos #define MASK_R2_LDW_N MASK_R2_OP 932212397c6Schristos #define MATCH_R2_MERGE MATCH_R2_OPX (MERGE, 0, 0, 0) 933212397c6Schristos #define MASK_R2_MERGE MASK_R2_OPX (0, 0, 0, 0) 934212397c6Schristos #define MATCH_R2_MOV MATCH_R2_OPX (ADD, 0, 0, 0) 935212397c6Schristos #define MASK_R2_MOV MASK_R2_OPX (0, 1, 0, 1) 936212397c6Schristos #define MATCH_R2_MOVHI MATCH_R2_OP (ORHI) | SET_IW_F2I16_A (0) 937212397c6Schristos #define MASK_R2_MOVHI MASK_R2_OP | IW_F2I16_A_SHIFTED_MASK 938212397c6Schristos #define MATCH_R2_MOVI MATCH_R2_OP (ADDI) | SET_IW_F2I16_A (0) 939212397c6Schristos #define MASK_R2_MOVI MASK_R2_OP | IW_F2I16_A_SHIFTED_MASK 940212397c6Schristos #define MATCH_R2_MOVUI MATCH_R2_OP (ORI) | SET_IW_F2I16_A (0) 941212397c6Schristos #define MASK_R2_MOVUI MASK_R2_OP | IW_F2I16_A_SHIFTED_MASK 942212397c6Schristos #define MATCH_R2_MOV_N MATCH_R2_OP (MOV_N) 943212397c6Schristos #define MASK_R2_MOV_N MASK_R2_OP 944212397c6Schristos #define MATCH_R2_MOVI_N MATCH_R2_OP (MOVI_N) 945212397c6Schristos #define MASK_R2_MOVI_N MASK_R2_OP 946212397c6Schristos #define MATCH_R2_MUL MATCH_R2_OPX0 (MUL) 947212397c6Schristos #define MASK_R2_MUL MASK_R2_OPX0 948212397c6Schristos #define MATCH_R2_MULI MATCH_R2_OP (MULI) 949212397c6Schristos #define MASK_R2_MULI MASK_R2_OP 950212397c6Schristos #define MATCH_R2_MULXSS MATCH_R2_OPX0 (MULXSS) 951212397c6Schristos #define MASK_R2_MULXSS MASK_R2_OPX0 952212397c6Schristos #define MATCH_R2_MULXSU MATCH_R2_OPX0 (MULXSU) 953212397c6Schristos #define MASK_R2_MULXSU MASK_R2_OPX0 954212397c6Schristos #define MATCH_R2_MULXUU MATCH_R2_OPX0 (MULXUU) 955212397c6Schristos #define MASK_R2_MULXUU MASK_R2_OPX0 956212397c6Schristos #define MATCH_R2_NEG_N MATCH_R2_R_N (NEG_N) 957212397c6Schristos #define MASK_R2_NEG_N MASK_R2_R_N 958212397c6Schristos #define MATCH_R2_NEXTPC MATCH_R2_OPX (NEXTPC, 0, 0, 0) 959212397c6Schristos #define MASK_R2_NEXTPC MASK_R2_OPX (1, 1, 0, 1) 960212397c6Schristos #define MATCH_R2_NOP MATCH_R2_OPX (ADD, 0, 0, 0) 961212397c6Schristos #define MASK_R2_NOP MASK_R2_OPX (1, 1, 1, 1) 962212397c6Schristos #define MATCH_R2_NOP_N (MATCH_R2_OP (MOV_N) | SET_IW_F2_A (0) | SET_IW_F2_B (0)) 963212397c6Schristos #define MASK_R2_NOP_N (MASK_R2_OP | IW_F2_A_SHIFTED_MASK | IW_F2_B_SHIFTED_MASK) 964212397c6Schristos #define MATCH_R2_NOR MATCH_R2_OPX0 (NOR) 965212397c6Schristos #define MASK_R2_NOR MASK_R2_OPX0 966212397c6Schristos #define MATCH_R2_NOT_N MATCH_R2_R_N (NOT_N) 967212397c6Schristos #define MASK_R2_NOT_N MASK_R2_R_N 968212397c6Schristos #define MATCH_R2_OR MATCH_R2_OPX0 (OR) 969212397c6Schristos #define MASK_R2_OR MASK_R2_OPX0 970212397c6Schristos #define MATCH_R2_OR_N MATCH_R2_R_N (OR_N) 971212397c6Schristos #define MASK_R2_OR_N MASK_R2_R_N 972212397c6Schristos #define MATCH_R2_ORHI MATCH_R2_OP (ORHI) 973212397c6Schristos #define MASK_R2_ORHI MASK_R2_OP 974212397c6Schristos #define MATCH_R2_ORI MATCH_R2_OP (ORI) 975212397c6Schristos #define MASK_R2_ORI MASK_R2_OP 976212397c6Schristos #define MATCH_R2_POP_N (MATCH_R2_OP (PP_N) | SET_IW_L5I4X1_X (R2_PP_N_POP_N)) 977212397c6Schristos #define MASK_R2_POP_N (MASK_R2_OP | IW_L5I4X1_X_SHIFTED_MASK) 978212397c6Schristos #define MATCH_R2_PUSH_N (MATCH_R2_OP (PP_N) | SET_IW_L5I4X1_X (R2_PP_N_PUSH_N)) 979212397c6Schristos #define MASK_R2_PUSH_N (MASK_R2_OP | IW_L5I4X1_X_SHIFTED_MASK) 980212397c6Schristos #define MATCH_R2_RDCTL MATCH_R2_OPX (RDCTL, 0, 0, 0) 981212397c6Schristos #define MASK_R2_RDCTL MASK_R2_OPX (1, 1, 0, 0) 982212397c6Schristos #define MATCH_R2_RDPRS MATCH_R2_I12 (RDPRS) 983212397c6Schristos #define MASK_R2_RDPRS MASK_R2_I12 984212397c6Schristos #define MATCH_R2_RET MATCH_R2_OPX (RET, 0x1f, 0, 0) 985212397c6Schristos #define MASK_R2_RET MASK_R2_OPX (1, 1, 1, 1) 986212397c6Schristos #define MATCH_R2_RET_N (MATCH_R2_R_N (RET_N) | SET_IW_X2L5_IMM5 (0)) 987212397c6Schristos #define MASK_R2_RET_N (MASK_R2_R_N | IW_X2L5_IMM5_SHIFTED_MASK) 988212397c6Schristos #define MATCH_R2_ROL MATCH_R2_OPX0 (ROL) 989212397c6Schristos #define MASK_R2_ROL MASK_R2_OPX0 990212397c6Schristos #define MATCH_R2_ROLI MATCH_R2_OPX (ROLI, 0, 0, 0) 991212397c6Schristos #define MASK_R2_ROLI MASK_R2_OPX (0, 1, 0, 0) 992212397c6Schristos #define MATCH_R2_ROR MATCH_R2_OPX0 (ROR) 993212397c6Schristos #define MASK_R2_ROR MASK_R2_OPX0 994212397c6Schristos #define MATCH_R2_SLL MATCH_R2_OPX0 (SLL) 995212397c6Schristos #define MASK_R2_SLL MASK_R2_OPX0 996212397c6Schristos #define MATCH_R2_SLLI MATCH_R2_OPX (SLLI, 0, 0, 0) 997212397c6Schristos #define MASK_R2_SLLI MASK_R2_OPX (0, 1, 0, 0) 998212397c6Schristos #define MATCH_R2_SLL_N MATCH_R2_R_N (SLL_N) 999212397c6Schristos #define MASK_R2_SLL_N MASK_R2_R_N 1000212397c6Schristos #define MATCH_R2_SLLI_N (MATCH_R2_OP (SHI_N) | SET_IW_T2X1L3_X (R2_SHI_N_SLLI_N)) 1001212397c6Schristos #define MASK_R2_SLLI_N (MASK_R2_OP | IW_T2X1L3_X_SHIFTED_MASK) 1002212397c6Schristos #define MATCH_R2_SPADDI_N MATCH_R2_OP (SPADDI_N) 1003212397c6Schristos #define MASK_R2_SPADDI_N MASK_R2_OP 1004212397c6Schristos #define MATCH_R2_SPDECI_N (MATCH_R2_OP (SPI_N) | SET_IW_X1I7_X (R2_SPI_N_SPDECI_N)) 1005212397c6Schristos #define MASK_R2_SPDECI_N (MASK_R2_OP | IW_X1I7_X_SHIFTED_MASK) 1006212397c6Schristos #define MATCH_R2_SPINCI_N (MATCH_R2_OP (SPI_N) | SET_IW_X1I7_X (R2_SPI_N_SPINCI_N)) 1007212397c6Schristos #define MASK_R2_SPINCI_N (MASK_R2_OP | IW_X1I7_X_SHIFTED_MASK) 1008212397c6Schristos #define MATCH_R2_SRA MATCH_R2_OPX0 (SRA) 1009212397c6Schristos #define MASK_R2_SRA MASK_R2_OPX0 1010212397c6Schristos #define MATCH_R2_SRAI MATCH_R2_OPX (SRAI, 0, 0, 0) 1011212397c6Schristos #define MASK_R2_SRAI MASK_R2_OPX (0, 1, 0, 0) 1012212397c6Schristos #define MATCH_R2_SRL MATCH_R2_OPX0 (SRL) 1013212397c6Schristos #define MASK_R2_SRL MASK_R2_OPX0 1014212397c6Schristos #define MATCH_R2_SRLI MATCH_R2_OPX (SRLI, 0, 0, 0) 1015212397c6Schristos #define MASK_R2_SRLI MASK_R2_OPX (0, 1, 0, 0) 1016212397c6Schristos #define MATCH_R2_SRL_N MATCH_R2_R_N (SRL_N) 1017212397c6Schristos #define MASK_R2_SRL_N MASK_R2_R_N 1018212397c6Schristos #define MATCH_R2_SRLI_N (MATCH_R2_OP (SHI_N) | SET_IW_T2X1L3_X (R2_SHI_N_SRLI_N)) 1019212397c6Schristos #define MASK_R2_SRLI_N (MASK_R2_OP | IW_T2X1L3_X_SHIFTED_MASK) 1020212397c6Schristos #define MATCH_R2_STB MATCH_R2_OP (STB) 1021212397c6Schristos #define MASK_R2_STB MASK_R2_OP 1022212397c6Schristos #define MATCH_R2_STBIO MATCH_R2_I12 (STBIO) 1023212397c6Schristos #define MASK_R2_STBIO MASK_R2_I12 1024212397c6Schristos #define MATCH_R2_STB_N MATCH_R2_OP (STB_N) 1025212397c6Schristos #define MASK_R2_STB_N MASK_R2_OP 1026212397c6Schristos #define MATCH_R2_STBZ_N (MATCH_R2_OP (STZ_N) | SET_IW_T1X1I6_X (R2_STZ_N_STBZ_N)) 1027212397c6Schristos #define MASK_R2_STBZ_N (MASK_R2_OP | IW_T1X1I6_X_SHIFTED_MASK) 1028212397c6Schristos #define MATCH_R2_STEX MATCH_R2_OPX0 (STEX) 1029212397c6Schristos #define MASK_R2_STEX MASK_R2_OPX0 1030212397c6Schristos #define MATCH_R2_STH MATCH_R2_OP (STH) 1031212397c6Schristos #define MASK_R2_STH MASK_R2_OP 1032212397c6Schristos #define MATCH_R2_STHIO MATCH_R2_I12 (STHIO) 1033212397c6Schristos #define MASK_R2_STHIO MASK_R2_I12 1034212397c6Schristos #define MATCH_R2_STH_N MATCH_R2_OP (STH_N) 1035212397c6Schristos #define MASK_R2_STH_N MASK_R2_OP 1036212397c6Schristos #define MATCH_R2_STSEX MATCH_R2_OPX0 (STSEX) 1037212397c6Schristos #define MASK_R2_STSEX MASK_R2_OPX0 1038212397c6Schristos #define MATCH_R2_STW MATCH_R2_OP (STW) 1039212397c6Schristos #define MASK_R2_STW MASK_R2_OP 1040212397c6Schristos #define MATCH_R2_STWIO MATCH_R2_I12 (STWIO) 1041212397c6Schristos #define MASK_R2_STWIO MASK_R2_I12 1042212397c6Schristos #define MATCH_R2_STWM MATCH_R2_I12 (STWM) 1043212397c6Schristos #define MASK_R2_STWM MASK_R2_I12 1044212397c6Schristos #define MATCH_R2_STWSP_N MATCH_R2_OP (STWSP_N) 1045212397c6Schristos #define MASK_R2_STWSP_N MASK_R2_OP 1046212397c6Schristos #define MATCH_R2_STW_N MATCH_R2_OP (STW_N) 1047212397c6Schristos #define MASK_R2_STW_N MASK_R2_OP 1048212397c6Schristos #define MATCH_R2_STWZ_N MATCH_R2_OP (STZ_N) 1049212397c6Schristos #define MASK_R2_STWZ_N MASK_R2_OP 1050212397c6Schristos #define MATCH_R2_SUB MATCH_R2_OPX0 (SUB) 1051212397c6Schristos #define MASK_R2_SUB MASK_R2_OPX0 1052212397c6Schristos #define MATCH_R2_SUBI MATCH_R2_OP (ADDI) 1053212397c6Schristos #define MASK_R2_SUBI MASK_R2_OP 1054212397c6Schristos #define MATCH_R2_SUB_N (MATCH_R2_OP (AS_N) | SET_IW_T3X1_X (R2_AS_N_SUB_N)) 1055212397c6Schristos #define MASK_R2_SUB_N (MASK_R2_OP | IW_T3X1_X_SHIFTED_MASK) 1056212397c6Schristos #define MATCH_R2_SUBI_N (MATCH_R2_OP (ASI_N) | SET_IW_T2X1I3_X (R2_ASI_N_SUBI_N)) 1057212397c6Schristos #define MASK_R2_SUBI_N (MASK_R2_OP | IW_T2X1I3_X_SHIFTED_MASK) 1058212397c6Schristos #define MATCH_R2_SYNC MATCH_R2_OPX (SYNC, 0, 0, 0) 1059212397c6Schristos #define MASK_R2_SYNC MASK_R2_OPX (1, 1, 1, 1) 1060212397c6Schristos #define MATCH_R2_TRAP MATCH_R2_OPX (TRAP, 0, 0, 0x1d) 1061212397c6Schristos #define MASK_R2_TRAP MASK_R2_OPX (1, 1, 1, 0) 1062212397c6Schristos #define MATCH_R2_TRAP_N MATCH_R2_R_N (TRAP_N) 1063212397c6Schristos #define MASK_R2_TRAP_N MASK_R2_R_N 1064212397c6Schristos #define MATCH_R2_WRCTL MATCH_R2_OPX (WRCTL, 0, 0, 0) 1065212397c6Schristos #define MASK_R2_WRCTL MASK_R2_OPX (0, 1, 1, 0) 1066212397c6Schristos #define MATCH_R2_WRPIE MATCH_R2_OPX (WRPIE, 0, 0, 0) 1067212397c6Schristos #define MASK_R2_WRPIE MASK_R2_OPX (0, 1, 0, 1) 1068212397c6Schristos #define MATCH_R2_WRPRS MATCH_R2_OPX (WRPRS, 0, 0, 0) 1069212397c6Schristos #define MASK_R2_WRPRS MASK_R2_OPX (0, 1, 0, 1) 1070212397c6Schristos #define MATCH_R2_XOR MATCH_R2_OPX0 (XOR) 1071212397c6Schristos #define MASK_R2_XOR MASK_R2_OPX0 1072212397c6Schristos #define MATCH_R2_XORHI MATCH_R2_OP (XORHI) 1073212397c6Schristos #define MASK_R2_XORHI MASK_R2_OP 1074212397c6Schristos #define MATCH_R2_XORI MATCH_R2_OP (XORI) 1075212397c6Schristos #define MASK_R2_XORI MASK_R2_OP 1076212397c6Schristos #define MATCH_R2_XOR_N MATCH_R2_R_N (XOR_N) 1077212397c6Schristos #define MASK_R2_XOR_N MASK_R2_R_N 1078212397c6Schristos 1079212397c6Schristos #endif /* _NIOS2R2_H */ 1080212397c6Schristos 1081212397c6Schristos 1082