17c87d074SBastian Koppelmann /* 27c87d074SBastian Koppelmann * Copyright (c) 2012-2014 Bastian Koppelmann C-Lab/University Paderborn 37c87d074SBastian Koppelmann * 47c87d074SBastian Koppelmann * This library is free software; you can redistribute it and/or 57c87d074SBastian Koppelmann * modify it under the terms of the GNU Lesser General Public 67c87d074SBastian Koppelmann * License as published by the Free Software Foundation; either 77c87d074SBastian Koppelmann * version 2 of the License, or (at your option) any later version. 87c87d074SBastian Koppelmann * 97c87d074SBastian Koppelmann * This library is distributed in the hope that it will be useful, 107c87d074SBastian Koppelmann * but WITHOUT ANY WARRANTY; without even the implied warranty of 117c87d074SBastian Koppelmann * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 127c87d074SBastian Koppelmann * Lesser General Public License for more details. 137c87d074SBastian Koppelmann * 147c87d074SBastian Koppelmann * You should have received a copy of the GNU Lesser General Public 157c87d074SBastian Koppelmann * License along with this library; if not, see <http://www.gnu.org/licenses/>. 167c87d074SBastian Koppelmann */ 177c87d074SBastian Koppelmann 187c87d074SBastian Koppelmann /* 197c87d074SBastian Koppelmann * Opcode Masks for Tricore 207c87d074SBastian Koppelmann * Format MASK_OP_InstrFormatName_Field 217c87d074SBastian Koppelmann */ 227c87d074SBastian Koppelmann 237c87d074SBastian Koppelmann /* This creates a mask with bits start .. end set to 1 and applies it to op */ 247c87d074SBastian Koppelmann #define MASK_BITS_SHIFT(op, start, end) (extract32(op, (start), \ 257c87d074SBastian Koppelmann (end) - (start) + 1)) 267c87d074SBastian Koppelmann #define MASK_BITS_SHIFT_SEXT(op, start, end) (sextract32(op, (start),\ 277c87d074SBastian Koppelmann (end) - (start) + 1)) 287c87d074SBastian Koppelmann 297c87d074SBastian Koppelmann /* new opcode masks */ 307c87d074SBastian Koppelmann 317c87d074SBastian Koppelmann #define MASK_OP_MAJOR(op) MASK_BITS_SHIFT(op, 0, 7) 327c87d074SBastian Koppelmann 337c87d074SBastian Koppelmann /* 16-Bit Formats */ 347c87d074SBastian Koppelmann #define MASK_OP_SB_DISP8(op) MASK_BITS_SHIFT(op, 8, 15) 357c87d074SBastian Koppelmann #define MASK_OP_SB_DISP8_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 8, 15) 367c87d074SBastian Koppelmann 377c87d074SBastian Koppelmann #define MASK_OP_SBC_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 387c87d074SBastian Koppelmann #define MASK_OP_SBC_CONST4_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 15) 397c87d074SBastian Koppelmann #define MASK_OP_SBC_DISP4(op) MASK_BITS_SHIFT(op, 8, 11) 407c87d074SBastian Koppelmann 417c87d074SBastian Koppelmann #define MASK_OP_SBR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 427c87d074SBastian Koppelmann #define MASK_OP_SBR_DISP4(op) MASK_BITS_SHIFT(op, 8, 11) 437c87d074SBastian Koppelmann 447c87d074SBastian Koppelmann #define MASK_OP_SBRN_N(op) MASK_BITS_SHIFT(op, 12, 15) 457c87d074SBastian Koppelmann #define MASK_OP_SBRN_DISP4(op) MASK_BITS_SHIFT(op, 8, 11) 467c87d074SBastian Koppelmann 477c87d074SBastian Koppelmann #define MASK_OP_SC_CONST8(op) MASK_BITS_SHIFT(op, 8, 15) 487c87d074SBastian Koppelmann 497c87d074SBastian Koppelmann #define MASK_OP_SLR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 507c87d074SBastian Koppelmann #define MASK_OP_SLR_D(op) MASK_BITS_SHIFT(op, 8, 11) 517c87d074SBastian Koppelmann 527c87d074SBastian Koppelmann #define MASK_OP_SLRO_OFF4(op) MASK_BITS_SHIFT(op, 12, 15) 537c87d074SBastian Koppelmann #define MASK_OP_SLRO_D(op) MASK_BITS_SHIFT(op, 8, 11) 547c87d074SBastian Koppelmann 557c87d074SBastian Koppelmann #define MASK_OP_SR_OP2(op) MASK_BITS_SHIFT(op, 12, 15) 567c87d074SBastian Koppelmann #define MASK_OP_SR_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 577c87d074SBastian Koppelmann 587c87d074SBastian Koppelmann #define MASK_OP_SRC_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 597c87d074SBastian Koppelmann #define MASK_OP_SRC_CONST4_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 15) 607c87d074SBastian Koppelmann #define MASK_OP_SRC_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 617c87d074SBastian Koppelmann 627c87d074SBastian Koppelmann #define MASK_OP_SRO_S2(op) MASK_BITS_SHIFT(op, 12, 15) 637c87d074SBastian Koppelmann #define MASK_OP_SRO_OFF4(op) MASK_BITS_SHIFT(op, 8, 11) 647c87d074SBastian Koppelmann 657c87d074SBastian Koppelmann #define MASK_OP_SRR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 667c87d074SBastian Koppelmann #define MASK_OP_SRR_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 677c87d074SBastian Koppelmann 687c87d074SBastian Koppelmann #define MASK_OP_SRRS_S2(op) MASK_BITS_SHIFT(op, 12, 15) 697c87d074SBastian Koppelmann #define MASK_OP_SRRS_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 707c87d074SBastian Koppelmann #define MASK_OP_SRRS_N(op) MASK_BITS_SHIFT(op, 6, 7) 717c87d074SBastian Koppelmann 727c87d074SBastian Koppelmann #define MASK_OP_SSR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 737c87d074SBastian Koppelmann #define MASK_OP_SSR_S1(op) MASK_BITS_SHIFT(op, 8, 11) 747c87d074SBastian Koppelmann 757c87d074SBastian Koppelmann #define MASK_OP_SSRO_OFF4(op) MASK_BITS_SHIFT(op, 12, 15) 767c87d074SBastian Koppelmann #define MASK_OP_SSRO_S1(op) MASK_BITS_SHIFT(op, 8, 11) 777c87d074SBastian Koppelmann 787c87d074SBastian Koppelmann /* 32-Bit Formats */ 797c87d074SBastian Koppelmann 807c87d074SBastian Koppelmann /* ABS Format */ 817c87d074SBastian Koppelmann #define MASK_OP_ABS_OFF18(op) (MASK_BITS_SHIFT(op, 16, 21) + \ 827c87d074SBastian Koppelmann (MASK_BITS_SHIFT(op, 28, 31) << 6) + \ 837c87d074SBastian Koppelmann (MASK_BITS_SHIFT(op, 22, 25) << 10) +\ 847c87d074SBastian Koppelmann (MASK_BITS_SHIFT(op, 12, 15) << 14)) 857c87d074SBastian Koppelmann #define MASK_OP_ABS_OP2(op) MASK_BITS_SHIFT(op, 26, 27) 867c87d074SBastian Koppelmann #define MASK_OP_ABS_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 877c87d074SBastian Koppelmann 887c87d074SBastian Koppelmann /* ABSB Format */ 897c87d074SBastian Koppelmann #define MASK_OP_ABSB_OFF18(op) MASK_OP_ABS_OFF18(op) 907c87d074SBastian Koppelmann #define MASK_OP_ABSB_OP2(op) MASK_BITS_SHIFT(op, 26, 27) 917c87d074SBastian Koppelmann #define MASK_OP_ABSB_B(op) MASK_BITS_SHIFT(op, 11, 11) 92030c58dfSBastian Koppelmann #define MASK_OP_ABSB_BPOS(op) MASK_BITS_SHIFT(op, 8, 10) 937c87d074SBastian Koppelmann 947c87d074SBastian Koppelmann /* B Format */ 957c87d074SBastian Koppelmann #define MASK_OP_B_DISP24(op) (MASK_BITS_SHIFT(op, 16, 31) + \ 967c87d074SBastian Koppelmann (MASK_BITS_SHIFT(op, 8, 15) << 16)) 97436d63ffSBastian Koppelmann #define MASK_OP_B_DISP24_SEXT(op) (MASK_BITS_SHIFT(op, 16, 31) + \ 98436d63ffSBastian Koppelmann (MASK_BITS_SHIFT_SEXT(op, 8, 15) << 16)) 997c87d074SBastian Koppelmann /* BIT Format */ 1007c87d074SBastian Koppelmann #define MASK_OP_BIT_D(op) MASK_BITS_SHIFT(op, 28, 31) 1017c87d074SBastian Koppelmann #define MASK_OP_BIT_POS2(op) MASK_BITS_SHIFT(op, 23, 27) 1027c87d074SBastian Koppelmann #define MASK_OP_BIT_OP2(op) MASK_BITS_SHIFT(op, 21, 22) 1037c87d074SBastian Koppelmann #define MASK_OP_BIT_POS1(op) MASK_BITS_SHIFT(op, 16, 20) 1047c87d074SBastian Koppelmann #define MASK_OP_BIT_S2(op) MASK_BITS_SHIFT(op, 12, 15) 1057c87d074SBastian Koppelmann #define MASK_OP_BIT_S1(op) MASK_BITS_SHIFT(op, 8, 11) 1067c87d074SBastian Koppelmann 1077c87d074SBastian Koppelmann /* BO Format */ 1087c87d074SBastian Koppelmann #define MASK_OP_BO_OFF10(op) (MASK_BITS_SHIFT(op, 16, 21) + \ 1097c87d074SBastian Koppelmann (MASK_BITS_SHIFT(op, 28, 31) << 6)) 1103a16ecb0SBastian Koppelmann #define MASK_OP_BO_OFF10_SEXT(op) (MASK_BITS_SHIFT_SEXT(op, 16, 21) + \ 1113a16ecb0SBastian Koppelmann (MASK_BITS_SHIFT_SEXT(op, 28, 31) << 6)) 1127c87d074SBastian Koppelmann #define MASK_OP_BO_OP2(op) MASK_BITS_SHIFT(op, 22, 27) 1137c87d074SBastian Koppelmann #define MASK_OP_BO_S2(op) MASK_BITS_SHIFT(op, 12, 15) 1147c87d074SBastian Koppelmann #define MASK_OP_BO_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 1157c87d074SBastian Koppelmann 1167c87d074SBastian Koppelmann /* BOL Format */ 1177c87d074SBastian Koppelmann #define MASK_OP_BOL_OFF16(op) ((MASK_BITS_SHIFT(op, 16, 21) + \ 1187c87d074SBastian Koppelmann (MASK_BITS_SHIFT(op, 28, 31) << 6)) + \ 119781b717cSAlex Zuepke (MASK_BITS_SHIFT(op, 22, 27) << 10)) 1203fb763cbSBastian Koppelmann #define MASK_OP_BOL_OFF16_SEXT(op) ((MASK_BITS_SHIFT(op, 16, 21) + \ 1213fb763cbSBastian Koppelmann (MASK_BITS_SHIFT(op, 28, 31) << 6)) + \ 1223fb763cbSBastian Koppelmann (MASK_BITS_SHIFT_SEXT(op, 22, 27) << 10)) 1237c87d074SBastian Koppelmann #define MASK_OP_BOL_S2(op) MASK_BITS_SHIFT(op, 12, 15) 1247c87d074SBastian Koppelmann #define MASK_OP_BOL_S1D(op) MASK_BITS_SHIFT(op, 8, 11) 1257c87d074SBastian Koppelmann 1267c87d074SBastian Koppelmann /* BRC Format */ 1277c87d074SBastian Koppelmann #define MASK_OP_BRC_OP2(op) MASK_BITS_SHIFT(op, 31, 31) 1287c87d074SBastian Koppelmann #define MASK_OP_BRC_DISP15(op) MASK_BITS_SHIFT(op, 16, 30) 129fc2ef4a3SBastian Koppelmann #define MASK_OP_BRC_DISP15_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 16, 30) 1307c87d074SBastian Koppelmann #define MASK_OP_BRC_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 131fc2ef4a3SBastian Koppelmann #define MASK_OP_BRC_CONST4_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 15) 1327c87d074SBastian Koppelmann #define MASK_OP_BRC_S1(op) MASK_BITS_SHIFT(op, 8, 11) 1337c87d074SBastian Koppelmann 1347c87d074SBastian Koppelmann /* BRN Format */ 1357c87d074SBastian Koppelmann #define MASK_OP_BRN_OP2(op) MASK_BITS_SHIFT(op, 31, 31) 1367c87d074SBastian Koppelmann #define MASK_OP_BRN_DISP15(op) MASK_BITS_SHIFT(op, 16, 30) 13783c1bb18SBastian Koppelmann #define MASK_OP_BRN_DISP15_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 16, 30) 1387c87d074SBastian Koppelmann #define MASK_OP_BRN_N(op) (MASK_BITS_SHIFT(op, 12, 15) + \ 1397c87d074SBastian Koppelmann (MASK_BITS_SHIFT(op, 7, 7) << 4)) 1407c87d074SBastian Koppelmann #define MASK_OP_BRN_S1(op) MASK_BITS_SHIFT(op, 8, 11) 1417c87d074SBastian Koppelmann /* BRR Format */ 1427c87d074SBastian Koppelmann #define MASK_OP_BRR_OP2(op) MASK_BITS_SHIFT(op, 31, 31) 1437c87d074SBastian Koppelmann #define MASK_OP_BRR_DISP15(op) MASK_BITS_SHIFT(op, 16, 30) 144a68e0d54SBastian Koppelmann #define MASK_OP_BRR_DISP15_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 16, 30) 1457c87d074SBastian Koppelmann #define MASK_OP_BRR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 1467c87d074SBastian Koppelmann #define MASK_OP_BRR_S1(op) MASK_BITS_SHIFT(op, 8, 11) 1477c87d074SBastian Koppelmann 1487c87d074SBastian Koppelmann /* META MASK for similar instr Formats */ 1497c87d074SBastian Koppelmann #define MASK_OP_META_D(op) MASK_BITS_SHIFT(op, 28, 31) 1507c87d074SBastian Koppelmann #define MASK_OP_META_S1(op) MASK_BITS_SHIFT(op, 8, 11) 1517c87d074SBastian Koppelmann 1527c87d074SBastian Koppelmann /* RC Format */ 1537c87d074SBastian Koppelmann #define MASK_OP_RC_D(op) MASK_OP_META_D(op) 1547c87d074SBastian Koppelmann #define MASK_OP_RC_OP2(op) MASK_BITS_SHIFT(op, 21, 27) 1557c87d074SBastian Koppelmann #define MASK_OP_RC_CONST9(op) MASK_BITS_SHIFT(op, 12, 20) 1560974257eSBastian Koppelmann #define MASK_OP_RC_CONST9_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 20) 1577c87d074SBastian Koppelmann #define MASK_OP_RC_S1(op) MASK_OP_META_S1(op) 1587c87d074SBastian Koppelmann 1597c87d074SBastian Koppelmann /* RCPW Format */ 1607c87d074SBastian Koppelmann 1617c87d074SBastian Koppelmann #define MASK_OP_RCPW_D(op) MASK_OP_META_D(op) 1627c87d074SBastian Koppelmann #define MASK_OP_RCPW_POS(op) MASK_BITS_SHIFT(op, 23, 27) 1637c87d074SBastian Koppelmann #define MASK_OP_RCPW_OP2(op) MASK_BITS_SHIFT(op, 21, 22) 1647c87d074SBastian Koppelmann #define MASK_OP_RCPW_WIDTH(op) MASK_BITS_SHIFT(op, 16, 20) 1657c87d074SBastian Koppelmann #define MASK_OP_RCPW_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 1667c87d074SBastian Koppelmann #define MASK_OP_RCPW_S1(op) MASK_OP_META_S1(op) 1677c87d074SBastian Koppelmann 1687c87d074SBastian Koppelmann /* RCR Format */ 1697c87d074SBastian Koppelmann 1707c87d074SBastian Koppelmann #define MASK_OP_RCR_D(op) MASK_OP_META_D(op) 1717c87d074SBastian Koppelmann #define MASK_OP_RCR_S3(op) MASK_BITS_SHIFT(op, 24, 27) 1727c87d074SBastian Koppelmann #define MASK_OP_RCR_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 1737c87d074SBastian Koppelmann #define MASK_OP_RCR_CONST9(op) MASK_BITS_SHIFT(op, 12, 20) 174328f1f0fSBastian Koppelmann #define MASK_OP_RCR_CONST9_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 20) 1757c87d074SBastian Koppelmann #define MASK_OP_RCR_S1(op) MASK_OP_META_S1(op) 1767c87d074SBastian Koppelmann 1777c87d074SBastian Koppelmann /* RCRR Format */ 1787c87d074SBastian Koppelmann 1797c87d074SBastian Koppelmann #define MASK_OP_RCRR_D(op) MASK_OP_META_D(op) 1807c87d074SBastian Koppelmann #define MASK_OP_RCRR_S3(op) MASK_BITS_SHIFT(op, 24, 27) 1817c87d074SBastian Koppelmann #define MASK_OP_RCRR_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 1827c87d074SBastian Koppelmann #define MASK_OP_RCRR_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 1837c87d074SBastian Koppelmann #define MASK_OP_RCRR_S1(op) MASK_OP_META_S1(op) 1847c87d074SBastian Koppelmann 1857c87d074SBastian Koppelmann /* RCRW Format */ 1867c87d074SBastian Koppelmann 1877c87d074SBastian Koppelmann #define MASK_OP_RCRW_D(op) MASK_OP_META_D(op) 1887c87d074SBastian Koppelmann #define MASK_OP_RCRW_S3(op) MASK_BITS_SHIFT(op, 24, 27) 1897c87d074SBastian Koppelmann #define MASK_OP_RCRW_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 1907c87d074SBastian Koppelmann #define MASK_OP_RCRW_WIDTH(op) MASK_BITS_SHIFT(op, 16, 20) 1917c87d074SBastian Koppelmann #define MASK_OP_RCRW_CONST4(op) MASK_BITS_SHIFT(op, 12, 15) 1927c87d074SBastian Koppelmann #define MASK_OP_RCRW_S1(op) MASK_OP_META_S1(op) 1937c87d074SBastian Koppelmann 1947c87d074SBastian Koppelmann /* RLC Format */ 1957c87d074SBastian Koppelmann 1967c87d074SBastian Koppelmann #define MASK_OP_RLC_D(op) MASK_OP_META_D(op) 1977c87d074SBastian Koppelmann #define MASK_OP_RLC_CONST16(op) MASK_BITS_SHIFT(op, 12, 27) 1982b2f7d97SBastian Koppelmann #define MASK_OP_RLC_CONST16_SEXT(op) MASK_BITS_SHIFT_SEXT(op, 12, 27) 1997c87d074SBastian Koppelmann #define MASK_OP_RLC_S1(op) MASK_OP_META_S1(op) 2007c87d074SBastian Koppelmann 2017c87d074SBastian Koppelmann /* RR Format */ 2027c87d074SBastian Koppelmann #define MASK_OP_RR_D(op) MASK_OP_META_D(op) 2037c87d074SBastian Koppelmann #define MASK_OP_RR_OP2(op) MASK_BITS_SHIFT(op, 20, 27) 2047c87d074SBastian Koppelmann #define MASK_OP_RR_N(op) MASK_BITS_SHIFT(op, 16, 17) 2057c87d074SBastian Koppelmann #define MASK_OP_RR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2067c87d074SBastian Koppelmann #define MASK_OP_RR_S1(op) MASK_OP_META_S1(op) 2077c87d074SBastian Koppelmann 2087c87d074SBastian Koppelmann /* RR1 Format */ 2097c87d074SBastian Koppelmann #define MASK_OP_RR1_D(op) MASK_OP_META_D(op) 2107c87d074SBastian Koppelmann #define MASK_OP_RR1_OP2(op) MASK_BITS_SHIFT(op, 18, 27) 2117c87d074SBastian Koppelmann #define MASK_OP_RR1_N(op) MASK_BITS_SHIFT(op, 16, 17) 2127c87d074SBastian Koppelmann #define MASK_OP_RR1_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2137c87d074SBastian Koppelmann #define MASK_OP_RR1_S1(op) MASK_OP_META_S1(op) 2147c87d074SBastian Koppelmann 2157c87d074SBastian Koppelmann /* RR2 Format */ 2167c87d074SBastian Koppelmann #define MASK_OP_RR2_D(op) MASK_OP_META_D(op) 2177c87d074SBastian Koppelmann #define MASK_OP_RR2_OP2(op) MASK_BITS_SHIFT(op, 16, 27) 2187c87d074SBastian Koppelmann #define MASK_OP_RR2_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2197c87d074SBastian Koppelmann #define MASK_OP_RR2_S1(op) MASK_OP_META_S1(op) 2207c87d074SBastian Koppelmann 2217c87d074SBastian Koppelmann /* RRPW Format */ 2227c87d074SBastian Koppelmann #define MASK_OP_RRPW_D(op) MASK_OP_META_D(op) 2237c87d074SBastian Koppelmann #define MASK_OP_RRPW_POS(op) MASK_BITS_SHIFT(op, 23, 27) 2247c87d074SBastian Koppelmann #define MASK_OP_RRPW_OP2(op) MASK_BITS_SHIFT(op, 21, 22) 2257c87d074SBastian Koppelmann #define MASK_OP_RRPW_WIDTH(op) MASK_BITS_SHIFT(op, 16, 20) 2267c87d074SBastian Koppelmann #define MASK_OP_RRPW_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2277c87d074SBastian Koppelmann #define MASK_OP_RRPW_S1(op) MASK_OP_META_S1(op) 2287c87d074SBastian Koppelmann 2297c87d074SBastian Koppelmann /* RRR Format */ 2307c87d074SBastian Koppelmann #define MASK_OP_RRR_D(op) MASK_OP_META_D(op) 2317c87d074SBastian Koppelmann #define MASK_OP_RRR_S3(op) MASK_BITS_SHIFT(op, 24, 27) 2327c87d074SBastian Koppelmann #define MASK_OP_RRR_OP2(op) MASK_BITS_SHIFT(op, 20, 23) 2337c87d074SBastian Koppelmann #define MASK_OP_RRR_N(op) MASK_BITS_SHIFT(op, 16, 17) 2347c87d074SBastian Koppelmann #define MASK_OP_RRR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2357c87d074SBastian Koppelmann #define MASK_OP_RRR_S1(op) MASK_OP_META_S1(op) 2367c87d074SBastian Koppelmann 2377c87d074SBastian Koppelmann /* RRR1 Format */ 2387c87d074SBastian Koppelmann #define MASK_OP_RRR1_D(op) MASK_OP_META_D(op) 2397c87d074SBastian Koppelmann #define MASK_OP_RRR1_S3(op) MASK_BITS_SHIFT(op, 24, 27) 2407c87d074SBastian Koppelmann #define MASK_OP_RRR1_OP2(op) MASK_BITS_SHIFT(op, 18, 23) 2417c87d074SBastian Koppelmann #define MASK_OP_RRR1_N(op) MASK_BITS_SHIFT(op, 16, 17) 2427c87d074SBastian Koppelmann #define MASK_OP_RRR1_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2437c87d074SBastian Koppelmann #define MASK_OP_RRR1_S1(op) MASK_OP_META_S1(op) 2447c87d074SBastian Koppelmann 2457c87d074SBastian Koppelmann /* RRR2 Format */ 2467c87d074SBastian Koppelmann #define MASK_OP_RRR2_D(op) MASK_OP_META_D(op) 2477c87d074SBastian Koppelmann #define MASK_OP_RRR2_S3(op) MASK_BITS_SHIFT(op, 24, 27) 2487c87d074SBastian Koppelmann #define MASK_OP_RRR2_OP2(op) MASK_BITS_SHIFT(op, 16, 23) 2497c87d074SBastian Koppelmann #define MASK_OP_RRR2_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2507c87d074SBastian Koppelmann #define MASK_OP_RRR2_S1(op) MASK_OP_META_S1(op) 2517c87d074SBastian Koppelmann 2527c87d074SBastian Koppelmann /* RRRR Format */ 2537c87d074SBastian Koppelmann #define MASK_OP_RRRR_D(op) MASK_OP_META_D(op) 2547c87d074SBastian Koppelmann #define MASK_OP_RRRR_S3(op) MASK_BITS_SHIFT(op, 24, 27) 2557c87d074SBastian Koppelmann #define MASK_OP_RRRR_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 2567c87d074SBastian Koppelmann #define MASK_OP_RRRR_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2577c87d074SBastian Koppelmann #define MASK_OP_RRRR_S1(op) MASK_OP_META_S1(op) 2587c87d074SBastian Koppelmann 2597c87d074SBastian Koppelmann /* RRRW Format */ 2607c87d074SBastian Koppelmann #define MASK_OP_RRRW_D(op) MASK_OP_META_D(op) 2617c87d074SBastian Koppelmann #define MASK_OP_RRRW_S3(op) MASK_BITS_SHIFT(op, 24, 27) 2627c87d074SBastian Koppelmann #define MASK_OP_RRRW_OP2(op) MASK_BITS_SHIFT(op, 21, 23) 2637c87d074SBastian Koppelmann #define MASK_OP_RRRW_WIDTH(op) MASK_BITS_SHIFT(op, 16, 20) 2647c87d074SBastian Koppelmann #define MASK_OP_RRRW_S2(op) MASK_BITS_SHIFT(op, 12, 15) 2657c87d074SBastian Koppelmann #define MASK_OP_RRRW_S1(op) MASK_OP_META_S1(op) 2667c87d074SBastian Koppelmann 2677c87d074SBastian Koppelmann /* SYS Format */ 2687c87d074SBastian Koppelmann #define MASK_OP_SYS_OP2(op) MASK_BITS_SHIFT(op, 22, 27) 2697c87d074SBastian Koppelmann #define MASK_OP_SYS_S1D(op) MASK_OP_META_S1(op) 2707c87d074SBastian Koppelmann 2717c87d074SBastian Koppelmann 2727c87d074SBastian Koppelmann 2737c87d074SBastian Koppelmann /* 2747c87d074SBastian Koppelmann * Tricore Opcodes Enums 2757c87d074SBastian Koppelmann * 2767c87d074SBastian Koppelmann * Format: OPC(1|2|M)_InstrLen_Name 2777c87d074SBastian Koppelmann * OPC1 = only op1 field is used 2787c87d074SBastian Koppelmann * OPC2 = op1 and op2 field used part of OPCM 2797c87d074SBastian Koppelmann * OPCM = op1 field used to group Instr 2807c87d074SBastian Koppelmann * InstrLen = 16|32 2817c87d074SBastian Koppelmann * Name = Name of Instr 2827c87d074SBastian Koppelmann */ 2837c87d074SBastian Koppelmann 2847c87d074SBastian Koppelmann /* 16-Bit */ 2857c87d074SBastian Koppelmann enum { 2867c87d074SBastian Koppelmann 2877c87d074SBastian Koppelmann OPCM_16_SR_SYSTEM = 0x00, 2887c87d074SBastian Koppelmann OPCM_16_SR_ACCU = 0x32, 2897c87d074SBastian Koppelmann 2907c87d074SBastian Koppelmann OPC1_16_SRC_ADD = 0xc2, 2917c87d074SBastian Koppelmann OPC1_16_SRC_ADD_A15 = 0x92, 2927c87d074SBastian Koppelmann OPC1_16_SRC_ADD_15A = 0x9a, 2937c87d074SBastian Koppelmann OPC1_16_SRR_ADD = 0x42, 2947c87d074SBastian Koppelmann OPC1_16_SRR_ADD_A15 = 0x12, 2957c87d074SBastian Koppelmann OPC1_16_SRR_ADD_15A = 0x1a, 2967c87d074SBastian Koppelmann OPC1_16_SRC_ADD_A = 0xb0, 2977c87d074SBastian Koppelmann OPC1_16_SRR_ADD_A = 0x30, 2987c87d074SBastian Koppelmann OPC1_16_SRR_ADDS = 0x22, 2997c87d074SBastian Koppelmann OPC1_16_SRRS_ADDSC_A = 0x10, 3007c87d074SBastian Koppelmann OPC1_16_SC_AND = 0x16, 3017c87d074SBastian Koppelmann OPC1_16_SRR_AND = 0x26, 3027c87d074SBastian Koppelmann OPC1_16_SC_BISR = 0xe0, 3037c87d074SBastian Koppelmann OPC1_16_SRC_CADD = 0x8a, 3047c87d074SBastian Koppelmann OPC1_16_SRC_CADDN = 0xca, 3057c87d074SBastian Koppelmann OPC1_16_SB_CALL = 0x5c, 3067c87d074SBastian Koppelmann OPC1_16_SRC_CMOV = 0xaa, 3077c87d074SBastian Koppelmann OPC1_16_SRR_CMOV = 0x2a, 3087c87d074SBastian Koppelmann OPC1_16_SRC_CMOVN = 0xea, 3097c87d074SBastian Koppelmann OPC1_16_SRR_CMOVN = 0x6a, 3107c87d074SBastian Koppelmann OPC1_16_SRC_EQ = 0xba, 3117c87d074SBastian Koppelmann OPC1_16_SRR_EQ = 0x3a, 3127c87d074SBastian Koppelmann OPC1_16_SB_J = 0x3c, 3137c87d074SBastian Koppelmann OPC1_16_SBC_JEQ = 0x1e, 3147c87d074SBastian Koppelmann OPC1_16_SBR_JEQ = 0x3e, 3157c87d074SBastian Koppelmann OPC1_16_SBR_JGEZ = 0xce, 3167c87d074SBastian Koppelmann OPC1_16_SBR_JGTZ = 0x4e, 3177c87d074SBastian Koppelmann OPC1_16_SR_JI = 0xdc, 3187c87d074SBastian Koppelmann OPC1_16_SBR_JLEZ = 0x8e, 3197c87d074SBastian Koppelmann OPC1_16_SBR_JLTZ = 0x0e, 3207c87d074SBastian Koppelmann OPC1_16_SBC_JNE = 0x5e, 3217c87d074SBastian Koppelmann OPC1_16_SBR_JNE = 0x7e, 3227c87d074SBastian Koppelmann OPC1_16_SB_JNZ = 0xee, 3237c87d074SBastian Koppelmann OPC1_16_SBR_JNZ = 0xf6, 3247c87d074SBastian Koppelmann OPC1_16_SBR_JNZ_A = 0x7c, 3257c87d074SBastian Koppelmann OPC1_16_SBRN_JNZ_T = 0xae, 3267c87d074SBastian Koppelmann OPC1_16_SB_JZ = 0x6e, 3277c87d074SBastian Koppelmann OPC1_16_SBR_JZ = 0x76, 3287c87d074SBastian Koppelmann OPC1_16_SBR_JZ_A = 0xbc, 3297c87d074SBastian Koppelmann OPC1_16_SBRN_JZ_T = 0x2e, 3307c87d074SBastian Koppelmann OPC1_16_SC_LD_A = 0xd8, 3317c87d074SBastian Koppelmann OPC1_16_SLR_LD_A = 0xd4, 3327c87d074SBastian Koppelmann OPC1_16_SLR_LD_A_POSTINC = 0xc4, 3337c87d074SBastian Koppelmann OPC1_16_SLRO_LD_A = 0xc8, 3347c87d074SBastian Koppelmann OPC1_16_SRO_LD_A = 0xcc, 3357c87d074SBastian Koppelmann OPC1_16_SLR_LD_BU = 0x14, 3367c87d074SBastian Koppelmann OPC1_16_SLR_LD_BU_POSTINC = 0x04, 3377c87d074SBastian Koppelmann OPC1_16_SLRO_LD_BU = 0x08, 3387c87d074SBastian Koppelmann OPC1_16_SRO_LD_BU = 0x0c, 3397c87d074SBastian Koppelmann OPC1_16_SLR_LD_H = 0x94, 3407c87d074SBastian Koppelmann OPC1_16_SLR_LD_H_POSTINC = 0x84, 3417c87d074SBastian Koppelmann OPC1_16_SLRO_LD_H = 0x88, 3427c87d074SBastian Koppelmann OPC1_16_SRO_LD_H = 0x8c, 3437c87d074SBastian Koppelmann OPC1_16_SC_LD_W = 0x58, 3447c87d074SBastian Koppelmann OPC1_16_SLR_LD_W = 0x54, 3457c87d074SBastian Koppelmann OPC1_16_SLR_LD_W_POSTINC = 0x44, 3467c87d074SBastian Koppelmann OPC1_16_SLRO_LD_W = 0x48, 3477c87d074SBastian Koppelmann OPC1_16_SRO_LD_W = 0x4c, 3487c87d074SBastian Koppelmann OPC1_16_SBR_LOOP = 0xfc, 3497c87d074SBastian Koppelmann OPC1_16_SRC_LT = 0xfa, 3507c87d074SBastian Koppelmann OPC1_16_SRR_LT = 0x7a, 3517c87d074SBastian Koppelmann OPC1_16_SC_MOV = 0xda, 3527c87d074SBastian Koppelmann OPC1_16_SRC_MOV = 0x82, 3537c87d074SBastian Koppelmann OPC1_16_SRR_MOV = 0x02, 3547c87d074SBastian Koppelmann OPC1_16_SRC_MOV_E = 0xd2,/* 1.6 only */ 3557c87d074SBastian Koppelmann OPC1_16_SRC_MOV_A = 0xa0, 3567c87d074SBastian Koppelmann OPC1_16_SRR_MOV_A = 0x60, 3577c87d074SBastian Koppelmann OPC1_16_SRR_MOV_AA = 0x40, 3587c87d074SBastian Koppelmann OPC1_16_SRR_MOV_D = 0x80, 3597c87d074SBastian Koppelmann OPC1_16_SRR_MUL = 0xe2, 3607c87d074SBastian Koppelmann OPC1_16_SR_NOT = 0x46, 3617c87d074SBastian Koppelmann OPC1_16_SC_OR = 0x96, 3627c87d074SBastian Koppelmann OPC1_16_SRR_OR = 0xa6, 3637c87d074SBastian Koppelmann OPC1_16_SRC_SH = 0x06, 3647c87d074SBastian Koppelmann OPC1_16_SRC_SHA = 0x86, 3657c87d074SBastian Koppelmann OPC1_16_SC_ST_A = 0xf8, 3667c87d074SBastian Koppelmann OPC1_16_SRO_ST_A = 0xec, 3677c87d074SBastian Koppelmann OPC1_16_SSR_ST_A = 0xf4, 3687c87d074SBastian Koppelmann OPC1_16_SSR_ST_A_POSTINC = 0xe4, 3697c87d074SBastian Koppelmann OPC1_16_SSRO_ST_A = 0xe8, 3707c87d074SBastian Koppelmann OPC1_16_SRO_ST_B = 0x2c, 3717c87d074SBastian Koppelmann OPC1_16_SSR_ST_B = 0x34, 3727c87d074SBastian Koppelmann OPC1_16_SSR_ST_B_POSTINC = 0x24, 3737c87d074SBastian Koppelmann OPC1_16_SSRO_ST_B = 0x28, 3747c87d074SBastian Koppelmann OPC1_16_SRO_ST_H = 0xac, 3757c87d074SBastian Koppelmann OPC1_16_SSR_ST_H = 0xb4, 3767c87d074SBastian Koppelmann OPC1_16_SSR_ST_H_POSTINC = 0xa4, 3777c87d074SBastian Koppelmann OPC1_16_SSRO_ST_H = 0xa8, 3787c87d074SBastian Koppelmann OPC1_16_SC_ST_W = 0x78, 3797c87d074SBastian Koppelmann OPC1_16_SRO_ST_W = 0x6c, 3807c87d074SBastian Koppelmann OPC1_16_SSR_ST_W = 0x74, 3817c87d074SBastian Koppelmann OPC1_16_SSR_ST_W_POSTINC = 0x64, 3827c87d074SBastian Koppelmann OPC1_16_SSRO_ST_W = 0x68, 3837c87d074SBastian Koppelmann OPC1_16_SRR_SUB = 0xa2, 3847c87d074SBastian Koppelmann OPC1_16_SRR_SUB_A15B = 0x52, 3857c87d074SBastian Koppelmann OPC1_16_SRR_SUB_15AB = 0x5a, 3867c87d074SBastian Koppelmann OPC1_16_SC_SUB_A = 0x20, 3877c87d074SBastian Koppelmann OPC1_16_SRR_SUBS = 0x62, 3887c87d074SBastian Koppelmann OPC1_16_SRR_XOR = 0xc6, 3897c87d074SBastian Koppelmann 3907c87d074SBastian Koppelmann }; 3917c87d074SBastian Koppelmann 3927c87d074SBastian Koppelmann /* 3937c87d074SBastian Koppelmann * SR Format 3947c87d074SBastian Koppelmann */ 3957c87d074SBastian Koppelmann /* OPCM_16_SR_SYSTEM */ 3967c87d074SBastian Koppelmann enum { 3977c87d074SBastian Koppelmann 3987c87d074SBastian Koppelmann OPC2_16_SR_NOP = 0x00, 3997c87d074SBastian Koppelmann OPC2_16_SR_RET = 0x09, 4007c87d074SBastian Koppelmann OPC2_16_SR_RFE = 0x08, 4017c87d074SBastian Koppelmann OPC2_16_SR_DEBUG = 0x0a, 4027c87d074SBastian Koppelmann }; 4037c87d074SBastian Koppelmann /* OPCM_16_SR_ACCU */ 4047c87d074SBastian Koppelmann enum { 4057c87d074SBastian Koppelmann OPC2_16_SR_RSUB = 0x05, 4067c87d074SBastian Koppelmann OPC2_16_SR_SAT_B = 0x00, 4077c87d074SBastian Koppelmann OPC2_16_SR_SAT_BU = 0x01, 4087c87d074SBastian Koppelmann OPC2_16_SR_SAT_H = 0x02, 4097c87d074SBastian Koppelmann OPC2_16_SR_SAT_HU = 0x03, 4107c87d074SBastian Koppelmann 4117c87d074SBastian Koppelmann }; 4127c87d074SBastian Koppelmann 4137c87d074SBastian Koppelmann /* 32-Bit */ 4147c87d074SBastian Koppelmann 4157c87d074SBastian Koppelmann enum { 4167c87d074SBastian Koppelmann /* ABS Format 1, M */ 4177c87d074SBastian Koppelmann OPCM_32_ABS_LDW = 0x85, 4187c87d074SBastian Koppelmann OPCM_32_ABS_LDB = 0x05, 4197c87d074SBastian Koppelmann OPCM_32_ABS_LDMST_SWAP = 0xe5, 4207c87d074SBastian Koppelmann OPCM_32_ABS_LDST_CONTEXT = 0x15, 4217c87d074SBastian Koppelmann OPCM_32_ABS_STORE = 0xa5, 4227c87d074SBastian Koppelmann OPCM_32_ABS_STOREB_H = 0x25, 4237c87d074SBastian Koppelmann OPC1_32_ABS_STOREQ = 0x65, 4247c87d074SBastian Koppelmann OPC1_32_ABS_LD_Q = 0x45, 4257c87d074SBastian Koppelmann OPC1_32_ABS_LEA = 0xc5, 4267c87d074SBastian Koppelmann /* ABSB Format */ 4277c87d074SBastian Koppelmann OPC1_32_ABSB_ST_T = 0xd5, 4287c87d074SBastian Koppelmann /* B Format */ 4297c87d074SBastian Koppelmann OPC1_32_B_CALL = 0x6d, 4307c87d074SBastian Koppelmann OPC1_32_B_CALLA = 0xed, 4317c87d074SBastian Koppelmann OPC1_32_B_J = 0x1d, 4327c87d074SBastian Koppelmann OPC1_32_B_JA = 0x9d, 4337c87d074SBastian Koppelmann OPC1_32_B_JL = 0x5d, 4347c87d074SBastian Koppelmann OPC1_32_B_JLA = 0xdd, 4357c87d074SBastian Koppelmann /* Bit Format */ 4367c87d074SBastian Koppelmann OPCM_32_BIT_ANDACC = 0x47, 4377c87d074SBastian Koppelmann OPCM_32_BIT_LOGICAL_T1 = 0x87, 4387c87d074SBastian Koppelmann OPCM_32_BIT_INSERT = 0x67, 4397c87d074SBastian Koppelmann OPCM_32_BIT_LOGICAL_T2 = 0x07, 4407c87d074SBastian Koppelmann OPCM_32_BIT_ORAND = 0xc7, 4417c87d074SBastian Koppelmann OPCM_32_BIT_SH_LOGIC1 = 0x27, 4427c87d074SBastian Koppelmann OPCM_32_BIT_SH_LOGIC2 = 0xa7, 4437c87d074SBastian Koppelmann /* BO Format */ 4447c87d074SBastian Koppelmann OPCM_32_BO_ADDRMODE_POST_PRE_BASE = 0x89, 4457c87d074SBastian Koppelmann OPCM_32_BO_ADDRMODE_BITREVERSE_CIRCULAR = 0xa9, 4467c87d074SBastian Koppelmann OPCM_32_BO_ADDRMODE_LD_POST_PRE_BASE = 0x09, 4477c87d074SBastian Koppelmann OPCM_32_BO_ADDRMODE_LD_BITREVERSE_CIRCULAR = 0x29, 4487c87d074SBastian Koppelmann OPCM_32_BO_ADDRMODE_STCTX_POST_PRE_BASE = 0x49, 4497c87d074SBastian Koppelmann OPCM_32_BO_ADDRMODE_LDMST_BITREVERSE_CIRCULAR = 0x69, 4507c87d074SBastian Koppelmann /* BOL Format */ 4517c87d074SBastian Koppelmann OPC1_32_BOL_LD_A_LONGOFF = 0x99, 452af715d98SAlex Zuepke OPC1_32_BOL_LD_W_LONGOFF = 0x19, 4537c87d074SBastian Koppelmann OPC1_32_BOL_LEA_LONGOFF = 0xd9, 4547c87d074SBastian Koppelmann OPC1_32_BOL_ST_W_LONGOFF = 0x59, 4557c87d074SBastian Koppelmann OPC1_32_BOL_ST_A_LONGOFF = 0xb5, /* 1.6 only */ 456b5fd8fa3SBastian Koppelmann OPC1_32_BOL_LD_B_LONGOFF = 0x79, /* 1.6 only */ 457b5fd8fa3SBastian Koppelmann OPC1_32_BOL_LD_BU_LONGOFF = 0x39, /* 1.6 only */ 458b5fd8fa3SBastian Koppelmann OPC1_32_BOL_LD_H_LONGOFF = 0xc9, /* 1.6 only */ 459b5fd8fa3SBastian Koppelmann OPC1_32_BOL_LD_HU_LONGOFF = 0xb9, /* 1.6 only */ 460b5fd8fa3SBastian Koppelmann OPC1_32_BOL_ST_B_LONGOFF = 0xe9, /* 1.6 only */ 461b5fd8fa3SBastian Koppelmann OPC1_32_BOL_ST_H_LONGOFF = 0xf9, /* 1.6 only */ 4627c87d074SBastian Koppelmann /* BRC Format */ 4637c87d074SBastian Koppelmann OPCM_32_BRC_EQ_NEQ = 0xdf, 4647c87d074SBastian Koppelmann OPCM_32_BRC_GE = 0xff, 4657c87d074SBastian Koppelmann OPCM_32_BRC_JLT = 0xbf, 4667c87d074SBastian Koppelmann OPCM_32_BRC_JNE = 0x9f, 4677c87d074SBastian Koppelmann /* BRN Format */ 4687c87d074SBastian Koppelmann OPCM_32_BRN_JTT = 0x6f, 4697c87d074SBastian Koppelmann /* BRR Format */ 4707c87d074SBastian Koppelmann OPCM_32_BRR_EQ_NEQ = 0x5f, 4717c87d074SBastian Koppelmann OPCM_32_BRR_ADDR_EQ_NEQ = 0x7d, 4727c87d074SBastian Koppelmann OPCM_32_BRR_GE = 0x7f, 4737c87d074SBastian Koppelmann OPCM_32_BRR_JLT = 0x3f, 4747c87d074SBastian Koppelmann OPCM_32_BRR_JNE = 0x1f, 4757c87d074SBastian Koppelmann OPCM_32_BRR_JNZ = 0xbd, 4767c87d074SBastian Koppelmann OPCM_32_BRR_LOOP = 0xfd, 4777c87d074SBastian Koppelmann /* RC Format */ 4787c87d074SBastian Koppelmann OPCM_32_RC_LOGICAL_SHIFT = 0x8f, 4797c87d074SBastian Koppelmann OPCM_32_RC_ACCUMULATOR = 0x8b, 4807c87d074SBastian Koppelmann OPCM_32_RC_SERVICEROUTINE = 0xad, 4817c87d074SBastian Koppelmann OPCM_32_RC_MUL = 0x53, 4827c87d074SBastian Koppelmann /* RCPW Format */ 4837c87d074SBastian Koppelmann OPCM_32_RCPW_MASK_INSERT = 0xb7, 4847c87d074SBastian Koppelmann /* RCR Format */ 4857c87d074SBastian Koppelmann OPCM_32_RCR_COND_SELECT = 0xab, 4867c87d074SBastian Koppelmann OPCM_32_RCR_MADD = 0x13, 4877c87d074SBastian Koppelmann OPCM_32_RCR_MSUB = 0x33, 4887c87d074SBastian Koppelmann /* RCRR Format */ 4897c87d074SBastian Koppelmann OPC1_32_RCRR_INSERT = 0x97, 4907c87d074SBastian Koppelmann /* RCRW Format */ 4917c87d074SBastian Koppelmann OPCM_32_RCRW_MASK_INSERT = 0xd7, 4927c87d074SBastian Koppelmann /* RLC Format */ 4937c87d074SBastian Koppelmann OPC1_32_RLC_ADDI = 0x1b, 4947c87d074SBastian Koppelmann OPC1_32_RLC_ADDIH = 0x9b, 4957c87d074SBastian Koppelmann OPC1_32_RLC_ADDIH_A = 0x11, 4967c87d074SBastian Koppelmann OPC1_32_RLC_MFCR = 0x4d, 4977c87d074SBastian Koppelmann OPC1_32_RLC_MOV = 0x3b, 4984b5b4435SAlex Zuepke OPC1_32_RLC_MOV_64 = 0xfb, /* 1.6 only */ 4997c87d074SBastian Koppelmann OPC1_32_RLC_MOV_U = 0xbb, 5007c87d074SBastian Koppelmann OPC1_32_RLC_MOV_H = 0x7b, 5017c87d074SBastian Koppelmann OPC1_32_RLC_MOVH_A = 0x91, 5027c87d074SBastian Koppelmann OPC1_32_RLC_MTCR = 0xcd, 5037c87d074SBastian Koppelmann /* RR Format */ 5047c87d074SBastian Koppelmann OPCM_32_RR_LOGICAL_SHIFT = 0x0f, 5057c87d074SBastian Koppelmann OPCM_32_RR_ACCUMULATOR = 0x0b, 50637097418SStefan Weil OPCM_32_RR_ADDRESS = 0x01, 507e2bed107SBastian Koppelmann OPCM_32_RR_DIVIDE = 0x4b, 5087c87d074SBastian Koppelmann OPCM_32_RR_IDIRECT = 0x2d, 5097c87d074SBastian Koppelmann /* RR1 Format */ 5107c87d074SBastian Koppelmann OPCM_32_RR1_MUL = 0xb3, 5117c87d074SBastian Koppelmann OPCM_32_RR1_MULQ = 0x93, 5127c87d074SBastian Koppelmann /* RR2 Format */ 5137c87d074SBastian Koppelmann OPCM_32_RR2_MUL = 0x73, 5147c87d074SBastian Koppelmann /* RRPW Format */ 5157c87d074SBastian Koppelmann OPCM_32_RRPW_EXTRACT_INSERT = 0x37, 5167c87d074SBastian Koppelmann OPC1_32_RRPW_DEXTR = 0x77, 5177c87d074SBastian Koppelmann /* RRR Format */ 5187c87d074SBastian Koppelmann OPCM_32_RRR_COND_SELECT = 0x2b, 51909532255SBastian Koppelmann OPCM_32_RRR_DIVIDE = 0x6b, 5207c87d074SBastian Koppelmann /* RRR1 Format */ 5217c87d074SBastian Koppelmann OPCM_32_RRR1_MADD = 0x83, 5227c87d074SBastian Koppelmann OPCM_32_RRR1_MADDQ_H = 0x43, 5237c87d074SBastian Koppelmann OPCM_32_RRR1_MADDSU_H = 0xc3, 5247c87d074SBastian Koppelmann OPCM_32_RRR1_MSUB_H = 0xa3, 5257c87d074SBastian Koppelmann OPCM_32_RRR1_MSUB_Q = 0x63, 526068fac77SBastian Koppelmann OPCM_32_RRR1_MSUBAD_H = 0xe3, 5277c87d074SBastian Koppelmann /* RRR2 Format */ 5287c87d074SBastian Koppelmann OPCM_32_RRR2_MADD = 0x03, 5297c87d074SBastian Koppelmann OPCM_32_RRR2_MSUB = 0x23, 5307c87d074SBastian Koppelmann /* RRRR Format */ 5317c87d074SBastian Koppelmann OPCM_32_RRRR_EXTRACT_INSERT = 0x17, 5327c87d074SBastian Koppelmann /* RRRW Format */ 5337c87d074SBastian Koppelmann OPCM_32_RRRW_EXTRACT_INSERT = 0x57, 5347c87d074SBastian Koppelmann /* SYS Format */ 5357c87d074SBastian Koppelmann OPCM_32_SYS_INTERRUPTS = 0x0d, 5367c87d074SBastian Koppelmann OPC1_32_SYS_RSTV = 0x2f, 5377c87d074SBastian Koppelmann }; 5387c87d074SBastian Koppelmann 5397c87d074SBastian Koppelmann 5407c87d074SBastian Koppelmann 5417c87d074SBastian Koppelmann /* 5427c87d074SBastian Koppelmann * ABS Format 5437c87d074SBastian Koppelmann */ 5447c87d074SBastian Koppelmann 5457c87d074SBastian Koppelmann /* OPCM_32_ABS_LDW */ 5467c87d074SBastian Koppelmann enum { 5477c87d074SBastian Koppelmann 5487c87d074SBastian Koppelmann OPC2_32_ABS_LD_A = 0x02, 5497c87d074SBastian Koppelmann OPC2_32_ABS_LD_D = 0x01, 5507c87d074SBastian Koppelmann OPC2_32_ABS_LD_DA = 0x03, 5517c87d074SBastian Koppelmann OPC2_32_ABS_LD_W = 0x00, 5527c87d074SBastian Koppelmann }; 5537c87d074SBastian Koppelmann 5547c87d074SBastian Koppelmann /* OPCM_32_ABS_LDB */ 5557c87d074SBastian Koppelmann enum { 5567c87d074SBastian Koppelmann OPC2_32_ABS_LD_B = 0x00, 5577c87d074SBastian Koppelmann OPC2_32_ABS_LD_BU = 0x01, 5587c87d074SBastian Koppelmann OPC2_32_ABS_LD_H = 0x02, 5597c87d074SBastian Koppelmann OPC2_32_ABS_LD_HU = 0x03, 5607c87d074SBastian Koppelmann }; 5617c87d074SBastian Koppelmann /* OPCM_32_ABS_LDMST_SWAP */ 5627c87d074SBastian Koppelmann enum { 5637c87d074SBastian Koppelmann OPC2_32_ABS_LDMST = 0x01, 5647c87d074SBastian Koppelmann OPC2_32_ABS_SWAP_W = 0x00, 5657c87d074SBastian Koppelmann }; 5667c87d074SBastian Koppelmann /* OPCM_32_ABS_LDST_CONTEXT */ 5677c87d074SBastian Koppelmann enum { 5687c87d074SBastian Koppelmann OPC2_32_ABS_LDLCX = 0x02, 5697c87d074SBastian Koppelmann OPC2_32_ABS_LDUCX = 0x03, 5707c87d074SBastian Koppelmann OPC2_32_ABS_STLCX = 0x00, 5717c87d074SBastian Koppelmann OPC2_32_ABS_STUCX = 0x01, 5727c87d074SBastian Koppelmann }; 5737c87d074SBastian Koppelmann /* OPCM_32_ABS_STORE */ 5747c87d074SBastian Koppelmann enum { 5757c87d074SBastian Koppelmann OPC2_32_ABS_ST_A = 0x02, 5767c87d074SBastian Koppelmann OPC2_32_ABS_ST_D = 0x01, 5777c87d074SBastian Koppelmann OPC2_32_ABS_ST_DA = 0x03, 5787c87d074SBastian Koppelmann OPC2_32_ABS_ST_W = 0x00, 5797c87d074SBastian Koppelmann }; 5807c87d074SBastian Koppelmann /* OPCM_32_ABS_STOREB_H */ 5817c87d074SBastian Koppelmann enum { 5827c87d074SBastian Koppelmann OPC2_32_ABS_ST_B = 0x00, 5837c87d074SBastian Koppelmann OPC2_32_ABS_ST_H = 0x02, 5847c87d074SBastian Koppelmann }; 5857c87d074SBastian Koppelmann /* 5867c87d074SBastian Koppelmann * Bit Format 5877c87d074SBastian Koppelmann */ 5887c87d074SBastian Koppelmann /* OPCM_32_BIT_ANDACC */ 5897c87d074SBastian Koppelmann enum { 5907c87d074SBastian Koppelmann OPC2_32_BIT_AND_AND_T = 0x00, 5917c87d074SBastian Koppelmann OPC2_32_BIT_AND_ANDN_T = 0x03, 5927c87d074SBastian Koppelmann OPC2_32_BIT_AND_NOR_T = 0x02, 5937c87d074SBastian Koppelmann OPC2_32_BIT_AND_OR_T = 0x01, 5947c87d074SBastian Koppelmann }; 5957c87d074SBastian Koppelmann /* OPCM_32_BIT_LOGICAL_T */ 5967c87d074SBastian Koppelmann enum { 5977c87d074SBastian Koppelmann OPC2_32_BIT_AND_T = 0x00, 5987c87d074SBastian Koppelmann OPC2_32_BIT_ANDN_T = 0x03, 5997c87d074SBastian Koppelmann OPC2_32_BIT_NOR_T = 0x02, 6007c87d074SBastian Koppelmann OPC2_32_BIT_OR_T = 0x01, 6017c87d074SBastian Koppelmann }; 6027c87d074SBastian Koppelmann /* OPCM_32_BIT_INSERT */ 6037c87d074SBastian Koppelmann enum { 6047c87d074SBastian Koppelmann OPC2_32_BIT_INS_T = 0x00, 6057c87d074SBastian Koppelmann OPC2_32_BIT_INSN_T = 0x01, 6067c87d074SBastian Koppelmann }; 6077c87d074SBastian Koppelmann /* OPCM_32_BIT_LOGICAL_T2 */ 6087c87d074SBastian Koppelmann enum { 6097c87d074SBastian Koppelmann OPC2_32_BIT_NAND_T = 0x00, 6107c87d074SBastian Koppelmann OPC2_32_BIT_ORN_T = 0x01, 6117c87d074SBastian Koppelmann OPC2_32_BIT_XNOR_T = 0x02, 6127c87d074SBastian Koppelmann OPC2_32_BIT_XOR_T = 0x03, 6137c87d074SBastian Koppelmann }; 6147c87d074SBastian Koppelmann /* OPCM_32_BIT_ORAND */ 6157c87d074SBastian Koppelmann enum { 6167c87d074SBastian Koppelmann OPC2_32_BIT_OR_AND_T = 0x00, 6177c87d074SBastian Koppelmann OPC2_32_BIT_OR_ANDN_T = 0x03, 6187c87d074SBastian Koppelmann OPC2_32_BIT_OR_NOR_T = 0x02, 6197c87d074SBastian Koppelmann OPC2_32_BIT_OR_OR_T = 0x01, 6207c87d074SBastian Koppelmann }; 6217c87d074SBastian Koppelmann /*OPCM_32_BIT_SH_LOGIC1 */ 6227c87d074SBastian Koppelmann enum { 6237c87d074SBastian Koppelmann OPC2_32_BIT_SH_AND_T = 0x00, 6247c87d074SBastian Koppelmann OPC2_32_BIT_SH_ANDN_T = 0x03, 6257c87d074SBastian Koppelmann OPC2_32_BIT_SH_NOR_T = 0x02, 6267c87d074SBastian Koppelmann OPC2_32_BIT_SH_OR_T = 0x01, 6277c87d074SBastian Koppelmann }; 6287c87d074SBastian Koppelmann /* OPCM_32_BIT_SH_LOGIC2 */ 6297c87d074SBastian Koppelmann enum { 6307c87d074SBastian Koppelmann OPC2_32_BIT_SH_NAND_T = 0x00, 6317c87d074SBastian Koppelmann OPC2_32_BIT_SH_ORN_T = 0x01, 6327c87d074SBastian Koppelmann OPC2_32_BIT_SH_XNOR_T = 0x02, 6337c87d074SBastian Koppelmann OPC2_32_BIT_SH_XOR_T = 0x03, 6347c87d074SBastian Koppelmann }; 6357c87d074SBastian Koppelmann /* 6367c87d074SBastian Koppelmann * BO Format 6377c87d074SBastian Koppelmann */ 6387c87d074SBastian Koppelmann /* OPCM_32_BO_ADDRMODE_POST_PRE_BASE */ 6397c87d074SBastian Koppelmann enum { 6407c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_I_SHORTOFF = 0x2e, 6417c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_I_POSTINC = 0x0e, 6427c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_I_PREINC = 0x1e, 6437c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_W_SHORTOFF = 0x2c, 6447c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_W_POSTINC = 0x0c, 6457c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_W_PREINC = 0x1c, 6467c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_WI_SHORTOFF = 0x2d, 6477c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_WI_POSTINC = 0x0d, 6487c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_WI_PREINC = 0x1d, 6497c87d074SBastian Koppelmann /* 1.3.1 only */ 6507c87d074SBastian Koppelmann OPC2_32_BO_CACHEI_W_SHORTOFF = 0x2b, 6517c87d074SBastian Koppelmann OPC2_32_BO_CACHEI_W_POSTINC = 0x0b, 6527c87d074SBastian Koppelmann OPC2_32_BO_CACHEI_W_PREINC = 0x1b, 6537c87d074SBastian Koppelmann OPC2_32_BO_CACHEI_WI_SHORTOFF = 0x2f, 6547c87d074SBastian Koppelmann OPC2_32_BO_CACHEI_WI_POSTINC = 0x0f, 6557c87d074SBastian Koppelmann OPC2_32_BO_CACHEI_WI_PREINC = 0x1f, 6567c87d074SBastian Koppelmann /* end 1.3.1 only */ 6577c87d074SBastian Koppelmann OPC2_32_BO_ST_A_SHORTOFF = 0x26, 6587c87d074SBastian Koppelmann OPC2_32_BO_ST_A_POSTINC = 0x06, 6597c87d074SBastian Koppelmann OPC2_32_BO_ST_A_PREINC = 0x16, 6607c87d074SBastian Koppelmann OPC2_32_BO_ST_B_SHORTOFF = 0x20, 6617c87d074SBastian Koppelmann OPC2_32_BO_ST_B_POSTINC = 0x00, 6627c87d074SBastian Koppelmann OPC2_32_BO_ST_B_PREINC = 0x10, 6637c87d074SBastian Koppelmann OPC2_32_BO_ST_D_SHORTOFF = 0x25, 6647c87d074SBastian Koppelmann OPC2_32_BO_ST_D_POSTINC = 0x05, 6657c87d074SBastian Koppelmann OPC2_32_BO_ST_D_PREINC = 0x15, 6667c87d074SBastian Koppelmann OPC2_32_BO_ST_DA_SHORTOFF = 0x27, 6677c87d074SBastian Koppelmann OPC2_32_BO_ST_DA_POSTINC = 0x07, 6687c87d074SBastian Koppelmann OPC2_32_BO_ST_DA_PREINC = 0x17, 6697c87d074SBastian Koppelmann OPC2_32_BO_ST_H_SHORTOFF = 0x22, 6707c87d074SBastian Koppelmann OPC2_32_BO_ST_H_POSTINC = 0x02, 6717c87d074SBastian Koppelmann OPC2_32_BO_ST_H_PREINC = 0x12, 6727c87d074SBastian Koppelmann OPC2_32_BO_ST_Q_SHORTOFF = 0x28, 6737c87d074SBastian Koppelmann OPC2_32_BO_ST_Q_POSTINC = 0x08, 6747c87d074SBastian Koppelmann OPC2_32_BO_ST_Q_PREINC = 0x18, 6757c87d074SBastian Koppelmann OPC2_32_BO_ST_W_SHORTOFF = 0x24, 6767c87d074SBastian Koppelmann OPC2_32_BO_ST_W_POSTINC = 0x04, 6777c87d074SBastian Koppelmann OPC2_32_BO_ST_W_PREINC = 0x14, 6787c87d074SBastian Koppelmann }; 6797c87d074SBastian Koppelmann /* OPCM_32_BO_ADDRMODE_BITREVERSE_CIRCULAR */ 6807c87d074SBastian Koppelmann enum { 6817c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_I_BR = 0x0e, 6827c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_I_CIRC = 0x1e, 6837c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_W_BR = 0x0c, 6847c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_W_CIRC = 0x1c, 6857c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_WI_BR = 0x0d, 6867c87d074SBastian Koppelmann OPC2_32_BO_CACHEA_WI_CIRC = 0x1d, 6877c87d074SBastian Koppelmann OPC2_32_BO_ST_A_BR = 0x06, 6887c87d074SBastian Koppelmann OPC2_32_BO_ST_A_CIRC = 0x16, 6897c87d074SBastian Koppelmann OPC2_32_BO_ST_B_BR = 0x00, 6907c87d074SBastian Koppelmann OPC2_32_BO_ST_B_CIRC = 0x10, 6917c87d074SBastian Koppelmann OPC2_32_BO_ST_D_BR = 0x05, 6927c87d074SBastian Koppelmann OPC2_32_BO_ST_D_CIRC = 0x15, 6937c87d074SBastian Koppelmann OPC2_32_BO_ST_DA_BR = 0x07, 6947c87d074SBastian Koppelmann OPC2_32_BO_ST_DA_CIRC = 0x17, 6957c87d074SBastian Koppelmann OPC2_32_BO_ST_H_BR = 0x02, 6967c87d074SBastian Koppelmann OPC2_32_BO_ST_H_CIRC = 0x12, 6977c87d074SBastian Koppelmann OPC2_32_BO_ST_Q_BR = 0x08, 6987c87d074SBastian Koppelmann OPC2_32_BO_ST_Q_CIRC = 0x18, 6997c87d074SBastian Koppelmann OPC2_32_BO_ST_W_BR = 0x04, 7007c87d074SBastian Koppelmann OPC2_32_BO_ST_W_CIRC = 0x14, 7017c87d074SBastian Koppelmann }; 7027c87d074SBastian Koppelmann /* OPCM_32_BO_ADDRMODE_LD_POST_PRE_BASE */ 7037c87d074SBastian Koppelmann enum { 7047c87d074SBastian Koppelmann OPC2_32_BO_LD_A_SHORTOFF = 0x26, 7057c87d074SBastian Koppelmann OPC2_32_BO_LD_A_POSTINC = 0x06, 7067c87d074SBastian Koppelmann OPC2_32_BO_LD_A_PREINC = 0x16, 7077c87d074SBastian Koppelmann OPC2_32_BO_LD_B_SHORTOFF = 0x20, 7087c87d074SBastian Koppelmann OPC2_32_BO_LD_B_POSTINC = 0x00, 7097c87d074SBastian Koppelmann OPC2_32_BO_LD_B_PREINC = 0x10, 7107c87d074SBastian Koppelmann OPC2_32_BO_LD_BU_SHORTOFF = 0x21, 7117c87d074SBastian Koppelmann OPC2_32_BO_LD_BU_POSTINC = 0x01, 7127c87d074SBastian Koppelmann OPC2_32_BO_LD_BU_PREINC = 0x11, 7137c87d074SBastian Koppelmann OPC2_32_BO_LD_D_SHORTOFF = 0x25, 7147c87d074SBastian Koppelmann OPC2_32_BO_LD_D_POSTINC = 0x05, 7157c87d074SBastian Koppelmann OPC2_32_BO_LD_D_PREINC = 0x15, 7167c87d074SBastian Koppelmann OPC2_32_BO_LD_DA_SHORTOFF = 0x27, 7177c87d074SBastian Koppelmann OPC2_32_BO_LD_DA_POSTINC = 0x07, 7187c87d074SBastian Koppelmann OPC2_32_BO_LD_DA_PREINC = 0x17, 7197c87d074SBastian Koppelmann OPC2_32_BO_LD_H_SHORTOFF = 0x22, 7207c87d074SBastian Koppelmann OPC2_32_BO_LD_H_POSTINC = 0x02, 7217c87d074SBastian Koppelmann OPC2_32_BO_LD_H_PREINC = 0x12, 7227c87d074SBastian Koppelmann OPC2_32_BO_LD_HU_SHORTOFF = 0x23, 7237c87d074SBastian Koppelmann OPC2_32_BO_LD_HU_POSTINC = 0x03, 7247c87d074SBastian Koppelmann OPC2_32_BO_LD_HU_PREINC = 0x13, 7257c87d074SBastian Koppelmann OPC2_32_BO_LD_Q_SHORTOFF = 0x28, 7267c87d074SBastian Koppelmann OPC2_32_BO_LD_Q_POSTINC = 0x08, 7277c87d074SBastian Koppelmann OPC2_32_BO_LD_Q_PREINC = 0x18, 7287c87d074SBastian Koppelmann OPC2_32_BO_LD_W_SHORTOFF = 0x24, 7297c87d074SBastian Koppelmann OPC2_32_BO_LD_W_POSTINC = 0x04, 7307c87d074SBastian Koppelmann OPC2_32_BO_LD_W_PREINC = 0x14, 7317c87d074SBastian Koppelmann }; 7327c87d074SBastian Koppelmann /* OPCM_32_BO_ADDRMODE_LD_BITREVERSE_CIRCULAR */ 7337c87d074SBastian Koppelmann enum { 7347c87d074SBastian Koppelmann OPC2_32_BO_LD_A_BR = 0x06, 7357c87d074SBastian Koppelmann OPC2_32_BO_LD_A_CIRC = 0x16, 7367c87d074SBastian Koppelmann OPC2_32_BO_LD_B_BR = 0x00, 7377c87d074SBastian Koppelmann OPC2_32_BO_LD_B_CIRC = 0x10, 7387c87d074SBastian Koppelmann OPC2_32_BO_LD_BU_BR = 0x01, 7397c87d074SBastian Koppelmann OPC2_32_BO_LD_BU_CIRC = 0x11, 7407c87d074SBastian Koppelmann OPC2_32_BO_LD_D_BR = 0x05, 7417c87d074SBastian Koppelmann OPC2_32_BO_LD_D_CIRC = 0x15, 7427c87d074SBastian Koppelmann OPC2_32_BO_LD_DA_BR = 0x07, 7437c87d074SBastian Koppelmann OPC2_32_BO_LD_DA_CIRC = 0x17, 7447c87d074SBastian Koppelmann OPC2_32_BO_LD_H_BR = 0x02, 7457c87d074SBastian Koppelmann OPC2_32_BO_LD_H_CIRC = 0x12, 7467c87d074SBastian Koppelmann OPC2_32_BO_LD_HU_BR = 0x03, 7477c87d074SBastian Koppelmann OPC2_32_BO_LD_HU_CIRC = 0x13, 7487c87d074SBastian Koppelmann OPC2_32_BO_LD_Q_BR = 0x08, 7497c87d074SBastian Koppelmann OPC2_32_BO_LD_Q_CIRC = 0x18, 7507c87d074SBastian Koppelmann OPC2_32_BO_LD_W_BR = 0x04, 7517c87d074SBastian Koppelmann OPC2_32_BO_LD_W_CIRC = 0x14, 7527c87d074SBastian Koppelmann }; 7537c87d074SBastian Koppelmann /* OPCM_32_BO_ADDRMODE_STCTX_POST_PRE_BASE */ 7547c87d074SBastian Koppelmann enum { 7557c87d074SBastian Koppelmann OPC2_32_BO_LDLCX_SHORTOFF = 0x24, 7567c87d074SBastian Koppelmann OPC2_32_BO_LDMST_SHORTOFF = 0x21, 7577c87d074SBastian Koppelmann OPC2_32_BO_LDMST_POSTINC = 0x01, 7587c87d074SBastian Koppelmann OPC2_32_BO_LDMST_PREINC = 0x11, 7597c87d074SBastian Koppelmann OPC2_32_BO_LDUCX_SHORTOFF = 0x25, 7607c87d074SBastian Koppelmann OPC2_32_BO_LEA_SHORTOFF = 0x28, 7617c87d074SBastian Koppelmann OPC2_32_BO_STLCX_SHORTOFF = 0x26, 7627c87d074SBastian Koppelmann OPC2_32_BO_STUCX_SHORTOFF = 0x27, 7637c87d074SBastian Koppelmann OPC2_32_BO_SWAP_W_SHORTOFF = 0x20, 7647c87d074SBastian Koppelmann OPC2_32_BO_SWAP_W_POSTINC = 0x00, 7657c87d074SBastian Koppelmann OPC2_32_BO_SWAP_W_PREINC = 0x10, 7667c87d074SBastian Koppelmann }; 7677c87d074SBastian Koppelmann /*OPCM_32_BO_ADDRMODE_LDMST_BITREVERSE_CIRCULAR */ 7687c87d074SBastian Koppelmann enum { 7697c87d074SBastian Koppelmann OPC2_32_BO_LDMST_BR = 0x01, 7707c87d074SBastian Koppelmann OPC2_32_BO_LDMST_CIRC = 0x11, 7717c87d074SBastian Koppelmann OPC2_32_BO_SWAP_W_BR = 0x00, 7727c87d074SBastian Koppelmann OPC2_32_BO_SWAP_W_CIRC = 0x10, 7737c87d074SBastian Koppelmann }; 7747c87d074SBastian Koppelmann /* 7757c87d074SBastian Koppelmann * BRC Format 7767c87d074SBastian Koppelmann */ 7777c87d074SBastian Koppelmann /*OPCM_32_BRC_EQ_NEQ */ 7787c87d074SBastian Koppelmann enum { 7797c87d074SBastian Koppelmann OPC2_32_BRC_JEQ = 0x00, 7807c87d074SBastian Koppelmann OPC2_32_BRC_JNE = 0x01, 7817c87d074SBastian Koppelmann }; 7827c87d074SBastian Koppelmann /* OPCM_32_BRC_GE */ 7837c87d074SBastian Koppelmann enum { 784fc2ef4a3SBastian Koppelmann OP2_32_BRC_JGE = 0x00, 785fc2ef4a3SBastian Koppelmann OPC_32_BRC_JGE_U = 0x01, 7867c87d074SBastian Koppelmann }; 7877c87d074SBastian Koppelmann /* OPCM_32_BRC_JLT */ 7887c87d074SBastian Koppelmann enum { 7897c87d074SBastian Koppelmann OPC2_32_BRC_JLT = 0x00, 7907c87d074SBastian Koppelmann OPC2_32_BRC_JLT_U = 0x01, 7917c87d074SBastian Koppelmann }; 7927c87d074SBastian Koppelmann /* OPCM_32_BRC_JNE */ 7937c87d074SBastian Koppelmann enum { 7947c87d074SBastian Koppelmann OPC2_32_BRC_JNED = 0x01, 7957c87d074SBastian Koppelmann OPC2_32_BRC_JNEI = 0x00, 7967c87d074SBastian Koppelmann }; 7977c87d074SBastian Koppelmann /* 7987c87d074SBastian Koppelmann * BRN Format 7997c87d074SBastian Koppelmann */ 8007c87d074SBastian Koppelmann /* OPCM_32_BRN_JTT */ 8017c87d074SBastian Koppelmann enum { 8027c87d074SBastian Koppelmann OPC2_32_BRN_JNZ_T = 0x01, 8037c87d074SBastian Koppelmann OPC2_32_BRN_JZ_T = 0x00, 8047c87d074SBastian Koppelmann }; 8057c87d074SBastian Koppelmann /* 8067c87d074SBastian Koppelmann * BRR Format 8077c87d074SBastian Koppelmann */ 8087c87d074SBastian Koppelmann /* OPCM_32_BRR_EQ_NEQ */ 8097c87d074SBastian Koppelmann enum { 8107c87d074SBastian Koppelmann OPC2_32_BRR_JEQ = 0x00, 8117c87d074SBastian Koppelmann OPC2_32_BRR_JNE = 0x01, 8127c87d074SBastian Koppelmann }; 8137c87d074SBastian Koppelmann /* OPCM_32_BRR_ADDR_EQ_NEQ */ 8147c87d074SBastian Koppelmann enum { 8157c87d074SBastian Koppelmann OPC2_32_BRR_JEQ_A = 0x00, 8167c87d074SBastian Koppelmann OPC2_32_BRR_JNE_A = 0x01, 8177c87d074SBastian Koppelmann }; 8187c87d074SBastian Koppelmann /*OPCM_32_BRR_GE */ 8197c87d074SBastian Koppelmann enum { 8207c87d074SBastian Koppelmann OPC2_32_BRR_JGE = 0x00, 8217c87d074SBastian Koppelmann OPC2_32_BRR_JGE_U = 0x01, 8227c87d074SBastian Koppelmann }; 8237c87d074SBastian Koppelmann /* OPCM_32_BRR_JLT */ 8247c87d074SBastian Koppelmann enum { 8257c87d074SBastian Koppelmann OPC2_32_BRR_JLT = 0x00, 8267c87d074SBastian Koppelmann OPC2_32_BRR_JLT_U = 0x01, 8277c87d074SBastian Koppelmann }; 8287c87d074SBastian Koppelmann /* OPCM_32_BRR_JNE */ 8297c87d074SBastian Koppelmann enum { 8307c87d074SBastian Koppelmann OPC2_32_BRR_JNED = 0x01, 8317c87d074SBastian Koppelmann OPC2_32_BRR_JNEI = 0x00, 8327c87d074SBastian Koppelmann }; 8337c87d074SBastian Koppelmann /* OPCM_32_BRR_JNZ */ 8347c87d074SBastian Koppelmann enum { 8357c87d074SBastian Koppelmann OPC2_32_BRR_JNZ_A = 0x01, 8367c87d074SBastian Koppelmann OPC2_32_BRR_JZ_A = 0x00, 8377c87d074SBastian Koppelmann }; 8387c87d074SBastian Koppelmann /* OPCM_32_BRR_LOOP */ 8397c87d074SBastian Koppelmann enum { 8407c87d074SBastian Koppelmann OPC2_32_BRR_LOOP = 0x00, 8417c87d074SBastian Koppelmann OPC2_32_BRR_LOOPU = 0x01, 8427c87d074SBastian Koppelmann }; 8437c87d074SBastian Koppelmann /* 8447c87d074SBastian Koppelmann * RC Format 8457c87d074SBastian Koppelmann */ 8467c87d074SBastian Koppelmann /* OPCM_32_RC_LOGICAL_SHIFT */ 8477c87d074SBastian Koppelmann enum { 8487c87d074SBastian Koppelmann OPC2_32_RC_AND = 0x08, 8497c87d074SBastian Koppelmann OPC2_32_RC_ANDN = 0x0e, 8507c87d074SBastian Koppelmann OPC2_32_RC_NAND = 0x09, 8517c87d074SBastian Koppelmann OPC2_32_RC_NOR = 0x0b, 8527c87d074SBastian Koppelmann OPC2_32_RC_OR = 0x0a, 8537c87d074SBastian Koppelmann OPC2_32_RC_ORN = 0x0f, 8547c87d074SBastian Koppelmann OPC2_32_RC_SH = 0x00, 8557c87d074SBastian Koppelmann OPC2_32_RC_SH_H = 0x40, 8567c87d074SBastian Koppelmann OPC2_32_RC_SHA = 0x01, 8577c87d074SBastian Koppelmann OPC2_32_RC_SHA_H = 0x41, 8587c87d074SBastian Koppelmann OPC2_32_RC_SHAS = 0x02, 8597c87d074SBastian Koppelmann OPC2_32_RC_XNOR = 0x0d, 8607c87d074SBastian Koppelmann OPC2_32_RC_XOR = 0x0c, 8617c87d074SBastian Koppelmann }; 8627c87d074SBastian Koppelmann /* OPCM_32_RC_ACCUMULATOR */ 8637c87d074SBastian Koppelmann enum { 8647c87d074SBastian Koppelmann OPC2_32_RC_ABSDIF = 0x0e, 8657c87d074SBastian Koppelmann OPC2_32_RC_ABSDIFS = 0x0f, 8667c87d074SBastian Koppelmann OPC2_32_RC_ADD = 0x00, 8677c87d074SBastian Koppelmann OPC2_32_RC_ADDC = 0x05, 8687c87d074SBastian Koppelmann OPC2_32_RC_ADDS = 0x02, 8697c87d074SBastian Koppelmann OPC2_32_RC_ADDS_U = 0x03, 8707c87d074SBastian Koppelmann OPC2_32_RC_ADDX = 0x04, 8717c87d074SBastian Koppelmann OPC2_32_RC_AND_EQ = 0x20, 8727c87d074SBastian Koppelmann OPC2_32_RC_AND_GE = 0x24, 8737c87d074SBastian Koppelmann OPC2_32_RC_AND_GE_U = 0x25, 8747c87d074SBastian Koppelmann OPC2_32_RC_AND_LT = 0x22, 8757c87d074SBastian Koppelmann OPC2_32_RC_AND_LT_U = 0x23, 8767c87d074SBastian Koppelmann OPC2_32_RC_AND_NE = 0x21, 8777c87d074SBastian Koppelmann OPC2_32_RC_EQ = 0x10, 8787c87d074SBastian Koppelmann OPC2_32_RC_EQANY_B = 0x56, 8797c87d074SBastian Koppelmann OPC2_32_RC_EQANY_H = 0x76, 8807c87d074SBastian Koppelmann OPC2_32_RC_GE = 0x14, 8817c87d074SBastian Koppelmann OPC2_32_RC_GE_U = 0x15, 8827c87d074SBastian Koppelmann OPC2_32_RC_LT = 0x12, 8837c87d074SBastian Koppelmann OPC2_32_RC_LT_U = 0x13, 8847c87d074SBastian Koppelmann OPC2_32_RC_MAX = 0x1a, 8857c87d074SBastian Koppelmann OPC2_32_RC_MAX_U = 0x1b, 8867c87d074SBastian Koppelmann OPC2_32_RC_MIN = 0x18, 8877c87d074SBastian Koppelmann OPC2_32_RC_MIN_U = 0x19, 8887c87d074SBastian Koppelmann OPC2_32_RC_NE = 0x11, 8897c87d074SBastian Koppelmann OPC2_32_RC_OR_EQ = 0x27, 8907c87d074SBastian Koppelmann OPC2_32_RC_OR_GE = 0x2b, 8917c87d074SBastian Koppelmann OPC2_32_RC_OR_GE_U = 0x2c, 8927c87d074SBastian Koppelmann OPC2_32_RC_OR_LT = 0x29, 8937c87d074SBastian Koppelmann OPC2_32_RC_OR_LT_U = 0x2a, 8947c87d074SBastian Koppelmann OPC2_32_RC_OR_NE = 0x28, 8957c87d074SBastian Koppelmann OPC2_32_RC_RSUB = 0x08, 8967c87d074SBastian Koppelmann OPC2_32_RC_RSUBS = 0x0a, 8977c87d074SBastian Koppelmann OPC2_32_RC_RSUBS_U = 0x0b, 8987c87d074SBastian Koppelmann OPC2_32_RC_SH_EQ = 0x37, 8997c87d074SBastian Koppelmann OPC2_32_RC_SH_GE = 0x3b, 9007c87d074SBastian Koppelmann OPC2_32_RC_SH_GE_U = 0x3c, 9017c87d074SBastian Koppelmann OPC2_32_RC_SH_LT = 0x39, 9027c87d074SBastian Koppelmann OPC2_32_RC_SH_LT_U = 0x3a, 9037c87d074SBastian Koppelmann OPC2_32_RC_SH_NE = 0x38, 9047c87d074SBastian Koppelmann OPC2_32_RC_XOR_EQ = 0x2f, 9057c87d074SBastian Koppelmann OPC2_32_RC_XOR_GE = 0x33, 9067c87d074SBastian Koppelmann OPC2_32_RC_XOR_GE_U = 0x34, 9077c87d074SBastian Koppelmann OPC2_32_RC_XOR_LT = 0x31, 9087c87d074SBastian Koppelmann OPC2_32_RC_XOR_LT_U = 0x32, 9097c87d074SBastian Koppelmann OPC2_32_RC_XOR_NE = 0x30, 9107c87d074SBastian Koppelmann }; 9117c87d074SBastian Koppelmann /* OPCM_32_RC_SERVICEROUTINE */ 9127c87d074SBastian Koppelmann enum { 9137c87d074SBastian Koppelmann OPC2_32_RC_BISR = 0x00, 9147c87d074SBastian Koppelmann OPC2_32_RC_SYSCALL = 0x04, 9157c87d074SBastian Koppelmann }; 9167c87d074SBastian Koppelmann /* OPCM_32_RC_MUL */ 9177c87d074SBastian Koppelmann enum { 9187c87d074SBastian Koppelmann OPC2_32_RC_MUL_32 = 0x01, 9197c87d074SBastian Koppelmann OPC2_32_RC_MUL_64 = 0x03, 9207c87d074SBastian Koppelmann OPC2_32_RC_MULS_32 = 0x05, 9217c87d074SBastian Koppelmann OPC2_32_RC_MUL_U_64 = 0x02, 9227c87d074SBastian Koppelmann OPC2_32_RC_MULS_U_32 = 0x04, 9237c87d074SBastian Koppelmann }; 9247c87d074SBastian Koppelmann /* 9257c87d074SBastian Koppelmann * RCPW Format 9267c87d074SBastian Koppelmann */ 9277c87d074SBastian Koppelmann /* OPCM_32_RCPW_MASK_INSERT */ 9287c87d074SBastian Koppelmann enum { 9297c87d074SBastian Koppelmann OPC2_32_RCPW_IMASK = 0x01, 9307c87d074SBastian Koppelmann OPC2_32_RCPW_INSERT = 0x00, 9317c87d074SBastian Koppelmann }; 9327c87d074SBastian Koppelmann /* 9337c87d074SBastian Koppelmann * RCR Format 9347c87d074SBastian Koppelmann */ 9357c87d074SBastian Koppelmann /* OPCM_32_RCR_COND_SELECT */ 9367c87d074SBastian Koppelmann enum { 9377c87d074SBastian Koppelmann OPC2_32_RCR_CADD = 0x00, 9387c87d074SBastian Koppelmann OPC2_32_RCR_CADDN = 0x01, 9397c87d074SBastian Koppelmann OPC2_32_RCR_SEL = 0x04, 9407c87d074SBastian Koppelmann OPC2_32_RCR_SELN = 0x05, 9417c87d074SBastian Koppelmann }; 9427c87d074SBastian Koppelmann /* OPCM_32_RCR_MADD */ 9437c87d074SBastian Koppelmann enum { 9447c87d074SBastian Koppelmann OPC2_32_RCR_MADD_32 = 0x01, 9457c87d074SBastian Koppelmann OPC2_32_RCR_MADD_64 = 0x03, 9467c87d074SBastian Koppelmann OPC2_32_RCR_MADDS_32 = 0x05, 9477c87d074SBastian Koppelmann OPC2_32_RCR_MADDS_64 = 0x07, 9487c87d074SBastian Koppelmann OPC2_32_RCR_MADD_U_64 = 0x02, 9497c87d074SBastian Koppelmann OPC2_32_RCR_MADDS_U_32 = 0x04, 9507c87d074SBastian Koppelmann OPC2_32_RCR_MADDS_U_64 = 0x06, 9517c87d074SBastian Koppelmann }; 9527c87d074SBastian Koppelmann /* OPCM_32_RCR_MSUB */ 9537c87d074SBastian Koppelmann enum { 9547c87d074SBastian Koppelmann OPC2_32_RCR_MSUB_32 = 0x01, 9557c87d074SBastian Koppelmann OPC2_32_RCR_MSUB_64 = 0x03, 9567c87d074SBastian Koppelmann OPC2_32_RCR_MSUBS_32 = 0x05, 9577c87d074SBastian Koppelmann OPC2_32_RCR_MSUBS_64 = 0x07, 958328f1f0fSBastian Koppelmann OPC2_32_RCR_MSUB_U_64 = 0x02, 9597c87d074SBastian Koppelmann OPC2_32_RCR_MSUBS_U_32 = 0x04, 9607c87d074SBastian Koppelmann OPC2_32_RCR_MSUBS_U_64 = 0x06, 9617c87d074SBastian Koppelmann }; 9627c87d074SBastian Koppelmann /* 9637c87d074SBastian Koppelmann * RCRW Format 9647c87d074SBastian Koppelmann */ 9657c87d074SBastian Koppelmann /* OPCM_32_RCRW_MASK_INSERT */ 9667c87d074SBastian Koppelmann enum { 9677c87d074SBastian Koppelmann OPC2_32_RCRW_IMASK = 0x01, 9687c87d074SBastian Koppelmann OPC2_32_RCRW_INSERT = 0x00, 9697c87d074SBastian Koppelmann }; 9707c87d074SBastian Koppelmann 9717c87d074SBastian Koppelmann /* 9727c87d074SBastian Koppelmann * RR Format 9737c87d074SBastian Koppelmann */ 9747c87d074SBastian Koppelmann /* OPCM_32_RR_LOGICAL_SHIFT */ 9757c87d074SBastian Koppelmann enum { 9767c87d074SBastian Koppelmann OPC2_32_RR_AND = 0x08, 9777c87d074SBastian Koppelmann OPC2_32_RR_ANDN = 0x0e, 9787c87d074SBastian Koppelmann OPC2_32_RR_CLO = 0x1c, 9797c87d074SBastian Koppelmann OPC2_32_RR_CLO_H = 0x7d, 9807c87d074SBastian Koppelmann OPC2_32_RR_CLS = 0x1d, 9817c87d074SBastian Koppelmann OPC2_32_RR_CLS_H = 0x7e, 9827c87d074SBastian Koppelmann OPC2_32_RR_CLZ = 0x1b, 9837c87d074SBastian Koppelmann OPC2_32_RR_CLZ_H = 0x7c, 9847c87d074SBastian Koppelmann OPC2_32_RR_NAND = 0x09, 9857c87d074SBastian Koppelmann OPC2_32_RR_NOR = 0x0b, 9867c87d074SBastian Koppelmann OPC2_32_RR_OR = 0x0a, 9877c87d074SBastian Koppelmann OPC2_32_RR_ORN = 0x0f, 9887c87d074SBastian Koppelmann OPC2_32_RR_SH = 0x00, 9897c87d074SBastian Koppelmann OPC2_32_RR_SH_H = 0x40, 9907c87d074SBastian Koppelmann OPC2_32_RR_SHA = 0x01, 9917c87d074SBastian Koppelmann OPC2_32_RR_SHA_H = 0x41, 9927c87d074SBastian Koppelmann OPC2_32_RR_SHAS = 0x02, 9937c87d074SBastian Koppelmann OPC2_32_RR_XNOR = 0x0d, 9947c87d074SBastian Koppelmann OPC2_32_RR_XOR = 0x0c, 9957c87d074SBastian Koppelmann }; 9967c87d074SBastian Koppelmann /* OPCM_32_RR_ACCUMULATOR */ 9977c87d074SBastian Koppelmann enum { 9987c87d074SBastian Koppelmann OPC2_32_RR_ABS = 0x1c, 9997c87d074SBastian Koppelmann OPC2_32_RR_ABS_B = 0x5c, 10007c87d074SBastian Koppelmann OPC2_32_RR_ABS_H = 0x7c, 10017c87d074SBastian Koppelmann OPC2_32_RR_ABSDIF = 0x0e, 10027c87d074SBastian Koppelmann OPC2_32_RR_ABSDIF_B = 0x4e, 10037c87d074SBastian Koppelmann OPC2_32_RR_ABSDIF_H = 0x6e, 10047c87d074SBastian Koppelmann OPC2_32_RR_ABSDIFS = 0x0f, 10057c87d074SBastian Koppelmann OPC2_32_RR_ABSDIFS_H = 0x6f, 10067c87d074SBastian Koppelmann OPC2_32_RR_ABSS = 0x1d, 10077c87d074SBastian Koppelmann OPC2_32_RR_ABSS_H = 0x7d, 10087c87d074SBastian Koppelmann OPC2_32_RR_ADD = 0x00, 10097c87d074SBastian Koppelmann OPC2_32_RR_ADD_B = 0x40, 10107c87d074SBastian Koppelmann OPC2_32_RR_ADD_H = 0x60, 10117c87d074SBastian Koppelmann OPC2_32_RR_ADDC = 0x05, 10127c87d074SBastian Koppelmann OPC2_32_RR_ADDS = 0x02, 10137c87d074SBastian Koppelmann OPC2_32_RR_ADDS_H = 0x62, 10147c87d074SBastian Koppelmann OPC2_32_RR_ADDS_HU = 0x63, 10157c87d074SBastian Koppelmann OPC2_32_RR_ADDS_U = 0x03, 10167c87d074SBastian Koppelmann OPC2_32_RR_ADDX = 0x04, 10177c87d074SBastian Koppelmann OPC2_32_RR_AND_EQ = 0x20, 10187c87d074SBastian Koppelmann OPC2_32_RR_AND_GE = 0x24, 10197c87d074SBastian Koppelmann OPC2_32_RR_AND_GE_U = 0x25, 10207c87d074SBastian Koppelmann OPC2_32_RR_AND_LT = 0x22, 10217c87d074SBastian Koppelmann OPC2_32_RR_AND_LT_U = 0x23, 10227c87d074SBastian Koppelmann OPC2_32_RR_AND_NE = 0x21, 10237c87d074SBastian Koppelmann OPC2_32_RR_EQ = 0x10, 10247c87d074SBastian Koppelmann OPC2_32_RR_EQ_B = 0x50, 10257c87d074SBastian Koppelmann OPC2_32_RR_EQ_H = 0x70, 10267c87d074SBastian Koppelmann OPC2_32_RR_EQ_W = 0x90, 10277c87d074SBastian Koppelmann OPC2_32_RR_EQANY_B = 0x56, 10287c87d074SBastian Koppelmann OPC2_32_RR_EQANY_H = 0x76, 10297c87d074SBastian Koppelmann OPC2_32_RR_GE = 0x14, 10307c87d074SBastian Koppelmann OPC2_32_RR_GE_U = 0x15, 10317c87d074SBastian Koppelmann OPC2_32_RR_LT = 0x12, 10327c87d074SBastian Koppelmann OPC2_32_RR_LT_U = 0x13, 10337c87d074SBastian Koppelmann OPC2_32_RR_LT_B = 0x52, 10347c87d074SBastian Koppelmann OPC2_32_RR_LT_BU = 0x53, 10357c87d074SBastian Koppelmann OPC2_32_RR_LT_H = 0x72, 10367c87d074SBastian Koppelmann OPC2_32_RR_LT_HU = 0x73, 10377c87d074SBastian Koppelmann OPC2_32_RR_LT_W = 0x92, 10387c87d074SBastian Koppelmann OPC2_32_RR_LT_WU = 0x93, 10397c87d074SBastian Koppelmann OPC2_32_RR_MAX = 0x1a, 10407c87d074SBastian Koppelmann OPC2_32_RR_MAX_U = 0x1b, 10417c87d074SBastian Koppelmann OPC2_32_RR_MAX_B = 0x5a, 10427c87d074SBastian Koppelmann OPC2_32_RR_MAX_BU = 0x5b, 10437c87d074SBastian Koppelmann OPC2_32_RR_MAX_H = 0x7a, 10447c87d074SBastian Koppelmann OPC2_32_RR_MAX_HU = 0x7b, 1045d5de7839SBastian Koppelmann OPC2_32_RR_MIN = 0x18, 1046d5de7839SBastian Koppelmann OPC2_32_RR_MIN_U = 0x19, 10477c87d074SBastian Koppelmann OPC2_32_RR_MIN_B = 0x58, 10487c87d074SBastian Koppelmann OPC2_32_RR_MIN_BU = 0x59, 10497c87d074SBastian Koppelmann OPC2_32_RR_MIN_H = 0x78, 10507c87d074SBastian Koppelmann OPC2_32_RR_MIN_HU = 0x79, 10517c87d074SBastian Koppelmann OPC2_32_RR_MOV = 0x1f, 10527c87d074SBastian Koppelmann OPC2_32_RR_NE = 0x11, 10537c87d074SBastian Koppelmann OPC2_32_RR_OR_EQ = 0x27, 10547c87d074SBastian Koppelmann OPC2_32_RR_OR_GE = 0x2b, 10557c87d074SBastian Koppelmann OPC2_32_RR_OR_GE_U = 0x2c, 10567c87d074SBastian Koppelmann OPC2_32_RR_OR_LT = 0x29, 10577c87d074SBastian Koppelmann OPC2_32_RR_OR_LT_U = 0x2a, 10587c87d074SBastian Koppelmann OPC2_32_RR_OR_NE = 0x28, 10597c87d074SBastian Koppelmann OPC2_32_RR_SAT_B = 0x5e, 10607c87d074SBastian Koppelmann OPC2_32_RR_SAT_BU = 0x5f, 10617c87d074SBastian Koppelmann OPC2_32_RR_SAT_H = 0x7e, 10627c87d074SBastian Koppelmann OPC2_32_RR_SAT_HU = 0x7f, 10637c87d074SBastian Koppelmann OPC2_32_RR_SH_EQ = 0x37, 10647c87d074SBastian Koppelmann OPC2_32_RR_SH_GE = 0x3b, 10657c87d074SBastian Koppelmann OPC2_32_RR_SH_GE_U = 0x3c, 10667c87d074SBastian Koppelmann OPC2_32_RR_SH_LT = 0x39, 10677c87d074SBastian Koppelmann OPC2_32_RR_SH_LT_U = 0x3a, 10687c87d074SBastian Koppelmann OPC2_32_RR_SH_NE = 0x38, 10697c87d074SBastian Koppelmann OPC2_32_RR_SUB = 0x08, 10707c87d074SBastian Koppelmann OPC2_32_RR_SUB_B = 0x48, 10717c87d074SBastian Koppelmann OPC2_32_RR_SUB_H = 0x68, 10727c87d074SBastian Koppelmann OPC2_32_RR_SUBC = 0x0d, 10737c87d074SBastian Koppelmann OPC2_32_RR_SUBS = 0x0a, 10747c87d074SBastian Koppelmann OPC2_32_RR_SUBS_U = 0x0b, 10757c87d074SBastian Koppelmann OPC2_32_RR_SUBS_H = 0x6a, 10767c87d074SBastian Koppelmann OPC2_32_RR_SUBS_HU = 0x6b, 10777c87d074SBastian Koppelmann OPC2_32_RR_SUBX = 0x0c, 10787c87d074SBastian Koppelmann OPC2_32_RR_XOR_EQ = 0x2f, 10797c87d074SBastian Koppelmann OPC2_32_RR_XOR_GE = 0x33, 10807c87d074SBastian Koppelmann OPC2_32_RR_XOR_GE_U = 0x34, 10817c87d074SBastian Koppelmann OPC2_32_RR_XOR_LT = 0x31, 10827c87d074SBastian Koppelmann OPC2_32_RR_XOR_LT_U = 0x32, 10837c87d074SBastian Koppelmann OPC2_32_RR_XOR_NE = 0x30, 10847c87d074SBastian Koppelmann }; 108537097418SStefan Weil /* OPCM_32_RR_ADDRESS */ 10867c87d074SBastian Koppelmann enum { 10877c87d074SBastian Koppelmann OPC2_32_RR_ADD_A = 0x01, 10887c87d074SBastian Koppelmann OPC2_32_RR_ADDSC_A = 0x60, 10897c87d074SBastian Koppelmann OPC2_32_RR_ADDSC_AT = 0x62, 10907c87d074SBastian Koppelmann OPC2_32_RR_EQ_A = 0x40, 10917c87d074SBastian Koppelmann OPC2_32_RR_EQZ = 0x48, 10927c87d074SBastian Koppelmann OPC2_32_RR_GE_A = 0x43, 10937c87d074SBastian Koppelmann OPC2_32_RR_LT_A = 0x42, 10947c87d074SBastian Koppelmann OPC2_32_RR_MOV_A = 0x63, 10957c87d074SBastian Koppelmann OPC2_32_RR_MOV_AA = 0x00, 10967c87d074SBastian Koppelmann OPC2_32_RR_MOV_D = 0x4c, 10977c87d074SBastian Koppelmann OPC2_32_RR_NE_A = 0x41, 10987c87d074SBastian Koppelmann OPC2_32_RR_NEZ_A = 0x49, 10997c87d074SBastian Koppelmann OPC2_32_RR_SUB_A = 0x02, 11007c87d074SBastian Koppelmann }; 11017c87d074SBastian Koppelmann /* OPCM_32_RR_FLOAT */ 11027c87d074SBastian Koppelmann enum { 11037c87d074SBastian Koppelmann OPC2_32_RR_BMERGE = 0x01, 11047c87d074SBastian Koppelmann OPC2_32_RR_BSPLIT = 0x09, 11057c87d074SBastian Koppelmann OPC2_32_RR_DVINIT_B = 0x5a, 11067c87d074SBastian Koppelmann OPC2_32_RR_DVINIT_BU = 0x4a, 11077c87d074SBastian Koppelmann OPC2_32_RR_DVINIT_H = 0x3a, 11087c87d074SBastian Koppelmann OPC2_32_RR_DVINIT_HU = 0x2a, 11097c87d074SBastian Koppelmann OPC2_32_RR_DVINIT = 0x1a, 11107c87d074SBastian Koppelmann OPC2_32_RR_DVINIT_U = 0x0a, 11117c87d074SBastian Koppelmann OPC2_32_RR_PARITY = 0x02, 11127c87d074SBastian Koppelmann OPC2_32_RR_UNPACK = 0x08, 11137c87d074SBastian Koppelmann }; 11147c87d074SBastian Koppelmann /* OPCM_32_RR_IDIRECT */ 11157c87d074SBastian Koppelmann enum { 11167c87d074SBastian Koppelmann OPC2_32_RR_JI = 0x03, 11177c87d074SBastian Koppelmann OPC2_32_RR_JLI = 0x02, 11187c87d074SBastian Koppelmann OPC2_32_RR_CALLI = 0x00, 11197c87d074SBastian Koppelmann }; 11207c87d074SBastian Koppelmann /* 11217c87d074SBastian Koppelmann * RR1 Format 11227c87d074SBastian Koppelmann */ 11237c87d074SBastian Koppelmann /* OPCM_32_RR1_MUL */ 11247c87d074SBastian Koppelmann enum { 11257c87d074SBastian Koppelmann OPC2_32_RR1_MUL_H_32_LL = 0x1a, 11267c87d074SBastian Koppelmann OPC2_32_RR1_MUL_H_32_LU = 0x19, 11277c87d074SBastian Koppelmann OPC2_32_RR1_MUL_H_32_UL = 0x18, 11287c87d074SBastian Koppelmann OPC2_32_RR1_MUL_H_32_UU = 0x1b, 11297c87d074SBastian Koppelmann OPC2_32_RR1_MULM_H_64_LL = 0x1e, 11307c87d074SBastian Koppelmann OPC2_32_RR1_MULM_H_64_LU = 0x1d, 11317c87d074SBastian Koppelmann OPC2_32_RR1_MULM_H_64_UL = 0x1c, 11327c87d074SBastian Koppelmann OPC2_32_RR1_MULM_H_64_UU = 0x1f, 11337c87d074SBastian Koppelmann OPC2_32_RR1_MULR_H_16_LL = 0x0e, 11347c87d074SBastian Koppelmann OPC2_32_RR1_MULR_H_16_LU = 0x0d, 11357c87d074SBastian Koppelmann OPC2_32_RR1_MULR_H_16_UL = 0x0c, 11367c87d074SBastian Koppelmann OPC2_32_RR1_MULR_H_16_UU = 0x0f, 11377c87d074SBastian Koppelmann }; 11387c87d074SBastian Koppelmann /* OPCM_32_RR1_MULQ */ 11397c87d074SBastian Koppelmann enum { 11407c87d074SBastian Koppelmann OPC2_32_RR1_MUL_Q_32 = 0x02, 11417c87d074SBastian Koppelmann OPC2_32_RR1_MUL_Q_64 = 0x1b, 11427c87d074SBastian Koppelmann OPC2_32_RR1_MUL_Q_32_L = 0x01, 11437c87d074SBastian Koppelmann OPC2_32_RR1_MUL_Q_64_L = 0x19, 11447c87d074SBastian Koppelmann OPC2_32_RR1_MUL_Q_32_U = 0x00, 11457c87d074SBastian Koppelmann OPC2_32_RR1_MUL_Q_64_U = 0x18, 11467c87d074SBastian Koppelmann OPC2_32_RR1_MUL_Q_32_LL = 0x05, 11477c87d074SBastian Koppelmann OPC2_32_RR1_MUL_Q_32_UU = 0x04, 11487c87d074SBastian Koppelmann OPC2_32_RR1_MULR_Q_32_L = 0x07, 11497c87d074SBastian Koppelmann OPC2_32_RR1_MULR_Q_32_U = 0x06, 11507c87d074SBastian Koppelmann }; 11517c87d074SBastian Koppelmann /* 11527c87d074SBastian Koppelmann * RR2 Format 11537c87d074SBastian Koppelmann */ 11547c87d074SBastian Koppelmann /* OPCM_32_RR2_MUL */ 11557c87d074SBastian Koppelmann enum { 11567c87d074SBastian Koppelmann OPC2_32_RR2_MUL_32 = 0x0a, 11577c87d074SBastian Koppelmann OPC2_32_RR2_MUL_64 = 0x6a, 11587c87d074SBastian Koppelmann OPC2_32_RR2_MULS_32 = 0x8a, 11597c87d074SBastian Koppelmann OPC2_32_RR2_MUL_U_64 = 0x68, 11607c87d074SBastian Koppelmann OPC2_32_RR2_MULS_U_32 = 0x88, 11617c87d074SBastian Koppelmann }; 11627c87d074SBastian Koppelmann /* 11637c87d074SBastian Koppelmann * RRPW Format 11647c87d074SBastian Koppelmann */ 11657c87d074SBastian Koppelmann /* OPCM_32_RRPW_EXTRACT_INSERT */ 11667c87d074SBastian Koppelmann enum { 11677c87d074SBastian Koppelmann 11687c87d074SBastian Koppelmann OPC2_32_RRPW_EXTR = 0x02, 11697c87d074SBastian Koppelmann OPC2_32_RRPW_EXTR_U = 0x03, 11707c87d074SBastian Koppelmann OPC2_32_RRPW_IMASK = 0x01, 11717c87d074SBastian Koppelmann OPC2_32_RRPW_INSERT = 0x00, 11727c87d074SBastian Koppelmann }; 11737c87d074SBastian Koppelmann /* 11747c87d074SBastian Koppelmann * RRR Format 11757c87d074SBastian Koppelmann */ 11767c87d074SBastian Koppelmann /* OPCM_32_RRR_COND_SELECT */ 11777c87d074SBastian Koppelmann enum { 11787c87d074SBastian Koppelmann OPC2_32_RRR_CADD = 0x00, 11797c87d074SBastian Koppelmann OPC2_32_RRR_CADDN = 0x01, 11807c87d074SBastian Koppelmann OPC2_32_RRR_CSUB = 0x02, 11817c87d074SBastian Koppelmann OPC2_32_RRR_CSUBN = 0x03, 11827c87d074SBastian Koppelmann OPC2_32_RRR_SEL = 0x04, 11837c87d074SBastian Koppelmann OPC2_32_RRR_SELN = 0x05, 11847c87d074SBastian Koppelmann }; 11857c87d074SBastian Koppelmann /* OPCM_32_RRR_FLOAT */ 11867c87d074SBastian Koppelmann enum { 11877c87d074SBastian Koppelmann OPC2_32_RRR_DVADJ = 0x0d, 11887c87d074SBastian Koppelmann OPC2_32_RRR_DVSTEP = 0x0f, 11897c87d074SBastian Koppelmann OPC2_32_RRR_DVSTEP_U = 0x0e, 11907c87d074SBastian Koppelmann OPC2_32_RRR_IXMAX = 0x0a, 11917c87d074SBastian Koppelmann OPC2_32_RRR_IXMAX_U = 0x0b, 11927c87d074SBastian Koppelmann OPC2_32_RRR_IXMIN = 0x08, 11937c87d074SBastian Koppelmann OPC2_32_RRR_IXMIN_U = 0x09, 11947c87d074SBastian Koppelmann OPC2_32_RRR_PACK = 0x00, 11957c87d074SBastian Koppelmann }; 11967c87d074SBastian Koppelmann /* 11977c87d074SBastian Koppelmann * RRR1 Format 11987c87d074SBastian Koppelmann */ 11997c87d074SBastian Koppelmann /* OPCM_32_RRR1_MADD */ 12007c87d074SBastian Koppelmann enum { 12017c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_H_LL = 0x1a, 12027c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_H_LU = 0x19, 12037c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_H_UL = 0x18, 12047c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_H_UU = 0x1b, 12057c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_H_LL = 0x3a, 12067c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_H_LU = 0x39, 12077c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_H_UL = 0x38, 12087c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_H_UU = 0x3b, 12097c87d074SBastian Koppelmann OPC2_32_RRR1_MADDM_H_LL = 0x1e, 12107c87d074SBastian Koppelmann OPC2_32_RRR1_MADDM_H_LU = 0x1d, 12117c87d074SBastian Koppelmann OPC2_32_RRR1_MADDM_H_UL = 0x1c, 12127c87d074SBastian Koppelmann OPC2_32_RRR1_MADDM_H_UU = 0x1f, 12137c87d074SBastian Koppelmann OPC2_32_RRR1_MADDMS_H_LL = 0x3e, 12147c87d074SBastian Koppelmann OPC2_32_RRR1_MADDMS_H_LU = 0x3d, 12157c87d074SBastian Koppelmann OPC2_32_RRR1_MADDMS_H_UL = 0x3c, 12167c87d074SBastian Koppelmann OPC2_32_RRR1_MADDMS_H_UU = 0x3f, 12177c87d074SBastian Koppelmann OPC2_32_RRR1_MADDR_H_LL = 0x0e, 12187c87d074SBastian Koppelmann OPC2_32_RRR1_MADDR_H_LU = 0x0d, 12197c87d074SBastian Koppelmann OPC2_32_RRR1_MADDR_H_UL = 0x0c, 12207c87d074SBastian Koppelmann OPC2_32_RRR1_MADDR_H_UU = 0x0f, 12217c87d074SBastian Koppelmann OPC2_32_RRR1_MADDRS_H_LL = 0x2e, 12227c87d074SBastian Koppelmann OPC2_32_RRR1_MADDRS_H_LU = 0x2d, 12237c87d074SBastian Koppelmann OPC2_32_RRR1_MADDRS_H_UL = 0x2c, 12247c87d074SBastian Koppelmann OPC2_32_RRR1_MADDRS_H_UU = 0x2f, 12257c87d074SBastian Koppelmann }; 12267c87d074SBastian Koppelmann /* OPCM_32_RRR1_MADDQ_H */ 12277c87d074SBastian Koppelmann enum { 12287c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_32 = 0x02, 12297c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_64 = 0x1b, 12307c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_32_L = 0x01, 12317c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_64_L = 0x19, 12327c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_32_U = 0x00, 12337c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_64_U = 0x18, 12347c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_32_LL = 0x05, 12357c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_64_LL = 0x1d, 12367c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_32_UU = 0x04, 12377c87d074SBastian Koppelmann OPC2_32_RRR1_MADD_Q_64_UU = 0x1c, 12387c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_32 = 0x22, 12397c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_64 = 0x3b, 12407c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_32_L = 0x21, 12417c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_64_L = 0x39, 12427c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_32_U = 0x20, 12437c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_64_U = 0x38, 12447c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_32_LL = 0x25, 12457c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_64_LL = 0x3d, 12467c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_32_UU = 0x24, 12477c87d074SBastian Koppelmann OPC2_32_RRR1_MADDS_Q_64_UU = 0x3c, 1248b00aa8ecSBastian Koppelmann OPC2_32_RRR1_MADDR_H_64_UL = 0x1e, 1249b00aa8ecSBastian Koppelmann OPC2_32_RRR1_MADDRS_H_64_UL = 0x3e, 1250b00aa8ecSBastian Koppelmann OPC2_32_RRR1_MADDR_Q_32_LL = 0x07, 1251b00aa8ecSBastian Koppelmann OPC2_32_RRR1_MADDR_Q_32_UU = 0x06, 12527c87d074SBastian Koppelmann OPC2_32_RRR1_MADDRS_Q_32_LL = 0x27, 12537c87d074SBastian Koppelmann OPC2_32_RRR1_MADDRS_Q_32_UU = 0x26, 12547c87d074SBastian Koppelmann }; 12557c87d074SBastian Koppelmann /* OPCM_32_RRR1_MADDSU_H */ 12567c87d074SBastian Koppelmann enum { 12577c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSU_H_32_LL = 0x1a, 12587c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSU_H_32_LU = 0x19, 12597c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSU_H_32_UL = 0x18, 12607c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSU_H_32_UU = 0x1b, 12617c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUS_H_32_LL = 0x3a, 12627c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUS_H_32_LU = 0x39, 12637c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUS_H_32_UL = 0x38, 12647c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUS_H_32_UU = 0x3b, 12657c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUM_H_64_LL = 0x1e, 12667c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUM_H_64_LU = 0x1d, 12677c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUM_H_64_UL = 0x1c, 12687c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUM_H_64_UU = 0x1f, 12697c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUMS_H_64_LL = 0x3e, 12707c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUMS_H_64_LU = 0x3d, 12717c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUMS_H_64_UL = 0x3c, 12727c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUMS_H_64_UU = 0x3f, 12737c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUR_H_16_LL = 0x0e, 12747c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUR_H_16_LU = 0x0d, 12757c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUR_H_16_UL = 0x0c, 12767c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSUR_H_16_UU = 0x0f, 12777c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSURS_H_16_LL = 0x2e, 12787c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSURS_H_16_LU = 0x2d, 12797c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSURS_H_16_UL = 0x2c, 12807c87d074SBastian Koppelmann OPC2_32_RRR1_MADDSURS_H_16_UU = 0x2f, 12817c87d074SBastian Koppelmann }; 12827c87d074SBastian Koppelmann /* OPCM_32_RRR1_MSUB_H */ 12837c87d074SBastian Koppelmann enum { 1284f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUB_H_LL = 0x1a, 1285f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUB_H_LU = 0x19, 1286f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUB_H_UL = 0x18, 1287f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUB_H_UU = 0x1b, 1288f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBS_H_LL = 0x3a, 1289f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBS_H_LU = 0x39, 1290f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBS_H_UL = 0x38, 1291f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBS_H_UU = 0x3b, 1292f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBM_H_LL = 0x1e, 1293f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBM_H_LU = 0x1d, 1294f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBM_H_UL = 0x1c, 1295f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBM_H_UU = 0x1f, 1296f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBMS_H_LL = 0x3e, 1297f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBMS_H_LU = 0x3d, 1298f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBMS_H_UL = 0x3c, 1299f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBMS_H_UU = 0x3f, 1300f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBR_H_LL = 0x0e, 1301f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBR_H_LU = 0x0d, 1302f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBR_H_UL = 0x0c, 1303f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBR_H_UU = 0x0f, 1304f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBRS_H_LL = 0x2e, 1305f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBRS_H_LU = 0x2d, 1306f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBRS_H_UL = 0x2c, 1307f4aef476SBastian Koppelmann OPC2_32_RRR1_MSUBRS_H_UU = 0x2f, 13087c87d074SBastian Koppelmann }; 13097c87d074SBastian Koppelmann /* OPCM_32_RRR1_MSUB_Q */ 13107c87d074SBastian Koppelmann enum { 13117c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_32 = 0x02, 13127c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_64 = 0x1b, 13137c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_32_L = 0x01, 13147c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_64_L = 0x19, 13157c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_32_U = 0x00, 13167c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_64_U = 0x18, 13177c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_32_LL = 0x05, 13187c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_64_LL = 0x1d, 13197c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_32_UU = 0x04, 13207c87d074SBastian Koppelmann OPC2_32_RRR1_MSUB_Q_64_UU = 0x1c, 13217c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_32 = 0x22, 13227c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_64 = 0x3b, 13237c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_32_L = 0x21, 13247c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_64_L = 0x39, 13257c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_32_U = 0x20, 13267c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_64_U = 0x38, 13277c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_32_LL = 0x25, 13287c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_64_LL = 0x3d, 13297c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_32_UU = 0x24, 13307c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBS_Q_64_UU = 0x3c, 133162e47b2eSBastian Koppelmann OPC2_32_RRR1_MSUBR_H_64_UL = 0x1e, 133262e47b2eSBastian Koppelmann OPC2_32_RRR1_MSUBRS_H_64_UL = 0x3e, 13337c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBR_Q_32_LL = 0x07, 13347c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBR_Q_32_UU = 0x06, 13357c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBRS_Q_32_LL = 0x27, 13367c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBRS_Q_32_UU = 0x26, 13377c87d074SBastian Koppelmann }; 13387c87d074SBastian Koppelmann /* OPCM_32_RRR1_MSUBADS_H */ 13397c87d074SBastian Koppelmann enum { 13407c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBAD_H_32_LL = 0x1a, 13417c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBAD_H_32_LU = 0x19, 13427c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBAD_H_32_UL = 0x18, 13437c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBAD_H_32_UU = 0x1b, 13447c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADS_H_32_LL = 0x3a, 13457c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADS_H_32_LU = 0x39, 13467c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADS_H_32_UL = 0x38, 13477c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADS_H_32_UU = 0x3b, 13487c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADM_H_64_LL = 0x1e, 13497c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADM_H_64_LU = 0x1d, 13507c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADM_H_64_UL = 0x1c, 13517c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADM_H_64_UU = 0x1f, 13527c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADMS_H_64_LL = 0x3e, 13537c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADMS_H_64_LU = 0x3d, 13547c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADMS_H_64_UL = 0x3c, 1355068fac77SBastian Koppelmann OPC2_32_RRR1_MSUBADMS_H_64_UU = 0x3f, 13567c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADR_H_16_LL = 0x0e, 13577c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADR_H_16_LU = 0x0d, 13587c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADR_H_16_UL = 0x0c, 13597c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADR_H_16_UU = 0x0f, 13607c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADRS_H_16_LL = 0x2e, 13617c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADRS_H_16_LU = 0x2d, 13627c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADRS_H_16_UL = 0x2c, 13637c87d074SBastian Koppelmann OPC2_32_RRR1_MSUBADRS_H_16_UU = 0x2f, 13647c87d074SBastian Koppelmann }; 13657c87d074SBastian Koppelmann /* 13667c87d074SBastian Koppelmann * RRR2 Format 13677c87d074SBastian Koppelmann */ 13687c87d074SBastian Koppelmann /* OPCM_32_RRR2_MADD */ 13697c87d074SBastian Koppelmann enum { 13707c87d074SBastian Koppelmann OPC2_32_RRR2_MADD_32 = 0x0a, 13717c87d074SBastian Koppelmann OPC2_32_RRR2_MADD_64 = 0x6a, 13727c87d074SBastian Koppelmann OPC2_32_RRR2_MADDS_32 = 0x8a, 13737c87d074SBastian Koppelmann OPC2_32_RRR2_MADDS_64 = 0xea, 13742984cfbdSBastian Koppelmann OPC2_32_RRR2_MADD_U_64 = 0x68, 13757c87d074SBastian Koppelmann OPC2_32_RRR2_MADDS_U_32 = 0x88, 13767c87d074SBastian Koppelmann OPC2_32_RRR2_MADDS_U_64 = 0xe8, 13777c87d074SBastian Koppelmann }; 13787c87d074SBastian Koppelmann /* OPCM_32_RRR2_MSUB */ 13797c87d074SBastian Koppelmann enum { 13807c87d074SBastian Koppelmann OPC2_32_RRR2_MSUB_32 = 0x0a, 13817c87d074SBastian Koppelmann OPC2_32_RRR2_MSUB_64 = 0x6a, 13827c87d074SBastian Koppelmann OPC2_32_RRR2_MSUBS_32 = 0x8a, 13837c87d074SBastian Koppelmann OPC2_32_RRR2_MSUBS_64 = 0xea, 13847c87d074SBastian Koppelmann OPC2_32_RRR2_MSUB_U_64 = 0x68, 13857c87d074SBastian Koppelmann OPC2_32_RRR2_MSUBS_U_32 = 0x88, 13867c87d074SBastian Koppelmann OPC2_32_RRR2_MSUBS_U_64 = 0xe8, 13877c87d074SBastian Koppelmann }; 13887c87d074SBastian Koppelmann /* 13897c87d074SBastian Koppelmann * RRRR Format 13907c87d074SBastian Koppelmann */ 13917c87d074SBastian Koppelmann /* OPCM_32_RRRR_EXTRACT_INSERT */ 13927c87d074SBastian Koppelmann enum { 13937c87d074SBastian Koppelmann OPC2_32_RRRR_DEXTR = 0x04, 13947c87d074SBastian Koppelmann OPC2_32_RRRR_EXTR = 0x02, 13957c87d074SBastian Koppelmann OPC2_32_RRRR_EXTR_U = 0x03, 13967c87d074SBastian Koppelmann OPC2_32_RRRR_INSERT = 0x00, 13977c87d074SBastian Koppelmann }; 13987c87d074SBastian Koppelmann /* 13997c87d074SBastian Koppelmann * RRRW Format 14007c87d074SBastian Koppelmann */ 14017c87d074SBastian Koppelmann /* OPCM_32_RRRW_EXTRACT_INSERT */ 14027c87d074SBastian Koppelmann enum { 14037c87d074SBastian Koppelmann OPC2_32_RRRW_EXTR = 0x02, 14047c87d074SBastian Koppelmann OPC2_32_RRRW_EXTR_U = 0x03, 14057c87d074SBastian Koppelmann OPC2_32_RRRW_IMASK = 0x01, 14067c87d074SBastian Koppelmann OPC2_32_RRRW_INSERT = 0x00, 14077c87d074SBastian Koppelmann }; 14087c87d074SBastian Koppelmann /* 14097c87d074SBastian Koppelmann * SYS Format 14107c87d074SBastian Koppelmann */ 14117c87d074SBastian Koppelmann /* OPCM_32_SYS_INTERRUPTS */ 14127c87d074SBastian Koppelmann enum { 14137c87d074SBastian Koppelmann OPC2_32_SYS_DEBUG = 0x04, 14147c87d074SBastian Koppelmann OPC2_32_SYS_DISABLE = 0x0d, 14157c87d074SBastian Koppelmann OPC2_32_SYS_DSYNC = 0x12, 14167c87d074SBastian Koppelmann OPC2_32_SYS_ENABLE = 0x0c, 14177c87d074SBastian Koppelmann OPC2_32_SYS_ISYNC = 0x13, 14187c87d074SBastian Koppelmann OPC2_32_SYS_NOP = 0x00, 14197c87d074SBastian Koppelmann OPC2_32_SYS_RET = 0x06, 14207c87d074SBastian Koppelmann OPC2_32_SYS_RFE = 0x07, 14217c87d074SBastian Koppelmann OPC2_32_SYS_RFM = 0x05, 14227c87d074SBastian Koppelmann OPC2_32_SYS_RSLCX = 0x09, 14237c87d074SBastian Koppelmann OPC2_32_SYS_SVLCX = 0x08, 14247c87d074SBastian Koppelmann OPC2_32_SYS_TRAPSV = 0x15, 14257c87d074SBastian Koppelmann OPC2_32_SYS_TRAPV = 0x14, 14267c87d074SBastian Koppelmann }; 1427