target/mips: Define R5900 MMI class, and LQ and SQ opcode constants

Define MMI class, LQ, and SQ R5900 opdoces.

Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Signed-off-by: Fredrik Noring <noring@nocrew.org>
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
This commit is contained in:
Fredrik Noring 2018-10-21 17:33:20 +02:00 committed by Aleksandar Markovic
parent 497f072b15
commit f99c0d6da3

View File

@ -2087,8 +2087,48 @@ enum {
* MTSAB rs, immediate Move Byte Count to Shift Amount Register * MTSAB rs, immediate Move Byte Count to Shift Amount Register
* MTSAH rs, immediate Move Halfword Count to Shift Amount Register * MTSAH rs, immediate Move Halfword Count to Shift Amount Register
* PROT3W rd, rt Parallel Rotate 3 Words * PROT3W rd, rt Parallel Rotate 3 Words
*
* The TX79-specific Multimedia Instruction encodings
* ==================================================
*
* TX79 Multimedia Instruction encoding table keys:
*
* * This code is reserved for future use. An attempt to execute it
* causes a Reserved Instruction exception.
* % This code indicates an instruction class. The instruction word
* must be further decoded by examining additional tables that show
* the values for other instruction fields.
* # This code is reserved for the unsupported instructions DMULT,
* DMULTU, DDIV, DDIVU, LL, LLD, SC, SCD, LWC2 and SWC2. An attempt
* to execute it causes a Reserved Instruction exception.
*
* TX79 Multimedia Instructions encoded by opcode field (MMI, LQ, SQ):
*
* 31 26 0
* +--------+----------------------------------------+
* | opcode | |
* +--------+----------------------------------------+
*
* opcode bits 28..26
* bits | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
* 31..29 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111
* -------+-------+-------+-------+-------+-------+-------+-------+-------
* 0 000 |SPECIAL| REGIMM| J | JAL | BEQ | BNE | BLEZ | BGTZ
* 1 001 | ADDI | ADDIU | SLTI | SLTIU | ANDI | ORI | XORI | LUI
* 2 010 | COP0 | COP1 | * | * | BEQL | BNEL | BLEZL | BGTZL
* 3 011 | DADDI | DADDIU| LDL | LDR | MMI% | * | LQ | SQ
* 4 100 | LB | LH | LWL | LW | LBU | LHU | LWR | LWU
* 5 101 | SB | SH | SWL | SW | SDL | SDR | SWR | CACHE
* 6 110 | # | LWC1 | # | PREF | # | LDC1 | # | LD
* 7 111 | # | SWC1 | # | * | # | SDC1 | # | SD
*/ */
enum {
TX79_CLASS_MMI = 0x1C << 26, /* Same as OPC_SPECIAL2 */
TX79_LQ = 0x1E << 26, /* Same as OPC_MSA */
TX79_SQ = 0x1F << 26, /* Same as OPC_SPECIAL3 */
};
/* global register indices */ /* global register indices */
static TCGv cpu_gpr[32], cpu_PC; static TCGv cpu_gpr[32], cpu_PC;
static TCGv cpu_HI[MIPS_DSP_ACC], cpu_LO[MIPS_DSP_ACC]; static TCGv cpu_HI[MIPS_DSP_ACC], cpu_LO[MIPS_DSP_ACC];