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