mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-03-24 10:35:12 +00:00
target/mips: Define R5900 MMI class, and LQ and SQ opcode constants
Define MMI class, LQ, and SQ R5900 opdoces. Backports commit f99c0d6da3424dd48ad1f0345464f63515949be6 from qemu
This commit is contained in:
parent
fa90149289
commit
5a6b86a346
|
@ -2082,8 +2082,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 */
|
||||||
|
};
|
||||||
|
|
||||||
#define gen_helper_0e0i(tcg_ctx, name, arg) do { \
|
#define gen_helper_0e0i(tcg_ctx, name, arg) do { \
|
||||||
TCGv_i32 helper_tmp = tcg_const_i32(tcg_ctx, arg); \
|
TCGv_i32 helper_tmp = tcg_const_i32(tcg_ctx, arg); \
|
||||||
gen_helper_##name(tcg_ctx, tcg_ctx->cpu_env, helper_tmp); \
|
gen_helper_##name(tcg_ctx, tcg_ctx->cpu_env, helper_tmp); \
|
||||||
|
|
Loading…
Reference in a new issue