In /yams, add opcode table generator, add MIPS opcode table as /instr_mips.txt
authorNick Downing <nick@ndcode.org>
Tue, 3 Jan 2023 04:01:06 +0000 (15:01 +1100)
committerNick Downing <nick@ndcode.org>
Wed, 4 Jan 2023 23:22:20 +0000 (10:22 +1100)
instr_mips.txt [new file with mode: 0644]
yams

diff --git a/instr_mips.txt b/instr_mips.txt
new file mode 100644 (file)
index 0000000..ab71347
--- /dev/null
@@ -0,0 +1,316 @@
+opcodes
+00010000       SLL     $zero, $at, 0x0000
+04010000       BGEZ    $zero, 0x00000004
+08010000       J       0x00000000
+0c010000       JAL     0x00000000
+10010000       BEQ     $zero, $at, 0x00000004
+14010000       BNE     $zero, $at, 0x00000004
+18010000       BLEZ    $zero, $at, 0x00000004
+1c010000       BGTZ    $zero, $at, 0x00000004
+20010000       ADDI    $at, $zero, 0x0000
+24010000       ADDIU   $at, $zero, 0x0000
+28010000       SLTI    $at, $zero, 0x0000
+2c010000       SLTIU   $at, $zero, 0x0000
+30010000       ANDI    $at, $zero, 0x0000
+34010000       ORI     $at, $zero, 0x0000
+38010000       XORI    $at, $zero, 0x0000
+3c010000       LUI     $at, 0x0000
+40010000       MFC0    $at, $Index, 0x0000
+44010000       Invalid instr (OP)
+48010000       Invalid instr (OP)
+4c010000       Invalid instr (OP)
+50010000       BEQL    $zero, $at, 0x00000004
+54010000       BNEL    $zero, $at, 0x00000004
+58010000       BLEZL   $zero, $at, 0x00000004
+5c010000       BGTZL   $zero, $at, 0x00000004
+60010000       Invalid instr (OP)
+64010000       Invalid instr (OP)
+68010000       Invalid instr (OP)
+6c010000       Invalid instr (OP)
+70010000       MADD    $zero, $at
+74010000       Invalid instr (OP)
+78010000       Invalid instr (OP)
+7c010000       Invalid instr (OP)
+80010000       LB      $at, 0x0000($zero)
+84010000       LH      $at, 0x0000($zero)
+88010000       LWL     $at, 0x0000($zero)
+8c010000       LW      $at, 0x0000($zero)
+90010000       LBU     $at, 0x0000($zero)
+94010000       LHU     $at, 0x0000($zero)
+98010000       LWR     $at, 0x0000($zero)
+9c010000       Invalid instr (OP)
+a0010000       SB      $at, 0x0000($zero)
+a4010000       SH      $at, 0x0000($zero)
+a8010000       SWL     $at, 0x0000($zero)
+ac010000       SW      $at, 0x0000($zero)
+b0010000       Invalid instr (OP)
+b4010000       Invalid instr (OP)
+b8010000       SWR     $at, 0x0000($zero)
+bc010000       CACHE   $at, 0x0000($zero)
+c0010000       LL      $at, 0x0000($zero)
+c4010000       LWC1    $at, 0x0000($zero)
+c8010000       LWC2    $at, 0x0000($zero)
+cc010000       PREF    $at, 0x0000($zero)
+d0010000       Invalid instr (OP)
+d4010000       LDC1    $at, 0x0000($zero)
+d8010000       LDC2    $at, 0x0000($zero)
+dc010000       Invalid instr (OP)
+e0010000       SC      $at, 0x0000($zero)
+e4010000       SWC1    $at, 0x0000($zero)
+e8010000       SWC2    $at, 0x0000($zero)
+ec010000       Invalid instr (OP)
+f0010000       Invalid instr (OP)
+f4010000       SDC1    $at, 0x0000($zero)
+f8010000       SDC2    $at, 0x0000($zero)
+fc010000       Invalid instr (OP)
+
+opcodes 00
+00011000       SLL     $v0, $at, 0x0000
+00011001       MOVC1
+00011002       SRL     $v0, $at, 0x0000
+00011003       SRA     $v0, $at, 0x0000
+00011004       SLLV    $v0, $at, $zero
+00011005       Invalid instr (SPEC)
+00011006       SRLV    $v0, $at, $zero
+00011007       SRAV    $v0, $at, $zero
+00011008       JR      $zero
+00011009       JALR    $v0, $zero
+0001100a       MOVZ    $v0, $zero, $at
+0001100b       MOVN    $v0, $zero, $at
+0001100c       SYSCALL
+0001100d       BREAK
+0001100e       Invalid instr (SPEC)
+0001100f       SYNC
+00011010       MFHI    $v0
+00011011       MTHI    $zero
+00011012       MFLO    $v0
+00011013       MTLO    $zero
+00011014       Invalid instr (SPEC)
+00011015       Invalid instr (SPEC)
+00011016       Invalid instr (SPEC)
+00011017       Invalid instr (SPEC)
+00011018       MULT    $zero, $at
+00011019       MULTU   $zero, $at
+0001101a       DIV     $zero, $at
+0001101b       DIVU    $zero, $at
+0001101c       Invalid instr (SPEC)
+0001101d       Invalid instr (SPEC)
+0001101e       Invalid instr (SPEC)
+0001101f       Invalid instr (SPEC)
+00011020       ADD     $v0, $zero, $at
+00011021       ADDU    $v0, $zero, $at
+00011022       SUB     $v0, $zero, $at
+00011023       SUBU    $v0, $zero, $at
+00011024       AND     $v0, $zero, $at
+00011025       OR      $v0, $zero, $at
+00011026       XOR     $v0, $zero, $at
+00011027       NOR     $v0, $zero, $at
+00011028       Invalid instr (SPEC)
+00011029       Invalid instr (SPEC)
+0001102a       SLT     $v0, $zero, $at
+0001102b       SLTU    $v0, $zero, $at
+0001102c       Invalid instr (SPEC)
+0001102d       Invalid instr (SPEC)
+0001102e       Invalid instr (SPEC)
+0001102f       Invalid instr (SPEC)
+00011030       TGE     $zero, $at
+00011031       TGEU    $zero, $at
+00011032       TLT     $zero, $at
+00011033       TLTU    $zero, $at
+00011034       TEQ     $zero, $at
+00011035       Invalid instr (SPEC)
+00011036       TNE     $zero, $at
+00011037       Invalid instr (SPEC)
+00011038       Invalid instr (SPEC)
+00011039       Invalid instr (SPEC)
+0001103a       Invalid instr (SPEC)
+0001103b       Invalid instr (SPEC)
+0001103c       Invalid instr (SPEC)
+0001103d       Invalid instr (SPEC)
+0001103e       Invalid instr (SPEC)
+0001103f       Invalid instr (SPEC)
+
+opcodes 04
+04600000       BLTZ    $v1, 0x00000004
+04610000       BGEZ    $v1, 0x00000004
+04620000       BLTZL   $v1, 0x00000004
+04630000       BGEZL   $v1, 0x00000004
+04640000       Invalid instr (REGIMM)
+04650000       Invalid instr (REGIMM)
+04660000       Invalid instr (REGIMM)
+04670000       Invalid instr (REGIMM)
+04680000       TGEI    $v1, 0x0000
+04690000       TGEIU   $v1, 0x0000
+046a0000       TLTI    $v1, 0x0000
+046b0000       TLTIU   $v1, 0x0000
+046c0000       TEQI    $v1, 0x0000
+046d0000       Invalid instr (REGIMM)
+046e0000       TNEI    $v1, 0x0000
+046f0000       Invalid instr (REGIMM)
+04700000       BLTZAL  $v1, 0x00000004
+04710000       BGEZAL  $v1, 0x00000004
+04720000       BLTZALL $v1, 0x00000004
+04730000       BGEZALL $v1, 0x00000004
+04740000       Invalid instr (REGIMM)
+04750000       Invalid instr (REGIMM)
+04760000       Invalid instr (REGIMM)
+04770000       Invalid instr (REGIMM)
+04780000       Invalid instr (REGIMM)
+04790000       Invalid instr (REGIMM)
+047a0000       Invalid instr (REGIMM)
+047b0000       Invalid instr (REGIMM)
+047c0000       Invalid instr (REGIMM)
+047d0000       Invalid instr (REGIMM)
+047e0000       Invalid instr (REGIMM)
+047f0000       Invalid instr (REGIMM)
+
+opcodes 40
+40010000       MFC0    $at, $Index, 0x0000
+40210000       Invalid instr (COP0)
+40410000       Invalid instr (COP0)
+40610000       Invalid instr (COP0)
+40810000       MTC0    $at, $Index, 0x0000
+40a10000       Invalid instr (COP0)
+40c10000       Invalid instr (COP0)
+40e10000       Invalid instr (COP0)
+41010000       Invalid instr (COP0)
+41210000       Invalid instr (COP0)
+41410000       Invalid instr (COP0)
+41610000       Invalid instr (COP0)
+41810000       Invalid instr (COP0)
+41a10000       Invalid instr (COP0)
+41c10000       Invalid instr (COP0)
+41e10000       Invalid instr (COP0)
+
+opcodes 42
+42011000       Invalid instr (COP0)
+42011001       TLBR
+42011002       TLBWI
+42011003       Invalid instr (COP0)
+42011004       Invalid instr (COP0)
+42011005       Invalid instr (COP0)
+42011006       TLBWR
+42011007       Invalid instr (COP0)
+42011008       TLBP
+42011009       Invalid instr (COP0)
+4201100a       Invalid instr (COP0)
+4201100b       Invalid instr (COP0)
+4201100c       Invalid instr (COP0)
+4201100d       Invalid instr (COP0)
+4201100e       Invalid instr (COP0)
+4201100f       Invalid instr (COP0)
+42011010       Invalid instr (COP0)
+42011011       Invalid instr (COP0)
+42011012       Invalid instr (COP0)
+42011013       Invalid instr (COP0)
+42011014       Invalid instr (COP0)
+42011015       Invalid instr (COP0)
+42011016       Invalid instr (COP0)
+42011017       Invalid instr (COP0)
+42011018       ERET
+42011019       Invalid instr (COP0)
+4201101a       Invalid instr (COP0)
+4201101b       Invalid instr (COP0)
+4201101c       Invalid instr (COP0)
+4201101d       Invalid instr (COP0)
+4201101e       Invalid instr (COP0)
+4201101f       Invalid instr (COP0)
+42011020       WAIT
+42011021       Invalid instr (COP0)
+42011022       Invalid instr (COP0)
+42011023       Invalid instr (COP0)
+42011024       Invalid instr (COP0)
+42011025       Invalid instr (COP0)
+42011026       Invalid instr (COP0)
+42011027       Invalid instr (COP0)
+42011028       Invalid instr (COP0)
+42011029       Invalid instr (COP0)
+4201102a       Invalid instr (COP0)
+4201102b       Invalid instr (COP0)
+4201102c       Invalid instr (COP0)
+4201102d       Invalid instr (COP0)
+4201102e       Invalid instr (COP0)
+4201102f       Invalid instr (COP0)
+42011030       Invalid instr (COP0)
+42011031       Invalid instr (COP0)
+42011032       Invalid instr (COP0)
+42011033       Invalid instr (COP0)
+42011034       Invalid instr (COP0)
+42011035       Invalid instr (COP0)
+42011036       Invalid instr (COP0)
+42011037       Invalid instr (COP0)
+42011038       Invalid instr (COP0)
+42011039       Invalid instr (COP0)
+4201103a       Invalid instr (COP0)
+4201103b       Invalid instr (COP0)
+4201103c       Invalid instr (COP0)
+4201103d       Invalid instr (COP0)
+4201103e       Invalid instr (COP0)
+4201103f       Invalid instr (COP0)
+
+opcodes 70
+70011000       MADD    $zero, $at
+70011001       MADDU   $zero, $at
+70011002       MUL     $v0, $zero, $at
+70011003       Invalid instr (SPEC2)
+70011004       MSUB    $zero, $at
+70011005       MSUBU   $zero, $at
+70011006       Invalid instr (SPEC2)
+70011007       Invalid instr (SPEC2)
+70011008       Invalid instr (SPEC2)
+70011009       Invalid instr (SPEC2)
+7001100a       Invalid instr (SPEC2)
+7001100b       Invalid instr (SPEC2)
+7001100c       Invalid instr (SPEC2)
+7001100d       Invalid instr (SPEC2)
+7001100e       Invalid instr (SPEC2)
+7001100f       Invalid instr (SPEC2)
+70011010       Invalid instr (SPEC2)
+70011011       Invalid instr (SPEC2)
+70011012       Invalid instr (SPEC2)
+70011013       Invalid instr (SPEC2)
+70011014       Invalid instr (SPEC2)
+70011015       Invalid instr (SPEC2)
+70011016       Invalid instr (SPEC2)
+70011017       Invalid instr (SPEC2)
+70011018       Invalid instr (SPEC2)
+70011019       Invalid instr (SPEC2)
+7001101a       Invalid instr (SPEC2)
+7001101b       Invalid instr (SPEC2)
+7001101c       Invalid instr (SPEC2)
+7001101d       Invalid instr (SPEC2)
+7001101e       Invalid instr (SPEC2)
+7001101f       Invalid instr (SPEC2)
+70011020       CLZ     $v0, $zero
+70011021       CLO     $v0, $zero
+70011022       Invalid instr (SPEC2)
+70011023       Invalid instr (SPEC2)
+70011024       Invalid instr (SPEC2)
+70011025       Invalid instr (SPEC2)
+70011026       Invalid instr (SPEC2)
+70011027       Invalid instr (SPEC2)
+70011028       Invalid instr (SPEC2)
+70011029       Invalid instr (SPEC2)
+7001102a       Invalid instr (SPEC2)
+7001102b       Invalid instr (SPEC2)
+7001102c       Invalid instr (SPEC2)
+7001102d       Invalid instr (SPEC2)
+7001102e       Invalid instr (SPEC2)
+7001102f       Invalid instr (SPEC2)
+70011030       Invalid instr (SPEC2)
+70011031       Invalid instr (SPEC2)
+70011032       Invalid instr (SPEC2)
+70011033       Invalid instr (SPEC2)
+70011034       Invalid instr (SPEC2)
+70011035       Invalid instr (SPEC2)
+70011036       Invalid instr (SPEC2)
+70011037       Invalid instr (SPEC2)
+70011038       Invalid instr (SPEC2)
+70011039       Invalid instr (SPEC2)
+7001103a       Invalid instr (SPEC2)
+7001103b       Invalid instr (SPEC2)
+7001103c       Invalid instr (SPEC2)
+7001103d       Invalid instr (SPEC2)
+7001103e       Invalid instr (SPEC2)
+7001103f       Invalid instr (SPEC2)
+
diff --git a/yams b/yams
index 1596100..8ca1b25 160000 (submodule)
--- a/yams
+++ b/yams
@@ -1 +1 @@
-Subproject commit 1596100ae4e4b1135ac54c5abffb02d92b270218
+Subproject commit 8ca1b256ab166e8d713f27857ff9a9d6c3fa6425