mirror of
https://github.com/mupen64plus-ae/mupen64plus-rsp-cxd4.git
synced 2024-11-23 13:40:01 +00:00
halved the size of the scalar jump table (save 12 KB)
This commit is contained in:
parent
bc98905712
commit
705e20a863
@ -42,7 +42,7 @@ void run_task(void)
|
||||
else
|
||||
{
|
||||
/* SR[0] = 0x00000000; // already handled on per-instruction basis */
|
||||
EX_SCALAR[inst.W >> 26][inst.W>>sub_op_table[inst.W >> 26] & 077]();
|
||||
EX_SCALAR[inst.W >> 26][inst.W>>sub_op_table[inst.W >> 26] & 037]();
|
||||
}
|
||||
#ifndef EMULATE_STATIC_PC
|
||||
if (stage == 2) /* branch phase of scheduler */
|
||||
|
356
su.h
356
su.h
@ -21,7 +21,7 @@
|
||||
*/
|
||||
static int SR[32];
|
||||
|
||||
static void res_S(void)
|
||||
NOINLINE static void res_S(void)
|
||||
{
|
||||
message("RESERVED", 3);
|
||||
return;
|
||||
@ -53,6 +53,11 @@ union {
|
||||
/*** Scalar, Special Operations ***/
|
||||
static void BREAK(void) /* 000000 ----- ----- ----- ----- 001101 */
|
||||
{
|
||||
if (inst.W & 0x00000020)
|
||||
{ /* converged matrix extract */
|
||||
res_S();
|
||||
return;
|
||||
}
|
||||
*RSP.SP_STATUS_REG |= 0x00000003; /* SP_STATUS_BROKE | SP_STATUS_HALT */
|
||||
if (*RSP.SP_STATUS_REG & 0x00000040) /* SP_STATUS_INTR_BREAK */
|
||||
{
|
||||
@ -95,11 +100,21 @@ static void JAL(void) /* 000011 iiiiiiiiiiiiiiiiiiiiiiiiii */
|
||||
}
|
||||
static void JR(void) /* 000000 sssss ----- ----- ----- 001000 */
|
||||
{
|
||||
if (inst.W & 0x00000020)
|
||||
{ /* converged matrix extract */
|
||||
res_S();
|
||||
return;
|
||||
}
|
||||
set_PC(SR[inst.R.rs]);
|
||||
return;
|
||||
}
|
||||
static void JALR(void) /* 000000 sssss ----- ddddd ----- 001001 */
|
||||
{
|
||||
if (inst.W & 0x00000020)
|
||||
{ /* converged matrix extract */
|
||||
res_S();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = (*RSP.SP_PC_REG + LINK_OFF) & 0x00000FFC;
|
||||
SR[0] = 0x00000000;
|
||||
JR();
|
||||
@ -222,21 +237,21 @@ static void SRAV(void) /* 000000 sssss ttttt ddddd ----- 000111 */
|
||||
}
|
||||
|
||||
/*** Scalar, Arithmetic and Logical Operations ***/
|
||||
static void ADDU(void);
|
||||
static void ADD(void) /* 000000 sssss ttttt ddddd ----- 100000 */
|
||||
{
|
||||
const int trap = 0; /* There is no overflow trap on the RSP. Use ADDU. */
|
||||
|
||||
if (!trap)
|
||||
ADDU();
|
||||
if (inst.R.rd == 0)
|
||||
return; /* NOP */
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
SLL();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = SR[inst.W >> 21] + SR[inst.R.rt];
|
||||
return;
|
||||
}
|
||||
static void ADDIU(void);
|
||||
static void ADDI(void) /* 001000 sssss ttttt iiiiiiiiiiiiiiii */
|
||||
{
|
||||
const int trap = 0; /* There is no overflow trap on the RSP. Use ADDIU. */
|
||||
|
||||
if (!trap)
|
||||
ADDIU();
|
||||
return;
|
||||
}
|
||||
@ -248,27 +263,44 @@ static void ADDIU(void) /* 001001 sssss ttttt iiiiiiiiiiiiiiii */
|
||||
}
|
||||
static void ADDU(void) /* 000000 sssss ttttt ddddd ----- 100001 */
|
||||
{
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
res_S();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = SR[inst.W >> 21] + SR[inst.R.rt];
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
}
|
||||
static void SUBU(void);
|
||||
static void SUB(void) /* 000000 sssss ttttt ddddd ----- 100010 */
|
||||
{
|
||||
const int trap = 0; /* There is no overflow trap on the RSP. Use SUBU. */
|
||||
|
||||
if (!trap)
|
||||
SUBU();
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
SRL();
|
||||
return;
|
||||
} /* There is no overflow trap on the RSP. Use SUBU. */
|
||||
}
|
||||
SR[inst.R.rd] = SR[inst.W >> 21] - SR[inst.R.rt];
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
}
|
||||
static void SUBU(void) /* 000000 sssss ttttt ddddd ----- 100011 */
|
||||
{
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
SRA();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = SR[inst.W >> 21] - SR[inst.R.rt];
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
}
|
||||
static void SLT(void) /* 000000 sssss ttttt ddddd ----- 101010 */
|
||||
{
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
res_S();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = ((signed)(SR[inst.W >> 21]) < (signed)(SR[inst.R.rt]));
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
@ -291,30 +323,55 @@ static void SLTIU(void) /* 001011 sssss ttttt iiiiiiiiiiiiiiii */
|
||||
}
|
||||
static void SLTU(void) /* 000000 sssss ttttt ddddd ----- 101011 */
|
||||
{
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
res_S();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = ((unsigned)(SR[inst.W >> 21]) < (unsigned)(SR[inst.R.rt]));
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
}
|
||||
static void AND(void) /* 000000 sssss ttttt ddddd ----- 100100 */
|
||||
{
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
SLLV();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = SR[inst.W >> 21] & SR[inst.R.rt];
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
}
|
||||
static void OR(void) /* 000000 sssss ttttt ddddd ----- 100101 */
|
||||
{
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
res_S();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = SR[inst.W >> 21] | SR[inst.R.rt];
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
}
|
||||
static void XOR(void) /* 000000 sssss ttttt ddddd ----- 100110 */
|
||||
{
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
SRLV();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = SR[inst.W >> 21] ^ SR[inst.R.rt];
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
}
|
||||
static void NOR(void) /* 000000 sssss ttttt ddddd ----- 100111 */
|
||||
{
|
||||
if ((inst.W & 0x00000020) == 0x00000000)
|
||||
{ /* converged matrix extract */
|
||||
SRAV();
|
||||
return;
|
||||
}
|
||||
SR[inst.R.rd] = ~(SR[inst.W >> 21] | SR[inst.R.rt]);
|
||||
SR[0] = 0x00000000;
|
||||
return;
|
||||
@ -2246,8 +2303,7 @@ static void SWA(void)
|
||||
return;
|
||||
}
|
||||
|
||||
static void (*EX_SCALAR[64][64])(void) = {
|
||||
{ /* SPECIAL */
|
||||
/*
|
||||
SLL ,res_S ,SRL ,SRA ,SLLV ,res_S ,SRLV ,SRAV ,
|
||||
JR ,JALR ,res_S ,res_S ,res_S ,BREAK ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
@ -2255,642 +2311,392 @@ static void (*EX_SCALAR[64][64])(void) = {
|
||||
ADD ,ADDU ,SUB ,SUBU ,AND ,OR ,XOR ,NOR ,
|
||||
res_S ,res_S ,SLT ,SLTU ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
*/
|
||||
static void (*EX_SCALAR[64][32])(void) = {
|
||||
{ /* SPECIAL (custom convergence of both halves to fit table) */
|
||||
ADD ,ADDU ,SUB ,SUBU ,AND ,OR ,XOR ,NOR ,
|
||||
JR ,JALR ,SLT ,SLTU ,res_S ,BREAK ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
},
|
||||
{ /* REGIMM */
|
||||
BLTZ ,BGEZ ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
BLTZAL ,BGEZAL ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
/* hazard reaction barrier -- rt only covers 32 sub-op-codes, not 64. */
|
||||
BLTZ ,BGEZ ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
BLTZAL ,BGEZAL ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* Jump */
|
||||
J ,J ,J ,J ,J ,J ,J ,J ,
|
||||
J ,J ,J ,J ,J ,J ,J ,J ,
|
||||
J ,J ,J ,J ,J ,J ,J ,J ,
|
||||
J ,J ,J ,J ,J ,J ,J ,J ,
|
||||
J ,J ,J ,J ,J ,J ,J ,J ,
|
||||
J ,J ,J ,J ,J ,J ,J ,J ,
|
||||
J ,J ,J ,J ,J ,J ,J ,J ,
|
||||
J ,J ,J ,J ,J ,J ,J ,J
|
||||
},
|
||||
{ /* Jump and Link */
|
||||
JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,
|
||||
JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,
|
||||
JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,
|
||||
JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,
|
||||
JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,
|
||||
JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,
|
||||
JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,
|
||||
JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL ,JAL
|
||||
},
|
||||
{ /* Branch on Equal */
|
||||
BEQZ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,
|
||||
BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,
|
||||
BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,
|
||||
BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,
|
||||
BEQZ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,
|
||||
BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,
|
||||
BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,
|
||||
BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ ,BEQ
|
||||
},
|
||||
{ /* Branch on Not Equal */
|
||||
BNEZ ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,
|
||||
BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,
|
||||
BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,
|
||||
BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,
|
||||
BNEZ ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,
|
||||
BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,
|
||||
BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,
|
||||
BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE ,BNE
|
||||
},
|
||||
{ /* Branch on Less Than or Equal to Zero */
|
||||
B ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,
|
||||
BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,
|
||||
BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,
|
||||
BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,
|
||||
B ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,
|
||||
BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,
|
||||
BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,
|
||||
BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ ,BLEZ
|
||||
},
|
||||
{ /* Branch on Greater Than Zero */
|
||||
NOP ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,
|
||||
BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,
|
||||
BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,
|
||||
BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,
|
||||
NOP ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,
|
||||
BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,
|
||||
BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,
|
||||
BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ ,BGTZ
|
||||
},
|
||||
{ /* Add Immediate Word */
|
||||
LXI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,
|
||||
ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,
|
||||
ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,
|
||||
ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,
|
||||
LXI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,
|
||||
ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,
|
||||
ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,
|
||||
ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI ,ADDI
|
||||
},
|
||||
{ /* Add Immediate Unsigned Word */
|
||||
LXI ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,
|
||||
ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,
|
||||
ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,
|
||||
ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,
|
||||
LXI ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,
|
||||
ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,
|
||||
ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,
|
||||
ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU ,ADDIU
|
||||
}, /* Note: Because the RSP is free of exception-handling, ADDI = ADDIU. */
|
||||
{ /* Set on Less Than Immediate */
|
||||
NOP ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,
|
||||
SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,
|
||||
SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,
|
||||
SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,
|
||||
NOP ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,
|
||||
SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,
|
||||
SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,
|
||||
SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI ,SLTI
|
||||
},
|
||||
{ /* Set on Less Than Immediate Unsigned */
|
||||
NOP ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,
|
||||
SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,
|
||||
SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,
|
||||
SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,
|
||||
NOP ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,
|
||||
SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,
|
||||
SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,
|
||||
SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU ,SLTIU
|
||||
},
|
||||
{ /* And Immediate */
|
||||
CLEAR ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,
|
||||
ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,
|
||||
ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,
|
||||
ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,
|
||||
CLEAR ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,
|
||||
ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,
|
||||
ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,
|
||||
ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI ,ANDI
|
||||
},
|
||||
{ /* Or Immediate */
|
||||
LZI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,
|
||||
ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,
|
||||
ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,
|
||||
ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,
|
||||
LZI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,
|
||||
ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,
|
||||
ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,
|
||||
ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI ,ORI
|
||||
},
|
||||
{ /* Exclusive Or Immediate */
|
||||
LZI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,
|
||||
XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,
|
||||
XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,
|
||||
XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,
|
||||
LZI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,
|
||||
XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,
|
||||
XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,
|
||||
XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI ,XORI
|
||||
},
|
||||
{ /* Load Upper Immediate */
|
||||
NOP ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,
|
||||
LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,
|
||||
LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,
|
||||
LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,
|
||||
NOP ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,
|
||||
LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,
|
||||
LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,
|
||||
LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI ,LUI
|
||||
},
|
||||
{ /* COP0 */
|
||||
MFC0 ,res_S ,res_S ,res_S ,MTC0 ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
/* hazard reaction barrier -- rs only covers 32 sub-op-codes, not 64. */
|
||||
MFC0 ,res_S ,res_S ,res_S ,MTC0 ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* COP2 */
|
||||
MFC2 ,res_S ,CFC2 ,res_S ,MTC2 ,res_S ,CTC2 ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,
|
||||
C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,
|
||||
/* hazard reaction barrier -- rs only covers 32 sub-op-codes, not 64. */
|
||||
MFC2 ,res_S ,CFC2 ,res_S ,MTC2 ,res_S ,CTC2 ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,
|
||||
C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,C2 ,C2
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* Load Byte */
|
||||
LBA ,LB ,LB ,LB ,LB ,LB ,LB ,LB ,
|
||||
LB ,LB ,LB ,LB ,LB ,LB ,LB ,LB ,
|
||||
LB ,LB ,LB ,LB ,LB ,LB ,LB ,LB ,
|
||||
LB ,LB ,LB ,LB ,LB ,LB ,LB ,LB ,
|
||||
LBA ,LB ,LB ,LB ,LB ,LB ,LB ,LB ,
|
||||
LB ,LB ,LB ,LB ,LB ,LB ,LB ,LB ,
|
||||
LB ,LB ,LB ,LB ,LB ,LB ,LB ,LB ,
|
||||
LB ,LB ,LB ,LB ,LB ,LB ,LB ,LB
|
||||
},
|
||||
{ /* Load Halfword */
|
||||
LHA ,LH ,LH ,LH ,LH ,LH ,LH ,LH ,
|
||||
LH ,LH ,LH ,LH ,LH ,LH ,LH ,LH ,
|
||||
LH ,LH ,LH ,LH ,LH ,LH ,LH ,LH ,
|
||||
LH ,LH ,LH ,LH ,LH ,LH ,LH ,LH ,
|
||||
LHA ,LH ,LH ,LH ,LH ,LH ,LH ,LH ,
|
||||
LH ,LH ,LH ,LH ,LH ,LH ,LH ,LH ,
|
||||
LH ,LH ,LH ,LH ,LH ,LH ,LH ,LH ,
|
||||
LH ,LH ,LH ,LH ,LH ,LH ,LH ,LH
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* Load Word */
|
||||
LWA ,LW ,LW ,LW ,LW ,LW ,LW ,LW ,
|
||||
LW ,LW ,LW ,LW ,LW ,LW ,LW ,LW ,
|
||||
LW ,LW ,LW ,LW ,LW ,LW ,LW ,LW ,
|
||||
LW ,LW ,LW ,LW ,LW ,LW ,LW ,LW ,
|
||||
LWA ,LW ,LW ,LW ,LW ,LW ,LW ,LW ,
|
||||
LW ,LW ,LW ,LW ,LW ,LW ,LW ,LW ,
|
||||
LW ,LW ,LW ,LW ,LW ,LW ,LW ,LW ,
|
||||
LW ,LW ,LW ,LW ,LW ,LW ,LW ,LW
|
||||
},
|
||||
{ /* Load Byte Unsigned */
|
||||
LBUA ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,
|
||||
LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,
|
||||
LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,
|
||||
LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,
|
||||
LBUA ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,
|
||||
LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,
|
||||
LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,
|
||||
LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU ,LBU
|
||||
},
|
||||
{ /* Load Halfword Unsigned */
|
||||
LHUA ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,
|
||||
LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,
|
||||
LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,
|
||||
LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,
|
||||
LHUA ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,
|
||||
LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,
|
||||
LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,
|
||||
LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU ,LHU
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* Store Byte */
|
||||
SBA ,SB ,SB ,SB ,SB ,SB ,SB ,SB ,
|
||||
SB ,SB ,SB ,SB ,SB ,SB ,SB ,SB ,
|
||||
SB ,SB ,SB ,SB ,SB ,SB ,SB ,SB ,
|
||||
SB ,SB ,SB ,SB ,SB ,SB ,SB ,SB ,
|
||||
SBA ,SB ,SB ,SB ,SB ,SB ,SB ,SB ,
|
||||
SB ,SB ,SB ,SB ,SB ,SB ,SB ,SB ,
|
||||
SB ,SB ,SB ,SB ,SB ,SB ,SB ,SB ,
|
||||
SB ,SB ,SB ,SB ,SB ,SB ,SB ,SB
|
||||
},
|
||||
{ /* Store Halfword */
|
||||
SHA ,SH ,SH ,SH ,SH ,SH ,SH ,SH ,
|
||||
SH ,SH ,SH ,SH ,SH ,SH ,SH ,SH ,
|
||||
SH ,SH ,SH ,SH ,SH ,SH ,SH ,SH ,
|
||||
SH ,SH ,SH ,SH ,SH ,SH ,SH ,SH ,
|
||||
SHA ,SH ,SH ,SH ,SH ,SH ,SH ,SH ,
|
||||
SH ,SH ,SH ,SH ,SH ,SH ,SH ,SH ,
|
||||
SH ,SH ,SH ,SH ,SH ,SH ,SH ,SH ,
|
||||
SH ,SH ,SH ,SH ,SH ,SH ,SH ,SH
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* Store Word */
|
||||
SWA ,SW ,SW ,SW ,SW ,SW ,SW ,SW ,
|
||||
SW ,SW ,SW ,SW ,SW ,SW ,SW ,SW ,
|
||||
SW ,SW ,SW ,SW ,SW ,SW ,SW ,SW ,
|
||||
SW ,SW ,SW ,SW ,SW ,SW ,SW ,SW ,
|
||||
SWA ,SW ,SW ,SW ,SW ,SW ,SW ,SW ,
|
||||
SW ,SW ,SW ,SW ,SW ,SW ,SW ,SW ,
|
||||
SW ,SW ,SW ,SW ,SW ,SW ,SW ,SW ,
|
||||
SW ,SW ,SW ,SW ,SW ,SW ,SW ,SW
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* LWC2 */
|
||||
LBV ,LSV ,LLV ,LDV ,LQV ,LRV ,LPV ,LUV ,
|
||||
LHV ,LFV ,res_S ,LTV ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
/* hazard reaction barrier -- rd only covers 32 sub-op-codes, not 64. */
|
||||
LBV ,LSV ,LLV ,LDV ,LQV ,LRV ,LPV ,LUV ,
|
||||
LHV ,LFV ,res_S ,LTV ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* SWC2 */
|
||||
SBV ,SSV ,SLV ,SDV ,SQV ,SRV ,SPV ,SUV ,
|
||||
SHV ,SFV ,SWV ,STV ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
/* hazard reaction barrier -- rd only covers 32 sub-op-codes, not 64. */
|
||||
SBV ,SSV ,SLV ,SDV ,SQV ,SRV ,SPV ,SUV ,
|
||||
SHV ,SFV ,SWV ,STV ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
},
|
||||
{ /* illegal */
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,
|
||||
res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S ,res_S
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user