| /* Xtensa configuration-specific ISA information. |
| |
| Copyright (c) 2003-2020 Tensilica Inc. |
| |
| Permission is hereby granted, free of charge, to any person obtaining |
| a copy of this software and associated documentation files (the |
| "Software"), to deal in the Software without restriction, including |
| without limitation the rights to use, copy, modify, merge, publish, |
| distribute, sublicense, and/or sell copies of the Software, and to |
| permit persons to whom the Software is furnished to do so, subject to |
| the following conditions: |
| |
| The above copyright notice and this permission notice shall be included |
| in all copies or substantial portions of the Software. |
| |
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ |
| |
| #include "xtensa-isa.h" |
| #include "xtensa-isa-internal.h" |
| |
| |
| /* Sysregs. */ |
| |
| static xtensa_sysreg_internal sysregs[] = { |
| { "LBEG", 0, 0 }, |
| { "LEND", 1, 0 }, |
| { "LCOUNT", 2, 0 }, |
| { "BR", 4, 0 }, |
| { "ACCLO", 16, 0 }, |
| { "ACCHI", 17, 0 }, |
| { "M0", 32, 0 }, |
| { "M1", 33, 0 }, |
| { "M2", 34, 0 }, |
| { "M3", 35, 0 }, |
| { "PTEVADDR", 83, 0 }, |
| { "MMID", 89, 0 }, |
| { "DDR", 104, 0 }, |
| { "CONFIGID0", 176, 0 }, |
| { "CONFIGID1", 208, 0 }, |
| { "INTERRUPT", 226, 0 }, |
| { "INTCLEAR", 227, 0 }, |
| { "CCOUNT", 234, 0 }, |
| { "PRID", 235, 0 }, |
| { "ICOUNT", 236, 0 }, |
| { "CCOMPARE0", 240, 0 }, |
| { "CCOMPARE1", 241, 0 }, |
| { "CCOMPARE2", 242, 0 }, |
| { "VECBASE", 231, 0 }, |
| { "EPC1", 177, 0 }, |
| { "EPC2", 178, 0 }, |
| { "EPC3", 179, 0 }, |
| { "EPC4", 180, 0 }, |
| { "EPC5", 181, 0 }, |
| { "EPC6", 182, 0 }, |
| { "EPC7", 183, 0 }, |
| { "EXCSAVE1", 209, 0 }, |
| { "EXCSAVE2", 210, 0 }, |
| { "EXCSAVE3", 211, 0 }, |
| { "EXCSAVE4", 212, 0 }, |
| { "EXCSAVE5", 213, 0 }, |
| { "EXCSAVE6", 214, 0 }, |
| { "EXCSAVE7", 215, 0 }, |
| { "EPS2", 194, 0 }, |
| { "EPS3", 195, 0 }, |
| { "EPS4", 196, 0 }, |
| { "EPS5", 197, 0 }, |
| { "EPS6", 198, 0 }, |
| { "EPS7", 199, 0 }, |
| { "EXCCAUSE", 232, 0 }, |
| { "DEPC", 192, 0 }, |
| { "EXCVADDR", 238, 0 }, |
| { "WINDOWBASE", 72, 0 }, |
| { "WINDOWSTART", 73, 0 }, |
| { "SAR", 3, 0 }, |
| { "PS", 230, 0 }, |
| { "MISC0", 244, 0 }, |
| { "MISC1", 245, 0 }, |
| { "INTENABLE", 228, 0 }, |
| { "DBREAKA0", 144, 0 }, |
| { "DBREAKC0", 160, 0 }, |
| { "DBREAKA1", 145, 0 }, |
| { "DBREAKC1", 161, 0 }, |
| { "IBREAKA0", 128, 0 }, |
| { "IBREAKA1", 129, 0 }, |
| { "IBREAKENABLE", 96, 0 }, |
| { "ICOUNTLEVEL", 237, 0 }, |
| { "DEBUGCAUSE", 233, 0 }, |
| { "RASID", 90, 0 }, |
| { "ITLBCFG", 91, 0 }, |
| { "DTLBCFG", 92, 0 }, |
| { "CPENABLE", 224, 0 }, |
| { "SCOMPARE1", 12, 0 }, |
| { "ATOMCTL", 99, 0 }, |
| { "ERACCESS", 95, 0 }, |
| { "THREADPTR", 231, 1 }, |
| { "FCR", 232, 1 }, |
| { "FSR", 233, 1 }, |
| { "EXPSTATE", 230, 1 } |
| }; |
| |
| #define NUM_SYSREGS 74 |
| #define MAX_SPECIAL_REG 245 |
| #define MAX_USER_REG 233 |
| |
| |
| /* Processor states. */ |
| |
| static xtensa_state_internal states[] = { |
| { "LCOUNT", 32, 0 }, |
| { "PC", 32, 0 }, |
| { "ICOUNT", 32, 0 }, |
| { "DDR", 32, 0 }, |
| { "INTERRUPT", 22, 0 }, |
| { "CCOUNT", 32, 0 }, |
| { "XTSYNC", 1, 0 }, |
| { "VECBASE", 22, 0 }, |
| { "EPC1", 32, 0 }, |
| { "EPC2", 32, 0 }, |
| { "EPC3", 32, 0 }, |
| { "EPC4", 32, 0 }, |
| { "EPC5", 32, 0 }, |
| { "EPC6", 32, 0 }, |
| { "EPC7", 32, 0 }, |
| { "EXCSAVE1", 32, 0 }, |
| { "EXCSAVE2", 32, 0 }, |
| { "EXCSAVE3", 32, 0 }, |
| { "EXCSAVE4", 32, 0 }, |
| { "EXCSAVE5", 32, 0 }, |
| { "EXCSAVE6", 32, 0 }, |
| { "EXCSAVE7", 32, 0 }, |
| { "EPS2", 15, 0 }, |
| { "EPS3", 15, 0 }, |
| { "EPS4", 15, 0 }, |
| { "EPS5", 15, 0 }, |
| { "EPS6", 15, 0 }, |
| { "EPS7", 15, 0 }, |
| { "EXCCAUSE", 6, 0 }, |
| { "PSINTLEVEL", 4, 0 }, |
| { "PSUM", 1, 0 }, |
| { "PSWOE", 1, 0 }, |
| { "PSRING", 2, 0 }, |
| { "PSEXCM", 1, 0 }, |
| { "DEPC", 32, 0 }, |
| { "EXCVADDR", 32, 0 }, |
| { "WindowBase", 3, 0 }, |
| { "WindowStart", 8, 0 }, |
| { "PSCALLINC", 2, 0 }, |
| { "PSOWB", 4, 0 }, |
| { "LBEG", 32, 0 }, |
| { "LEND", 32, 0 }, |
| { "SAR", 6, 0 }, |
| { "THREADPTR", 32, 0 }, |
| { "MISC0", 32, 0 }, |
| { "MISC1", 32, 0 }, |
| { "ACC", 40, 0 }, |
| { "InOCDMode", 1, 0 }, |
| { "INTENABLE", 22, 0 }, |
| { "DBREAKA0", 32, 0 }, |
| { "DBREAKC0", 8, 0 }, |
| { "DBREAKA1", 32, 0 }, |
| { "DBREAKC1", 8, 0 }, |
| { "IBREAKA0", 32, 0 }, |
| { "IBREAKA1", 32, 0 }, |
| { "IBREAKENABLE", 2, 0 }, |
| { "ICOUNTLEVEL", 4, 0 }, |
| { "DEBUGCAUSE", 6, 0 }, |
| { "DBNUM", 4, 0 }, |
| { "CCOMPARE0", 32, 0 }, |
| { "CCOMPARE1", 32, 0 }, |
| { "CCOMPARE2", 32, 0 }, |
| { "ASID3", 8, 0 }, |
| { "ASID2", 8, 0 }, |
| { "ASID1", 8, 0 }, |
| { "INSTPGSZID6", 1, 0 }, |
| { "INSTPGSZID5", 1, 0 }, |
| { "INSTPGSZID4", 2, 0 }, |
| { "DATAPGSZID6", 1, 0 }, |
| { "DATAPGSZID5", 1, 0 }, |
| { "DATAPGSZID4", 2, 0 }, |
| { "PTBASE", 10, 0 }, |
| { "CPENABLE", 8, 0 }, |
| { "SCOMPARE1", 32, 0 }, |
| { "ATOMCTL", 6, 0 }, |
| { "ERACCESS", 16, 0 }, |
| { "RoundMode", 2, 0 }, |
| { "InvalidEnable", 1, 0 }, |
| { "DivZeroEnable", 1, 0 }, |
| { "OverflowEnable", 1, 0 }, |
| { "UnderflowEnable", 1, 0 }, |
| { "InexactEnable", 1, 0 }, |
| { "InvalidFlag", 1, XTENSA_STATE_IS_SHARED_OR }, |
| { "DivZeroFlag", 1, XTENSA_STATE_IS_SHARED_OR }, |
| { "OverflowFlag", 1, XTENSA_STATE_IS_SHARED_OR }, |
| { "UnderflowFlag", 1, XTENSA_STATE_IS_SHARED_OR }, |
| { "InexactFlag", 1, XTENSA_STATE_IS_SHARED_OR }, |
| { "FPreserved20", 20, 0 }, |
| { "FPreserved20a", 20, 0 }, |
| { "FPreserved5", 5, 0 }, |
| { "FPreserved7", 7, 0 }, |
| { "EXPSTATE", 32, XTENSA_STATE_IS_EXPORTED } |
| }; |
| |
| #define NUM_STATES 92 |
| |
| enum xtensa_state_id { |
| STATE_LCOUNT, |
| STATE_PC, |
| STATE_ICOUNT, |
| STATE_DDR, |
| STATE_INTERRUPT, |
| STATE_CCOUNT, |
| STATE_XTSYNC, |
| STATE_VECBASE, |
| STATE_EPC1, |
| STATE_EPC2, |
| STATE_EPC3, |
| STATE_EPC4, |
| STATE_EPC5, |
| STATE_EPC6, |
| STATE_EPC7, |
| STATE_EXCSAVE1, |
| STATE_EXCSAVE2, |
| STATE_EXCSAVE3, |
| STATE_EXCSAVE4, |
| STATE_EXCSAVE5, |
| STATE_EXCSAVE6, |
| STATE_EXCSAVE7, |
| STATE_EPS2, |
| STATE_EPS3, |
| STATE_EPS4, |
| STATE_EPS5, |
| STATE_EPS6, |
| STATE_EPS7, |
| STATE_EXCCAUSE, |
| STATE_PSINTLEVEL, |
| STATE_PSUM, |
| STATE_PSWOE, |
| STATE_PSRING, |
| STATE_PSEXCM, |
| STATE_DEPC, |
| STATE_EXCVADDR, |
| STATE_WindowBase, |
| STATE_WindowStart, |
| STATE_PSCALLINC, |
| STATE_PSOWB, |
| STATE_LBEG, |
| STATE_LEND, |
| STATE_SAR, |
| STATE_THREADPTR, |
| STATE_MISC0, |
| STATE_MISC1, |
| STATE_ACC, |
| STATE_InOCDMode, |
| STATE_INTENABLE, |
| STATE_DBREAKA0, |
| STATE_DBREAKC0, |
| STATE_DBREAKA1, |
| STATE_DBREAKC1, |
| STATE_IBREAKA0, |
| STATE_IBREAKA1, |
| STATE_IBREAKENABLE, |
| STATE_ICOUNTLEVEL, |
| STATE_DEBUGCAUSE, |
| STATE_DBNUM, |
| STATE_CCOMPARE0, |
| STATE_CCOMPARE1, |
| STATE_CCOMPARE2, |
| STATE_ASID3, |
| STATE_ASID2, |
| STATE_ASID1, |
| STATE_INSTPGSZID6, |
| STATE_INSTPGSZID5, |
| STATE_INSTPGSZID4, |
| STATE_DATAPGSZID6, |
| STATE_DATAPGSZID5, |
| STATE_DATAPGSZID4, |
| STATE_PTBASE, |
| STATE_CPENABLE, |
| STATE_SCOMPARE1, |
| STATE_ATOMCTL, |
| STATE_ERACCESS, |
| STATE_RoundMode, |
| STATE_InvalidEnable, |
| STATE_DivZeroEnable, |
| STATE_OverflowEnable, |
| STATE_UnderflowEnable, |
| STATE_InexactEnable, |
| STATE_InvalidFlag, |
| STATE_DivZeroFlag, |
| STATE_OverflowFlag, |
| STATE_UnderflowFlag, |
| STATE_InexactFlag, |
| STATE_FPreserved20, |
| STATE_FPreserved20a, |
| STATE_FPreserved5, |
| STATE_FPreserved7, |
| STATE_EXPSTATE |
| }; |
| |
| |
| /* Field definitions. */ |
| |
| static unsigned |
| Field_t_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 24) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_t_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf0) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_s_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_s_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| } |
| |
| static unsigned |
| Field_r_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_r_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_op2_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 8) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_op2_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf00000) | (tie_t << 20); |
| } |
| |
| static unsigned |
| Field_op1_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 12) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_op1_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf0000) | (tie_t << 16); |
| } |
| |
| static unsigned |
| Field_op0_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 28) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_op0_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf) | (tie_t << 0); |
| } |
| |
| static unsigned |
| Field_n_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 26) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_n_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0x30) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_m_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 24) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_m_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0xc0) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_sr_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_sr_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| tie_t = (val << 24) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_st_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| tie_t = (tie_t << 4) | ((insn[0] << 24) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_st_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf0) | (tie_t << 4); |
| tie_t = (val << 24) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| } |
| |
| static unsigned |
| Field_thi3_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 24) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_thi3_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0xe0) | (tie_t << 5); |
| } |
| |
| static unsigned |
| Field_t3_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 24) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_t3_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x80) | (tie_t << 7); |
| } |
| |
| static unsigned |
| Field_tlo_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 26) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_tlo_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0x30) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_w_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 18) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_w_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0x3000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_r3_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 16) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_r3_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x8000) | (tie_t << 15); |
| } |
| |
| static unsigned |
| Field_rhi_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 16) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_rhi_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0xc000) | (tie_t << 14); |
| } |
| |
| static unsigned |
| Field_s3to1_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 20) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_s3to1_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0xe00) | (tie_t << 9); |
| } |
| |
| static unsigned |
| Field_op0_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 28) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_op0_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf) | (tie_t << 0); |
| } |
| |
| static unsigned |
| Field_t_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 24) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_t_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf0) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_r_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_r_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_op0_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 28) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_op0_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf) | (tie_t << 0); |
| } |
| |
| static unsigned |
| Field_z_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 25) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_z_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x40) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_i_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 24) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_i_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x80) | (tie_t << 7); |
| } |
| |
| static unsigned |
| Field_s_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_s_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| } |
| |
| static unsigned |
| Field_t_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 24) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_t_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf0) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_bbi4_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 19) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_bbi4_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x1000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_bbi_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 19) >> 31); |
| tie_t = (tie_t << 4) | ((insn[0] << 24) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_bbi_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf0) | (tie_t << 4); |
| tie_t = (val << 27) >> 31; |
| insn[0] = (insn[0] & ~0x1000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_imm12_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 12) | ((insn[0] << 8) >> 20); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm12_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 20) >> 20; |
| insn[0] = (insn[0] & ~0xfff000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_imm8_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 8) | ((insn[0] << 8) >> 24); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm8_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 24) >> 24; |
| insn[0] = (insn[0] & ~0xff0000) | (tie_t << 16); |
| } |
| |
| static unsigned |
| Field_s_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_s_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| } |
| |
| static unsigned |
| Field_s8_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 20) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_s8_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x800) | (tie_t << 11); |
| } |
| |
| static unsigned |
| Field_imms8_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 21) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_imms8_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0x700) | (tie_t << 8); |
| } |
| |
| static unsigned |
| Field_imm12b_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| tie_t = (tie_t << 8) | ((insn[0] << 8) >> 24); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm12b_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 24) >> 24; |
| insn[0] = (insn[0] & ~0xff0000) | (tie_t << 16); |
| tie_t = (val << 20) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| } |
| |
| static unsigned |
| Field_imm16_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 16) | ((insn[0] << 8) >> 16); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm16_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 16) >> 16; |
| insn[0] = (insn[0] & ~0xffff00) | (tie_t << 8); |
| } |
| |
| static unsigned |
| Field_offset_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 18) | ((insn[0] << 8) >> 14); |
| return tie_t; |
| } |
| |
| static void |
| Field_offset_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 14) >> 14; |
| insn[0] = (insn[0] & ~0xffffc0) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_r_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_r_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_r_disp_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 17) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_r_disp_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0x7000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_r_3_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 16) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_r_3_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x8000) | (tie_t << 15); |
| } |
| |
| static unsigned |
| Field_sa4_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 11) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_sa4_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x100000) | (tie_t << 20); |
| } |
| |
| static unsigned |
| Field_sae4_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 15) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_sae4_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x10000) | (tie_t << 16); |
| } |
| |
| static unsigned |
| Field_sae_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 15) >> 31); |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_sae_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| tie_t = (val << 27) >> 31; |
| insn[0] = (insn[0] & ~0x10000) | (tie_t << 16); |
| } |
| |
| static unsigned |
| Field_sal_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 11) >> 31); |
| tie_t = (tie_t << 4) | ((insn[0] << 24) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_sal_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf0) | (tie_t << 4); |
| tie_t = (val << 27) >> 31; |
| insn[0] = (insn[0] & ~0x100000) | (tie_t << 20); |
| } |
| |
| static unsigned |
| Field_sargt_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 11) >> 31); |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_sargt_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| tie_t = (val << 27) >> 31; |
| insn[0] = (insn[0] & ~0x100000) | (tie_t << 20); |
| } |
| |
| static unsigned |
| Field_sas4_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 27) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_sas4_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x10) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_sas_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 27) >> 31); |
| tie_t = (tie_t << 4) | ((insn[0] << 20) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_sas_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf00) | (tie_t << 8); |
| tie_t = (val << 27) >> 31; |
| insn[0] = (insn[0] & ~0x10) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_imm4_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm4_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_mn_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 24) >> 30); |
| tie_t = (tie_t << 2) | ((insn[0] << 26) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_mn_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0x30) | (tie_t << 4); |
| tie_t = (val << 28) >> 30; |
| insn[0] = (insn[0] & ~0xc0) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_i_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 24) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_i_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x80) | (tie_t << 7); |
| } |
| |
| static unsigned |
| Field_imm6lo_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm6lo_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_imm6lo_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm6lo_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_imm6hi_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 26) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm6hi_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0x30) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_imm6hi_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 26) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm6hi_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0x30) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_imm7lo_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm7lo_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_imm7lo_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm7lo_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| } |
| |
| static unsigned |
| Field_imm7hi_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 25) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm7hi_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0x70) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_imm7hi_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 25) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm7hi_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0x70) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_z_Slot_inst16a_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 25) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_z_Slot_inst16a_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x40) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_imm6_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 26) >> 30); |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm6_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| tie_t = (val << 26) >> 30; |
| insn[0] = (insn[0] & ~0x30) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_imm7_Slot_inst16b_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 25) >> 29); |
| tie_t = (tie_t << 4) | ((insn[0] << 16) >> 28); |
| return tie_t; |
| } |
| |
| static void |
| Field_imm7_Slot_inst16b_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 28) >> 28; |
| insn[0] = (insn[0] & ~0xf000) | (tie_t << 12); |
| tie_t = (val << 25) >> 29; |
| insn[0] = (insn[0] & ~0x70) | (tie_t << 4); |
| } |
| |
| static unsigned |
| Field_rbit2_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 17) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_rbit2_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x4000) | (tie_t << 14); |
| } |
| |
| static unsigned |
| Field_tbit2_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 25) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_tbit2_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x40) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_y_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 25) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_y_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x40) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_x_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 17) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_x_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x4000) | (tie_t << 14); |
| } |
| |
| static unsigned |
| Field_t2_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 24) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_t2_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0xe0) | (tie_t << 5); |
| } |
| |
| static unsigned |
| Field_s2_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 20) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_s2_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0xe00) | (tie_t << 9); |
| } |
| |
| static unsigned |
| Field_r2_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 3) | ((insn[0] << 16) >> 29); |
| return tie_t; |
| } |
| |
| static void |
| Field_r2_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 29) >> 29; |
| insn[0] = (insn[0] & ~0xe000) | (tie_t << 13); |
| } |
| |
| static unsigned |
| Field_t4_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 24) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_t4_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0xc0) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_s4_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 20) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_s4_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0xc00) | (tie_t << 10); |
| } |
| |
| static unsigned |
| Field_r4_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 2) | ((insn[0] << 16) >> 30); |
| return tie_t; |
| } |
| |
| static void |
| Field_r4_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 30) >> 30; |
| insn[0] = (insn[0] & ~0xc000) | (tie_t << 14); |
| } |
| |
| static unsigned |
| Field_t8_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 24) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_t8_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x80) | (tie_t << 7); |
| } |
| |
| static unsigned |
| Field_r8_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 1) | ((insn[0] << 16) >> 31); |
| return tie_t; |
| } |
| |
| static void |
| Field_r8_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 31) >> 31; |
| insn[0] = (insn[0] & ~0x8000) | (tie_t << 15); |
| } |
| |
| static unsigned |
| Field_xt_wbr15_imm_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 15) | ((insn[0] << 8) >> 17); |
| return tie_t; |
| } |
| |
| static void |
| Field_xt_wbr15_imm_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 17) >> 17; |
| insn[0] = (insn[0] & ~0xfffe00) | (tie_t << 9); |
| } |
| |
| static unsigned |
| Field_xt_wbr18_imm_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 18) | ((insn[0] << 8) >> 14); |
| return tie_t; |
| } |
| |
| static void |
| Field_xt_wbr18_imm_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 14) >> 14; |
| insn[0] = (insn[0] & ~0xffffc0) | (tie_t << 6); |
| } |
| |
| static unsigned |
| Field_bitindex_Slot_inst_get (const xtensa_insnbuf insn) |
| { |
| unsigned tie_t = 0; |
| tie_t = (tie_t << 5) | ((insn[0] << 23) >> 27); |
| return tie_t; |
| } |
| |
| static void |
| Field_bitindex_Slot_inst_set (xtensa_insnbuf insn, uint32 val) |
| { |
| uint32 tie_t; |
| tie_t = (val << 27) >> 27; |
| insn[0] = (insn[0] & ~0x1f0) | (tie_t << 4); |
| } |
| |
| static void |
| Implicit_Field_set (xtensa_insnbuf insn ATTRIBUTE_UNUSED, |
| uint32 val ATTRIBUTE_UNUSED) |
| { |
| /* Do nothing. */ |
| } |
| |
| static unsigned |
| Implicit_Field_ar0_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 0; |
| } |
| |
| static unsigned |
| Implicit_Field_ar4_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 4; |
| } |
| |
| static unsigned |
| Implicit_Field_ar8_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 8; |
| } |
| |
| static unsigned |
| Implicit_Field_ar12_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 12; |
| } |
| |
| static unsigned |
| Implicit_Field_mr0_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 0; |
| } |
| |
| static unsigned |
| Implicit_Field_mr1_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 1; |
| } |
| |
| static unsigned |
| Implicit_Field_mr2_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 2; |
| } |
| |
| static unsigned |
| Implicit_Field_mr3_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 3; |
| } |
| |
| static unsigned |
| Implicit_Field_bt16_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 0; |
| } |
| |
| static unsigned |
| Implicit_Field_bs16_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 0; |
| } |
| |
| static unsigned |
| Implicit_Field_br16_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 0; |
| } |
| |
| static unsigned |
| Implicit_Field_brall_get (const xtensa_insnbuf insn ATTRIBUTE_UNUSED) |
| { |
| return 0; |
| } |
| |
| enum xtensa_field_id { |
| FIELD_t, |
| FIELD_bbi4, |
| FIELD_bbi, |
| FIELD_imm12, |
| FIELD_imm8, |
| FIELD_s, |
| FIELD_s8, |
| FIELD_imms8, |
| FIELD_imm12b, |
| FIELD_imm16, |
| FIELD_m, |
| FIELD_n, |
| FIELD_offset, |
| FIELD_op0, |
| FIELD_op1, |
| FIELD_op2, |
| FIELD_r, |
| FIELD_r_disp, |
| FIELD_r_3, |
| FIELD_sa4, |
| FIELD_sae4, |
| FIELD_sae, |
| FIELD_sal, |
| FIELD_sargt, |
| FIELD_sas4, |
| FIELD_sas, |
| FIELD_sr, |
| FIELD_st, |
| FIELD_thi3, |
| FIELD_imm4, |
| FIELD_mn, |
| FIELD_i, |
| FIELD_imm6lo, |
| FIELD_imm6hi, |
| FIELD_imm7lo, |
| FIELD_imm7hi, |
| FIELD_z, |
| FIELD_imm6, |
| FIELD_imm7, |
| FIELD_r3, |
| FIELD_rbit2, |
| FIELD_rhi, |
| FIELD_t3, |
| FIELD_tbit2, |
| FIELD_tlo, |
| FIELD_w, |
| FIELD_y, |
| FIELD_x, |
| FIELD_t2, |
| FIELD_s2, |
| FIELD_r2, |
| FIELD_t4, |
| FIELD_s4, |
| FIELD_r4, |
| FIELD_t8, |
| FIELD_r8, |
| FIELD_xt_wbr15_imm, |
| FIELD_xt_wbr18_imm, |
| FIELD_bitindex, |
| FIELD_s3to1, |
| FIELD__ar0, |
| FIELD__ar4, |
| FIELD__ar8, |
| FIELD__ar12, |
| FIELD__mr0, |
| FIELD__mr1, |
| FIELD__mr2, |
| FIELD__mr3, |
| FIELD__bt16, |
| FIELD__bs16, |
| FIELD__br16, |
| FIELD__brall |
| }; |
| |
| |
| /* Functional units. */ |
| |
| static xtensa_funcUnit_internal funcUnits[] = { |
| {"XT_LOADSTORE_UNIT", 1} |
| }; |
| |
| enum xtensa_funcUnit_id { |
| FUNCUNIT_XT_LOADSTORE_UNIT |
| }; |
| |
| |
| /* Register files. */ |
| |
| enum xtensa_regfile_id { |
| REGFILE_AR, |
| REGFILE_MR, |
| REGFILE_BR, |
| REGFILE_FR, |
| REGFILE_BR2, |
| REGFILE_BR4, |
| REGFILE_BR8, |
| REGFILE_BR16 |
| }; |
| |
| static xtensa_regfile_internal regfiles[] = { |
| { "AR", "a", REGFILE_AR, 32, 32 }, |
| { "MR", "m", REGFILE_MR, 32, 4 }, |
| { "BR", "b", REGFILE_BR, 1, 16 }, |
| { "FR", "f", REGFILE_FR, 64, 16 }, |
| { "BR2", "b", REGFILE_BR, 2, 8 }, |
| { "BR4", "b", REGFILE_BR, 4, 4 }, |
| { "BR8", "b", REGFILE_BR, 8, 2 }, |
| { "BR16", "b", REGFILE_BR, 16, 1 } |
| }; |
| |
| |
| /* Interfaces. */ |
| |
| static xtensa_interface_internal interfaces[] = { |
| { "IMPWIRE", 32, 0, 0, 'i' } |
| }; |
| |
| enum xtensa_interface_id { |
| INTERFACE_IMPWIRE |
| }; |
| |
| |
| /* Constant tables. */ |
| |
| /* constant table ai4c */ |
| static const unsigned CONST_TBL_ai4c_0[] = { |
| 0xffffffff, |
| 0x1, |
| 0x2, |
| 0x3, |
| 0x4, |
| 0x5, |
| 0x6, |
| 0x7, |
| 0x8, |
| 0x9, |
| 0xa, |
| 0xb, |
| 0xc, |
| 0xd, |
| 0xe, |
| 0xf, |
| 0 |
| }; |
| |
| /* constant table b4c */ |
| static const unsigned CONST_TBL_b4c_0[] = { |
| 0xffffffff, |
| 0x1, |
| 0x2, |
| 0x3, |
| 0x4, |
| 0x5, |
| 0x6, |
| 0x7, |
| 0x8, |
| 0xa, |
| 0xc, |
| 0x10, |
| 0x20, |
| 0x40, |
| 0x80, |
| 0x100, |
| 0 |
| }; |
| |
| /* constant table b4cu */ |
| static const unsigned CONST_TBL_b4cu_0[] = { |
| 0x8000, |
| 0x10000, |
| 0x2, |
| 0x3, |
| 0x4, |
| 0x5, |
| 0x6, |
| 0x7, |
| 0x8, |
| 0xa, |
| 0xc, |
| 0x10, |
| 0x20, |
| 0x40, |
| 0x80, |
| 0x100, |
| 0 |
| }; |
| |
| /* constant table RECIP_Data8 */ |
| static const unsigned CONST_TBL_RECIP_Data8_0[] = { |
| 0xff & 0xff, |
| 0xfd & 0xff, |
| 0xfb & 0xff, |
| 0xf9 & 0xff, |
| 0xf7 & 0xff, |
| 0xf5 & 0xff, |
| 0xf4 & 0xff, |
| 0xf2 & 0xff, |
| 0xf0 & 0xff, |
| 0xee & 0xff, |
| 0xed & 0xff, |
| 0xeb & 0xff, |
| 0xe9 & 0xff, |
| 0xe8 & 0xff, |
| 0xe6 & 0xff, |
| 0xe4 & 0xff, |
| 0xe3 & 0xff, |
| 0xe1 & 0xff, |
| 0xe0 & 0xff, |
| 0xde & 0xff, |
| 0xdd & 0xff, |
| 0xdb & 0xff, |
| 0xda & 0xff, |
| 0xd8 & 0xff, |
| 0xd7 & 0xff, |
| 0xd5 & 0xff, |
| 0xd4 & 0xff, |
| 0xd3 & 0xff, |
| 0xd1 & 0xff, |
| 0xd0 & 0xff, |
| 0xcf & 0xff, |
| 0xcd & 0xff, |
| 0xcc & 0xff, |
| 0xcb & 0xff, |
| 0xca & 0xff, |
| 0xc8 & 0xff, |
| 0xc7 & 0xff, |
| 0xc6 & 0xff, |
| 0xc5 & 0xff, |
| 0xc4 & 0xff, |
| 0xc2 & 0xff, |
| 0xc1 & 0xff, |
| 0xc0 & 0xff, |
| 0xbf & 0xff, |
| 0xbe & 0xff, |
| 0xbd & 0xff, |
| 0xbc & 0xff, |
| 0xbb & 0xff, |
| 0xba & 0xff, |
| 0xb9 & 0xff, |
| 0xb8 & 0xff, |
| 0xb7 & 0xff, |
| 0xb6 & 0xff, |
| 0xb5 & 0xff, |
| 0xb4 & 0xff, |
| 0xb3 & 0xff, |
| 0xb2 & 0xff, |
| 0xb1 & 0xff, |
| 0xb0 & 0xff, |
| 0xaf & 0xff, |
| 0xae & 0xff, |
| 0xad & 0xff, |
| 0xac & 0xff, |
| 0xab & 0xff, |
| 0xaa & 0xff, |
| 0xa9 & 0xff, |
| 0xa8 & 0xff, |
| 0xa8 & 0xff, |
| 0xa7 & 0xff, |
| 0xa6 & 0xff, |
| 0xa5 & 0xff, |
| 0xa4 & 0xff, |
| 0xa3 & 0xff, |
| 0xa3 & 0xff, |
| 0xa2 & 0xff, |
| 0xa1 & 0xff, |
| 0xa0 & 0xff, |
| 0x9f & 0xff, |
| 0x9f & 0xff, |
| 0x9e & 0xff, |
| 0x9d & 0xff, |
| 0x9c & 0xff, |
| 0x9c & 0xff, |
| 0x9b & 0xff, |
| 0x9a & 0xff, |
| 0x99 & 0xff, |
| 0x99 & 0xff, |
| 0x98 & 0xff, |
| 0x97 & 0xff, |
| 0x97 & 0xff, |
| 0x96 & 0xff, |
| 0x95 & 0xff, |
| 0x95 & 0xff, |
| 0x94 & 0xff, |
| 0x93 & 0xff, |
| 0x93 & 0xff, |
| 0x92 & 0xff, |
| 0x91 & 0xff, |
| 0x91 & 0xff, |
| 0x90 & 0xff, |
| 0x8f & 0xff, |
| 0x8f & 0xff, |
| 0x8e & 0xff, |
| 0x8e & 0xff, |
| 0x8d & 0xff, |
| 0x8c & 0xff, |
| 0x8c & 0xff, |
| 0x8b & 0xff, |
| 0x8b & 0xff, |
| 0x8a & 0xff, |
| 0x89 & 0xff, |
| 0x89 & 0xff, |
| 0x88 & 0xff, |
| 0x88 & 0xff, |
| 0x87 & 0xff, |
| 0x87 & 0xff, |
| 0x86 & 0xff, |
| 0x85 & 0xff, |
| 0x85 & 0xff, |
| 0x84 & 0xff, |
| 0x84 & 0xff, |
| 0x83 & 0xff, |
| 0x83 & 0xff, |
| 0x82 & 0xff, |
| 0x82 & 0xff, |
| 0x81 & 0xff, |
| 0x81 & 0xff, |
| 0x81 & 0xff, |
| 0 |
| }; |
| |
| /* constant table RSQRT_Data8 */ |
| static const unsigned CONST_TBL_RSQRT_Data8_0[] = { |
| 0xb4 & 0xff, |
| 0xb3 & 0xff, |
| 0xb2 & 0xff, |
| 0xb0 & 0xff, |
| 0xaf & 0xff, |
| 0xae & 0xff, |
| 0xac & 0xff, |
| 0xab & 0xff, |
| 0xaa & 0xff, |
| 0xa9 & 0xff, |
| 0xa8 & 0xff, |
| 0xa7 & 0xff, |
| 0xa6 & 0xff, |
| 0xa5 & 0xff, |
| 0xa3 & 0xff, |
| 0xa2 & 0xff, |
| 0xa1 & 0xff, |
| 0xa0 & 0xff, |
| 0x9f & 0xff, |
| 0x9e & 0xff, |
| 0x9e & 0xff, |
| 0x9d & 0xff, |
| 0x9c & 0xff, |
| 0x9b & 0xff, |
| 0x9a & 0xff, |
| 0x99 & 0xff, |
| 0x98 & 0xff, |
| 0x97 & 0xff, |
| 0x97 & 0xff, |
| 0x96 & 0xff, |
| 0x95 & 0xff, |
| 0x94 & 0xff, |
| 0x93 & 0xff, |
| 0x93 & 0xff, |
| 0x92 & 0xff, |
| 0x91 & 0xff, |
| 0x90 & 0xff, |
| 0x90 & 0xff, |
| 0x8f & 0xff, |
| 0x8e & 0xff, |
| 0x8e & 0xff, |
| 0x8d & 0xff, |
| 0x8c & 0xff, |
| 0x8c & 0xff, |
| 0x8b & 0xff, |
| 0x8a & 0xff, |
| 0x8a & 0xff, |
| 0x89 & 0xff, |
| 0x89 & 0xff, |
| 0x88 & 0xff, |
| 0x87 & 0xff, |
| 0x87 & 0xff, |
| 0x86 & 0xff, |
| 0x86 & 0xff, |
| 0x85 & 0xff, |
| 0x84 & 0xff, |
| 0x84 & 0xff, |
| 0x83 & 0xff, |
| 0x83 & 0xff, |
| 0x82 & 0xff, |
| 0x82 & 0xff, |
| 0x81 & 0xff, |
| 0x81 & 0xff, |
| 0x80 & 0xff, |
| 0xff & 0xff, |
| 0xfd & 0xff, |
| 0xfb & 0xff, |
| 0xf9 & 0xff, |
| 0xf7 & 0xff, |
| 0xf6 & 0xff, |
| 0xf4 & 0xff, |
| 0xf2 & 0xff, |
| 0xf1 & 0xff, |
| 0xef & 0xff, |
| 0xed & 0xff, |
| 0xec & 0xff, |
| 0xea & 0xff, |
| 0xe9 & 0xff, |
| 0xe7 & 0xff, |
| 0xe6 & 0xff, |
| 0xe4 & 0xff, |
| 0xe3 & 0xff, |
| 0xe1 & 0xff, |
| 0xe0 & 0xff, |
| 0xdf & 0xff, |
| 0xdd & 0xff, |
| 0xdc & 0xff, |
| 0xdb & 0xff, |
| 0xda & 0xff, |
| 0xd8 & 0xff, |
| 0xd7 & 0xff, |
| 0xd6 & 0xff, |
| 0xd5 & 0xff, |
| 0xd4 & 0xff, |
| 0xd3 & 0xff, |
| 0xd2 & 0xff, |
| 0xd0 & 0xff, |
| 0xcf & 0xff, |
| 0xce & 0xff, |
| 0xcd & 0xff, |
| 0xcc & 0xff, |
| 0xcb & 0xff, |
| 0xca & 0xff, |
| 0xc9 & 0xff, |
| 0xc8 & 0xff, |
| 0xc7 & 0xff, |
| 0xc6 & 0xff, |
| 0xc6 & 0xff, |
| 0xc5 & 0xff, |
| 0xc4 & 0xff, |
| 0xc3 & 0xff, |
| 0xc2 & 0xff, |
| 0xc1 & 0xff, |
| 0xc0 & 0xff, |
| 0xbf & 0xff, |
| 0xbf & 0xff, |
| 0xbe & 0xff, |
| 0xbd & 0xff, |
| 0xbc & 0xff, |
| 0xbb & 0xff, |
| 0xbb & 0xff, |
| 0xba & 0xff, |
| 0xb9 & 0xff, |
| 0xb8 & 0xff, |
| 0xb8 & 0xff, |
| 0xb7 & 0xff, |
| 0xb6 & 0xff, |
| 0xb5 & 0xff, |
| 0 |
| }; |
| |
| /* constant table RECIP_Data10_2 */ |
| static const unsigned CONST_TBL_RECIP_Data10_2_0[] = { |
| 0x3fc & 0x3ff, |
| 0x3f4 & 0x3ff, |
| 0x3ec & 0x3ff, |
| 0x3e5 & 0x3ff, |
| 0x3dd & 0x3ff, |
| 0x3d6 & 0x3ff, |
| 0x3cf & 0x3ff, |
| 0x3c7 & 0x3ff, |
| 0x3c0 & 0x3ff, |
| 0x3b9 & 0x3ff, |
| 0x3b2 & 0x3ff, |
| 0x3ac & 0x3ff, |
| 0x3a5 & 0x3ff, |
| 0x39e & 0x3ff, |
| 0x398 & 0x3ff, |
| 0x391 & 0x3ff, |
| 0x38b & 0x3ff, |
| 0x385 & 0x3ff, |
| 0x37f & 0x3ff, |
| 0x378 & 0x3ff, |
| 0x373 & 0x3ff, |
| 0x36c & 0x3ff, |
| 0x367 & 0x3ff, |
| 0x361 & 0x3ff, |
| 0x35c & 0x3ff, |
| 0x356 & 0x3ff, |
| 0x350 & 0x3ff, |
| 0x34b & 0x3ff, |
| 0x345 & 0x3ff, |
| 0x340 & 0x3ff, |
| 0x33b & 0x3ff, |
| 0x335 & 0x3ff, |
| 0x330 & 0x3ff, |
| 0x32c & 0x3ff, |
| 0x327 & 0x3ff, |
| 0x322 & 0x3ff, |
| 0x31c & 0x3ff, |
| 0x318 & 0x3ff, |
| 0x314 & 0x3ff, |
| 0x30e & 0x3ff, |
| 0x30a & 0x3ff, |
| 0x306 & 0x3ff, |
| 0x300 & 0x3ff, |
| 0x2fc & 0x3ff, |
| 0x2f8 & 0x3ff, |
| 0x2f4 & 0x3ff, |
| 0x2f0 & 0x3ff, |
| 0x2ea & 0x3ff, |
| 0x2e6 & 0x3ff, |
| 0x2e2 & 0x3ff, |
| 0x2de & 0x3ff, |
| 0x2da & 0x3ff, |
| 0x2d6 & 0x3ff, |
| 0x2d2 & 0x3ff, |
| 0x2ce & 0x3ff, |
| 0x2ca & 0x3ff, |
| 0x2c6 & 0x3ff, |
| 0x2c2 & 0x3ff, |
| 0x2be & 0x3ff, |
| 0x2ba & 0x3ff, |
| 0x2b8 & 0x3ff, |
| 0x2b4 & 0x3ff, |
| 0x2b0 & 0x3ff, |
| 0x2ac & 0x3ff, |
| 0x2a8 & 0x3ff, |
| 0x2a6 & 0x3ff, |
| 0x2a2 & 0x3ff, |
| 0x29e & 0x3ff, |
| 0x29c & 0x3ff, |
| 0x298 & 0x3ff, |
| 0x294 & 0x3ff, |
| 0x290 & 0x3ff, |
| 0x28e & 0x3ff, |
| 0x28a & 0x3ff, |
| 0x288 & 0x3ff, |
| 0x284 & 0x3ff, |
| 0x280 & 0x3ff, |
| 0x27e & 0x3ff, |
| 0x27a & 0x3ff, |
| 0x278 & 0x3ff, |
| 0x274 & 0x3ff, |
| 0x272 & 0x3ff, |
| 0x26e & 0x3ff, |
| 0x26c & 0x3ff, |
| 0x268 & 0x3ff, |
| 0x266 & 0x3ff, |
| 0x264 & 0x3ff, |
| 0x260 & 0x3ff, |
| 0x25e & 0x3ff, |
| 0x25a & 0x3ff, |
| 0x258 & 0x3ff, |
| 0x254 & 0x3ff, |
| 0x252 & 0x3ff, |
| 0x250 & 0x3ff, |
| 0x24c & 0x3ff, |
| 0x24a & 0x3ff, |
| 0x248 & 0x3ff, |
| 0x246 & 0x3ff, |
| 0x242 & 0x3ff, |
| 0x240 & 0x3ff, |
| 0x23e & 0x3ff, |
| 0x23c & 0x3ff, |
| 0x238 & 0x3ff, |
| 0x236 & 0x3ff, |
| 0x234 & 0x3ff, |
| 0x232 & 0x3ff, |
| 0x230 & 0x3ff, |
| 0x22c & 0x3ff, |
| 0x22a & 0x3ff, |
| 0x228 & 0x3ff, |
| 0x226 & 0x3ff, |
| 0x224 & 0x3ff, |
| 0x220 & 0x3ff, |
| 0x21e & 0x3ff, |
| 0x21c & 0x3ff, |
| 0x21a & 0x3ff, |
| 0x218 & 0x3ff, |
| 0x216 & 0x3ff, |
| 0x214 & 0x3ff, |
| 0x212 & 0x3ff, |
| 0x210 & 0x3ff, |
| 0x20e & 0x3ff, |
| 0x20c & 0x3ff, |
| 0x208 & 0x3ff, |
| 0x208 & 0x3ff, |
| 0x204 & 0x3ff, |
| 0x204 & 0x3ff, |
| 0x201 & 0x3ff, |
| 0 |
| }; |
| |
| /* constant table RSQRT_10b_256 */ |
| static const unsigned CONST_TBL_RSQRT_10b_256_0[] = { |
| 0x1a5 & 0x3ff, |
| 0x1a0 & 0x3ff, |
| 0x19a & 0x3ff, |
| 0x195 & 0x3ff, |
| 0x18f & 0x3ff, |
| 0x18a & 0x3ff, |
| 0x185 & 0x3ff, |
| 0x180 & 0x3ff, |
| 0x17a & 0x3ff, |
| 0x175 & 0x3ff, |
| 0x170 & 0x3ff, |
| 0x16b & 0x3ff, |
| 0x166 & 0x3ff, |
| 0x161 & 0x3ff, |
| 0x15d & 0x3ff, |
| 0x158 & 0x3ff, |
| 0x153 & 0x3ff, |
| 0x14e & 0x3ff, |
| 0x14a & 0x3ff, |
| 0x145 & 0x3ff, |
| 0x140 & 0x3ff, |
| 0x13c & 0x3ff, |
| 0x138 & 0x3ff, |
| 0x133 & 0x3ff, |
| 0x12f & 0x3ff, |
| 0x12a & 0x3ff, |
| 0x126 & 0x3ff, |
| 0x122 & 0x3ff, |
| 0x11e & 0x3ff, |
| 0x11a & 0x3ff, |
| 0x115 & 0x3ff, |
| 0x111 & 0x3ff, |
| 0x10d & 0x3ff, |
| 0x109 & 0x3ff, |
| 0x105 & 0x3ff, |
| 0x101 & 0x3ff, |
| 0xfd & 0x3ff, |
| 0xfa & 0x3ff, |
| 0xf6 & 0x3ff, |
| 0xf2 & 0x3ff, |
| 0xee & 0x3ff, |
| 0xea & 0x3ff, |
| 0xe7 & 0x3ff, |
| 0xe3 & 0x3ff, |
| 0xdf & 0x3ff, |
| 0xdc & 0x3ff, |
| 0xd8 & 0x3ff, |
| 0xd5 & 0x3ff, |
| 0xd1 & 0x3ff, |
| 0xce & 0x3ff, |
| 0xca & 0x3ff, |
| 0xc7 & 0x3ff, |
| 0xc3 & 0x3ff, |
| 0xc0 & 0x3ff, |
| 0xbd & 0x3ff, |
| 0xb9 & 0x3ff, |
| 0xb6 & 0x3ff, |
| 0xb3 & 0x3ff, |
| 0xb0 & 0x3ff, |
| 0xad & 0x3ff, |
| 0xa9 & 0x3ff, |
| 0xa6 & 0x3ff, |
| 0xa3 & 0x3ff, |
| 0xa0 & 0x3ff, |
| 0x9d & 0x3ff, |
| 0x9a & 0x3ff, |
| 0x97 & 0x3ff, |
| 0x94 & 0x3ff, |
| 0x91 & 0x3ff, |
| 0x8e & 0x3ff, |
| 0x8b & 0x3ff, |
| 0x88 & 0x3ff, |
| 0x85 & 0x3ff, |
| 0x82 & 0x3ff, |
| 0x7f & 0x3ff, |
| 0x7d & 0x3ff, |
| 0x7a & 0x3ff, |
| 0x77 & 0x3ff, |
| 0x74 & 0x3ff, |
| 0x71 & 0x3ff, |
| 0x6f & 0x3ff, |
| 0x6c & 0x3ff, |
| 0x69 & 0x3ff, |
| 0x67 & 0x3ff, |
| 0x64 & 0x3ff, |
| 0x61 & 0x3ff, |
| 0x5f & 0x3ff, |
| 0x5c & 0x3ff, |
| 0x5a & 0x3ff, |
| 0x57 & 0x3ff, |
| 0x54 & 0x3ff, |
| 0x52 & 0x3ff, |
| 0x4f & 0x3ff, |
| 0x4d & 0x3ff, |
| 0x4a & 0x3ff, |
| 0x48 & 0x3ff, |
| 0x45 & 0x3ff, |
| 0x43 & 0x3ff, |
| 0x41 & 0x3ff, |
| 0x3e & 0x3ff, |
| 0x3c & 0x3ff, |
| 0x3a & 0x3ff, |
| 0x37 & 0x3ff, |
| 0x35 & 0x3ff, |
| 0x33 & 0x3ff, |
| 0x30 & 0x3ff, |
| 0x2e & 0x3ff, |
| 0x2c & 0x3ff, |
| 0x29 & 0x3ff, |
| 0x27 & 0x3ff, |
| 0x25 & 0x3ff, |
| 0x23 & 0x3ff, |
| 0x20 & 0x3ff, |
| 0x1e & 0x3ff, |
| 0x1c & 0x3ff, |
| 0x1a & 0x3ff, |
| 0x18 & 0x3ff, |
| 0x16 & 0x3ff, |
| 0x14 & 0x3ff, |
| 0x11 & 0x3ff, |
| 0xf & 0x3ff, |
| 0xd & 0x3ff, |
| 0xb & 0x3ff, |
| 0x9 & 0x3ff, |
| 0x7 & 0x3ff, |
| 0x5 & 0x3ff, |
| 0x3 & 0x3ff, |
| 0x1 & 0x3ff, |
| 0x3fc & 0x3ff, |
| 0x3f4 & 0x3ff, |
| 0x3ec & 0x3ff, |
| 0x3e5 & 0x3ff, |
| 0x3dd & 0x3ff, |
| 0x3d5 & 0x3ff, |
| 0x3ce & 0x3ff, |
| 0x3c7 & 0x3ff, |
| 0x3bf & 0x3ff, |
| 0x3b8 & 0x3ff, |
| 0x3b1 & 0x3ff, |
| 0x3aa & 0x3ff, |
| 0x3a3 & 0x3ff, |
| 0x39c & 0x3ff, |
| 0x395 & 0x3ff, |
| 0x38e & 0x3ff, |
| 0x388 & 0x3ff, |
| 0x381 & 0x3ff, |
| 0x37a & 0x3ff, |
| 0x374 & 0x3ff, |
| 0x36d & 0x3ff, |
| 0x367 & 0x3ff, |
| 0x361 & 0x3ff, |
| 0x35a & 0x3ff, |
| 0x354 & 0x3ff, |
| 0x34e & 0x3ff, |
| 0x348 & 0x3ff, |
| 0x342 & 0x3ff, |
| 0x33c & 0x3ff, |
| 0x336 & 0x3ff, |
| 0x330 & 0x3ff, |
| 0x32b & 0x3ff, |
| 0x325 & 0x3ff, |
| 0x31f & 0x3ff, |
| 0x31a & 0x3ff, |
| 0x314 & 0x3ff, |
| 0x30f & 0x3ff, |
| 0x309 & 0x3ff, |
| 0x304 & 0x3ff, |
| 0x2fe & 0x3ff, |
| 0x2f9 & 0x3ff, |
| 0x2f4 & 0x3ff, |
| 0x2ee & 0x3ff, |
| 0x2e9 & 0x3ff, |
| 0x2e4 & 0x3ff, |
| 0x2df & 0x3ff, |
| 0x2da & 0x3ff, |
| 0x2d5 & 0x3ff, |
| 0x2d0 & 0x3ff, |
| 0x2cb & 0x3ff, |
| 0x2c6 & 0x3ff, |
| 0x2c1 & 0x3ff, |
| 0x2bd & 0x3ff, |
| 0x2b8 & 0x3ff, |
| 0x2b3 & 0x3ff, |
| 0x2ae & 0x3ff, |
| 0x2aa & 0x3ff, |
| 0x2a5 & 0x3ff, |
| 0x2a1 & 0x3ff, |
| 0x29c & 0x3ff, |
| 0x298 & 0x3ff, |
| 0x293 & 0x3ff, |
| 0x28f & 0x3ff, |
| 0x28a & 0x3ff, |
| 0x286 & 0x3ff, |
| 0x282 & 0x3ff, |
| 0x27d & 0x3ff, |
| 0x279 & 0x3ff, |
| 0x275 & 0x3ff, |
| 0x271 & 0x3ff, |
| 0x26d & 0x3ff, |
| 0x268 & 0x3ff, |
| 0x264 & 0x3ff, |
| 0x260 & 0x3ff, |
| 0x25c & 0x3ff, |
| 0x258 & 0x3ff, |
| 0x254 & 0x3ff, |
| 0x250 & 0x3ff, |
| 0x24c & 0x3ff, |
| 0x249 & 0x3ff, |
| 0x245 & 0x3ff, |
| 0x241 & 0x3ff, |
| 0x23d & 0x3ff, |
| 0x239 & 0x3ff, |
| 0x235 & 0x3ff, |
| 0x232 & 0x3ff, |
| 0x22e & 0x3ff, |
| 0x22a & 0x3ff, |
| 0x227 & 0x3ff, |
| 0x223 & 0x3ff, |
| 0x220 & 0x3ff, |
| 0x21c & 0x3ff, |
| 0x218 & 0x3ff, |
| 0x215 & 0x3ff, |
| 0x211 & 0x3ff, |
| 0x20e & 0x3ff, |
| 0x20a & 0x3ff, |
| 0x207 & 0x3ff, |
| 0x204 & 0x3ff, |
| 0x200 & 0x3ff, |
| 0x1fd & 0x3ff, |
| 0x1f9 & 0x3ff, |
| 0x1f6 & 0x3ff, |
| 0x1f3 & 0x3ff, |
| 0x1f0 & 0x3ff, |
| 0x1ec & 0x3ff, |
| 0x1e9 & 0x3ff, |
| 0x1e6 & 0x3ff, |
| 0x1e3 & 0x3ff, |
| 0x1df & 0x3ff, |
| 0x1dc & 0x3ff, |
| 0x1d9 & 0x3ff, |
| 0x1d6 & 0x3ff, |
| 0x1d3 & 0x3ff, |
| 0x1d0 & 0x3ff, |
| 0x1cd & 0x3ff, |
| 0x1ca & 0x3ff, |
| 0x1c7 & 0x3ff, |
| 0x1c4 & 0x3ff, |
| 0x1c1 & 0x3ff, |
| 0x1be & 0x3ff, |
| 0x1bb & 0x3ff, |
| 0x1b8 & 0x3ff, |
| 0x1b5 & 0x3ff, |
| 0x1b2 & 0x3ff, |
| 0x1af & 0x3ff, |
| 0x1ac & 0x3ff, |
| 0x1aa & 0x3ff, |
| 0 |
| }; |
| |
| /* constant table RECIP_10b_256 */ |
| static const unsigned CONST_TBL_RECIP_10b_256_0[] = { |
| 0x3fc & 0x3ff, |
| 0x3f4 & 0x3ff, |
| 0x3ec & 0x3ff, |
| 0x3e4 & 0x3ff, |
| 0x3dd & 0x3ff, |
| 0x3d5 & 0x3ff, |
| 0x3cd & 0x3ff, |
| 0x3c6 & 0x3ff, |
| 0x3be & 0x3ff, |
| 0x3b7 & 0x3ff, |
| 0x3af & 0x3ff, |
| 0x3a8 & 0x3ff, |
| 0x3a1 & 0x3ff, |
| 0x399 & 0x3ff, |
| 0x392 & 0x3ff, |
| 0x38b & 0x3ff, |
| 0x384 & 0x3ff, |
| 0x37d & 0x3ff, |
| 0x376 & 0x3ff, |
| 0x36f & 0x3ff, |
| 0x368 & 0x3ff, |
| 0x361 & 0x3ff, |
| 0x35b & 0x3ff, |
| 0x354 & 0x3ff, |
| 0x34d & 0x3ff, |
| 0x346 & 0x3ff, |
| 0x340 & 0x3ff, |
| 0x339 & 0x3ff, |
| 0x333 & 0x3ff, |
| 0x32c & 0x3ff, |
| 0x326 & 0x3ff, |
| 0x320 & 0x3ff, |
| 0x319 & 0x3ff, |
| 0x313 & 0x3ff, |
| 0x30d & 0x3ff, |
| 0x307 & 0x3ff, |
| 0x300 & 0x3ff, |
| 0x2fa & 0x3ff, |
| 0x2f4 & 0x3ff, |
| 0x2ee & 0x3ff, |
| 0x2e8 & 0x3ff, |
| 0x2e2 & 0x3ff, |
| 0x2dc & 0x3ff, |
| 0x2d7 & 0x3ff, |
| 0x2d1 & 0x3ff, |
| 0x2cb & 0x3ff, |
| 0x2c5 & 0x3ff, |
| 0x2bf & 0x3ff, |
| 0x2ba & 0x3ff, |
| 0x2b4 & 0x3ff, |
| 0x2af & 0x3ff, |
| 0x2a9 & 0x3ff, |
| 0x2a3 & 0x3ff, |
| 0x29e & 0x3ff, |
| 0x299 & 0x3ff, |
| 0x293 & 0x3ff, |
| 0x28e & 0x3ff, |
| 0x288 & 0x3ff, |
| 0x283 & 0x3ff, |
| 0x27e & 0x3ff, |
| 0x279 & 0x3ff, |
| 0x273 & 0x3ff, |
| 0x26e & 0x3ff, |
| 0x269 & 0x3ff, |
| 0x264 & 0x3ff, |
| 0x25f & 0x3ff, |
| 0x25a & 0x3ff, |
| 0x255 & 0x3ff, |
| 0x250 & 0x3ff, |
| 0x24b & 0x3ff, |
| 0x246 & 0x3ff, |
| 0x241 & 0x3ff, |
| 0x23c & 0x3ff, |
| 0x237 & 0x3ff, |
| 0x232 & 0x3ff, |
| 0x22e & 0x3ff, |
| 0x229 & 0x3ff, |
| 0x224 & 0x3ff, |
| 0x21f & 0x3ff, |
| 0x21b & 0x3ff, |
| 0x216 & 0x3ff, |
| 0x211 & 0x3ff, |
| 0x20d & 0x3ff, |
| 0x208 & 0x3ff, |
| 0x204 & 0x3ff, |
| 0x1ff & 0x3ff, |
| 0x1fb & 0x3ff, |
| 0x1f6 & 0x3ff, |
| 0x1f2 & 0x3ff, |
| 0x1ed & 0x3ff, |
| 0x1e9 & 0x3ff, |
| 0x1e5 & 0x3ff, |
| 0x1e0 & 0x3ff, |
| 0x1dc & 0x3ff, |
| 0x1d8 & 0x3ff, |
| 0x1d4 & 0x3ff, |
| 0x1cf & 0x3ff, |
| 0x1cb & 0x3ff, |
| 0x1c7 & 0x3ff, |
| 0x1c3 & 0x3ff, |
| 0x1bf & 0x3ff, |
| 0x1bb & 0x3ff, |
| 0x1b6 & 0x3ff, |
| 0x1b2 & 0x3ff, |
| 0x1ae & 0x3ff, |
| 0x1aa & 0x3ff, |
| 0x1a6 & 0x3ff, |
| 0x1a2 & 0x3ff, |
| 0x19e & 0x3ff, |
| 0x19a & 0x3ff, |
| 0x197 & 0x3ff, |
| 0x193 & 0x3ff, |
| 0x18f & 0x3ff, |
| 0x18b & 0x3ff, |
| 0x187 & 0x3ff, |
| 0x183 & 0x3ff, |
| 0x17f & 0x3ff, |
| 0x17c & 0x3ff, |
| 0x178 & 0x3ff, |
| 0x174 & 0x3ff, |
| 0x171 & 0x3ff, |
| 0x16d & 0x3ff, |
| 0x169 & 0x3ff, |
| 0x166 & 0x3ff, |
| 0x162 & 0x3ff, |
| 0x15e & 0x3ff, |
| 0x15b & 0x3ff, |
| 0x157 & 0x3ff, |
| 0x154 & 0x3ff, |
| 0x150 & 0x3ff, |
| 0x14d & 0x3ff, |
| 0x149 & 0x3ff, |
| 0x146 & 0x3ff, |
| 0x142 & 0x3ff, |
| 0x13f & 0x3ff, |
| 0x13b & 0x3ff, |
| 0x138 & 0x3ff, |
| 0x134 & 0x3ff, |
| 0x131 & 0x3ff, |
| 0x12e & 0x3ff, |
| 0x12a & 0x3ff, |
| 0x127 & 0x3ff, |
| 0x124 & 0x3ff, |
| 0x120 & 0x3ff, |
| 0x11d & 0x3ff, |
| 0x11a & 0x3ff, |
| 0x117 & 0x3ff, |
| 0x113 & 0x3ff, |
| 0x110 & 0x3ff, |
| 0x10d & 0x3ff, |
| 0x10a & 0x3ff, |
| 0x107 & 0x3ff, |
| 0x103 & 0x3ff, |
| 0x100 & 0x3ff, |
| 0xfd & 0x3ff, |
| 0xfa & 0x3ff, |
| 0xf7 & 0x3ff, |
| 0xf4 & 0x3ff, |
| 0xf1 & 0x3ff, |
| 0xee & 0x3ff, |
| 0xeb & 0x3ff, |
| 0xe8 & 0x3ff, |
| 0xe5 & 0x3ff, |
| 0xe2 & 0x3ff, |
| 0xdf & 0x3ff, |
| 0xdc & 0x3ff, |
| 0xd9 & 0x3ff, |
| 0xd6 & 0x3ff, |
| 0xd3 & 0x3ff, |
| 0xd0 & 0x3ff, |
| 0xcd & 0x3ff, |
| 0xca & 0x3ff, |
| 0xc8 & 0x3ff, |
| 0xc5 & 0x3ff, |
| 0xc2 & 0x3ff, |
| 0xbf & 0x3ff, |
| 0xbc & 0x3ff, |
| 0xb9 & 0x3ff, |
| 0xb7 & 0x3ff, |
| 0xb4 & 0x3ff, |
| 0xb1 & 0x3ff, |
| 0xae & 0x3ff, |
| 0xac & 0x3ff, |
| 0xa9 & 0x3ff, |
| 0xa6 & 0x3ff, |
| 0xa4 & 0x3ff, |
| 0xa1 & 0x3ff, |
| 0x9e & 0x3ff, |
| 0x9c & 0x3ff, |
| 0x99 & 0x3ff, |
| 0x96 & 0x3ff, |
| 0x94 & 0x3ff, |
| 0x91 & 0x3ff, |
| 0x8e & 0x3ff, |
| 0x8c & 0x3ff, |
| 0x89 & 0x3ff, |
| 0x87 & 0x3ff, |
| 0x84 & 0x3ff, |
| 0x82 & 0x3ff, |
| 0x7f & 0x3ff, |
| 0x7c & 0x3ff, |
| 0x7a & 0x3ff, |
| 0x77 & 0x3ff, |
| 0x75 & 0x3ff, |
| 0x73 & 0x3ff, |
| 0x70 & 0x3ff, |
| 0x6e & 0x3ff, |
| 0x6b & 0x3ff, |
| 0x69 & 0x3ff, |
| 0x66 & 0x3ff, |
| 0x64 & 0x3ff, |
| 0x61 & 0x3ff, |
| 0x5f & 0x3ff, |
| 0x5d & 0x3ff, |
| 0x5a & 0x3ff, |
| 0x58 & 0x3ff, |
| 0x56 & 0x3ff, |
| 0x53 & 0x3ff, |
| 0x51 & 0x3ff, |
| 0x4f & 0x3ff, |
| 0x4c & 0x3ff, |
| 0x4a & 0x3ff, |
| 0x48 & 0x3ff, |
| 0x45 & 0x3ff, |
| 0x43 & 0x3ff, |
| 0x41 & 0x3ff, |
| 0x3f & 0x3ff, |
| 0x3c & 0x3ff, |
| 0x3a & 0x3ff, |
| 0x38 & 0x3ff, |
| 0x36 & 0x3ff, |
| 0x33 & 0x3ff, |
| 0x31 & 0x3ff, |
| 0x2f & 0x3ff, |
| 0x2d & 0x3ff, |
| 0x2b & 0x3ff, |
| 0x29 & 0x3ff, |
| 0x26 & 0x3ff, |
| 0x24 & 0x3ff, |
| 0x22 & 0x3ff, |
| 0x20 & 0x3ff, |
| 0x1e & 0x3ff, |
| 0x1c & 0x3ff, |
| 0x1a & 0x3ff, |
| 0x18 & 0x3ff, |
| 0x15 & 0x3ff, |
| 0x13 & 0x3ff, |
| 0x11 & 0x3ff, |
| 0xf & 0x3ff, |
| 0xd & 0x3ff, |
| 0xb & 0x3ff, |
| 0x9 & 0x3ff, |
| 0x7 & 0x3ff, |
| 0x5 & 0x3ff, |
| 0x3 & 0x3ff, |
| 0x1 & 0x3ff, |
| 0 |
| }; |
| |
| |
| /* Instruction operands. */ |
| |
| static int |
| OperandSem_opnd_sem_MR_0_decode (uint32 *valp) |
| { |
| *valp += 2; |
| return 0; |
| } |
| |
| static int |
| OperandSem_opnd_sem_MR_0_encode (uint32 *valp) |
| { |
| int error; |
| error = ((*valp & ~0x3) != 0) || ((*valp & 0x2) == 0); |
| *valp = *valp & 1; |
| return error; |
| } |
| |
| static int |
| OperandSem_opnd_sem_soffsetx4_decode (uint32 *valp) |
| { |
| unsigned soffsetx4_out_0; |
| unsigned soffsetx4_in_0; |
| soffsetx4_in_0 = *valp & 0x3ffff; |
| soffsetx4_out_0 = 0x4 + ((((int) soffsetx4_in_0 << 14) >> 14) << 2); |
| *valp = soffsetx4_out_0; |
| return 0; |
| } |
| |
| static int |
| OperandSem_opnd_sem_soffsetx4_encode (uint32 *valp) |
| { |
| unsigned soffsetx4_in_0; |
| unsigned soffsetx4_out_0; |
| soffsetx4_out_0 = *valp; |
| soffsetx4_in_0 = ((soffsetx4_out_0 - 0x4) >> 2) & 0x3ffff; |
|