Index: src/trusted/validator_mips/mips32.table |
diff --git a/src/trusted/validator_mips/mips32.table b/src/trusted/validator_mips/mips32.table |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8fde4b7e9acb1a86dc8267d7b216b2b074ae7c8d |
--- /dev/null |
+++ b/src/trusted/validator_mips/mips32.table |
@@ -0,0 +1,804 @@ |
+# Reference document: |
+# |
+# MIPS® Architecture For Programmers Volume II-A: The MIPS32® Instruction Set |
+ |
+ |
+-- mipsInstr (See Table A.2) |
+opcode(31:26) |
+000000 ->special |
+000001 ->regimm |
+000010 =JmpImm # j |
+000011 =JalImm # jal |
+000100 =Branch # beq |
+000101 =Branch # bne |
+000110 ->branch_1 # blez |
+000111 ->branch_1 # bgtz |
+001000 =Arithm2 # addi |
+001001 =Arithm2 # addiu |
+001010 =Arithm2 # slti |
+001011 =Arithm2 # sltiu |
+001100 =Arithm2 # andi |
+001101 =Arithm2 # ori |
+001110 =Arithm2 # xori |
+001111 ->arithm2_1 # lui |
+010000 ->cop0 |
+010001 ->cop1 |
+010010 ->cop2 |
+010011 ->cop1x |
+010100 =Branch # beql |
+010101 =Branch # bnel |
+010110 ->branch_1 # blezl |
+010111 ->branch_1 # bgtzl |
+011000 =Forbidden |
+011001 =Forbidden |
+011010 =Forbidden |
+011011 =Forbidden |
+011100 ->special2 |
+011101 =Forbidden # jalx |
+011110 =Forbidden |
+011111 ->special3 |
+100000 =Load # lb |
+100001 =Load # lh |
+100010 =Load # lwl |
+100011 =Load # lw |
+100100 =Load # lbu |
+100101 =Load # lhu |
+100110 =Load # lwr |
+100111 =Forbidden |
+101000 =Store # sb |
+101001 =Store # sh |
+101010 =Store # swl |
+101011 =Store # sw |
+101100 =Forbidden |
+101101 =Forbidden |
+101110 =Store # swr |
+101111 =Forbidden # cache |
+110000 =Load # ll |
+110001 =FPLoadStore # lwc1 |
+110010 =FPLoadStore # lwc2 |
+110011 =Forbidden # pref |
+110100 =Forbidden |
+110101 =FPLoadStore # ldc1 |
+110110 =FPLoadStore # ldc2 |
+110111 =Forbidden |
+111000 =StoreConditional # sc |
+111001 =FPLoadStore # swc1 |
+111010 =FPLoadStore # swc2 |
+111011 =Forbidden |
+111100 =Forbidden |
+111101 =FPLoadStore # sdc1 |
+111110 =FPLoadStore # sdc2 |
+111111 =Forbidden |
+ |
+ |
+-- special (See Table A.3) |
+function(5:0) |
+000000 ->arithm3_1 # sll |
+000001 ->movci |
+000010 ->srl |
+000011 ->arithm3_1 # sra |
+000100 ->arithm3_2 # sllv |
+000101 =Forbidden |
+000110 ->srlv |
+000111 ->arithm3_2 # srav |
+001000 ->jr # jr |
+001001 ->jalr # jalr |
+001010 ->arithm3_2 # movz |
+001011 ->arithm3_2 # movn |
+001100 =Forbidden # syscall |
+001101 =Forbidden # break |
+001110 =Forbidden |
+001111 ->sync # sync |
+010000 ->mfhi # mfhi |
+010001 ->mthi # mthi |
+010010 ->mfhi # mflo |
+010011 ->mthi # mtlo |
+010100 =Forbidden |
+010101 =Forbidden |
+010110 =Forbidden |
+010111 =Forbidden |
+011000 ->mult # mult |
+011001 ->mult # multu |
+011010 ->mult # div |
+011011 ->mult # divu |
+011100 =Forbidden |
+011101 =Forbidden |
+011110 =Forbidden |
+011111 =Forbidden |
+100000 ->arithm3_3 # add |
+100001 ->arithm3_3 # addu |
+100010 ->arithm3_3 # sub |
+100011 ->arithm3_3 # subu |
+100100 ->arithm3_3 # and |
+100101 ->arithm3_3 # or |
+100110 ->arithm3_3 # xor |
+100111 ->arithm3_3 # nor |
+101000 =Forbidden |
+101001 =Forbidden |
+101010 ->arithm3_3 # slt |
+101011 ->arithm3_3 # sltu |
+101100 =Forbidden |
+101101 =Forbidden |
+101110 =Forbidden |
+101111 =Forbidden |
+110000 =Forbidden # tge |
+110001 =Forbidden # tgeu |
+110010 =Forbidden # tlt |
+110011 =Forbidden # tltu |
+110100 =Forbidden # teq |
+110101 =Forbidden |
+110110 =Forbidden # tne |
+110111 =Forbidden |
+111000 =Forbidden |
+111001 =Forbidden |
+111010 =Forbidden |
+111011 =Forbidden |
+111100 =Forbidden |
+111101 =Forbidden |
+111110 =Forbidden |
+111111 =Forbidden |
+ |
+ |
+-- jr ( ) |
+rs(25:21) pat1(20:6) |
+00000 000000000000000 =NaClHalt # jr $zero |
+~00000 000000000000000 =JmpReg # jr |
+xxxxx ~000000000000000 =Forbidden |
+ |
+ |
+-- jalr ( ) |
+rt(20:16) hint(10:6) |
+00000 00000 =JalReg |
+~00000 ~00000 =Forbidden |
+ |
+ |
+-- regimm (See Table A.4) |
+rt(20:16) |
+00000 =Branch # bltz |
+00001 =Branch # bgez |
+00010 =Branch # bltzl |
+00011 =Branch # bgezl |
+00100 =Forbidden |
+00101 =Forbidden |
+00110 =Forbidden |
+00111 =Forbidden |
+01000 =Forbidden # tgei |
+01001 =Forbidden # tgeiu |
+01010 =Forbidden # tlti |
+01011 =Forbidden # tltiu |
+01100 =Forbidden # teqi |
+01101 =Forbidden |
+01110 =Forbidden # tnei |
+01111 =Forbidden |
+10000 =BranchAndLink # bltzal |
+10001 =BranchAndLink # bgezal |
+10010 =BranchAndLink # bltzall |
+10011 =BranchAndLink # bgezall |
+10100 =Forbidden |
+10101 =Forbidden |
+10110 =Forbidden |
+10111 =Forbidden |
+11000 =Forbidden |
+11001 =Forbidden |
+11010 =Forbidden |
+11011 =Forbidden |
+11100 =Forbidden |
+11101 =Forbidden |
+11110 =Forbidden |
+11111 =Forbidden # synci |
+ |
+ |
+-- special2 (See Table A.5) |
+function(5:0) |
+000000 ->mult # madd |
+000001 ->mult # maddu |
+000010 ->arithm3_2 # mul |
+000011 =Forbidden |
+000100 ->mult # msub |
+000101 ->mult # msubu |
+000110 =Forbidden |
+000111 =Forbidden |
+001000 =Forbidden |
+001001 =Forbidden |
+001010 =Forbidden |
+001011 =Forbidden |
+001100 =Forbidden |
+001101 =Forbidden |
+001110 =Forbidden |
+001111 =Forbidden |
+010000 =Forbidden |
+010001 =Forbidden |
+010010 =Forbidden |
+010011 =Forbidden |
+010100 =Forbidden |
+010101 =Forbidden |
+010110 =Forbidden |
+010111 =Forbidden |
+011000 =Forbidden |
+011001 =Forbidden |
+011010 =Forbidden |
+011011 =Forbidden |
+011100 =Forbidden |
+011101 =Forbidden |
+011110 =Forbidden |
+011111 =Forbidden |
+100000 ->arithm3_2 # clz |
+100001 ->arithm3_2 # clo |
+100010 =Forbidden |
+100011 =Forbidden |
+100100 =Forbidden |
+100101 =Forbidden |
+100110 =Forbidden |
+100111 =Forbidden |
+101000 =Forbidden |
+101001 =Forbidden |
+101010 =Forbidden |
+101011 =Forbidden |
+101100 =Forbidden |
+101101 =Forbidden |
+101110 =Forbidden |
+101111 =Forbidden |
+110000 =Forbidden |
+110001 =Forbidden |
+110010 =Forbidden |
+110011 =Forbidden |
+110100 =Forbidden |
+110101 =Forbidden |
+110110 =Forbidden |
+110111 =Forbidden |
+111000 =Forbidden |
+111001 =Forbidden |
+111010 =Forbidden |
+111011 =Forbidden |
+111100 =Forbidden |
+111101 =Forbidden |
+111110 =Forbidden |
+111111 =Forbidden # sdbbp |
+ |
+ |
+-- special3 (See Table A.6) |
+function(5:0) |
+000000 =ExtIns # ext |
+000001 =Forbidden |
+000010 =Forbidden |
+000011 =Forbidden |
+000100 =ExtIns # ins |
+000101 =Forbidden |
+000110 =Forbidden |
+000111 =Forbidden |
+001000 =Forbidden |
+001001 =Forbidden |
+001010 =Forbidden |
+001011 =Forbidden |
+001100 =Forbidden |
+001101 =Forbidden |
+001110 =Forbidden |
+001111 =Forbidden |
+010000 =Forbidden |
+010001 =Forbidden |
+010010 =Forbidden |
+010011 =Forbidden |
+010100 =Forbidden |
+010101 =Forbidden |
+010110 =Forbidden |
+010111 =Forbidden |
+011000 =Forbidden |
+011001 =Forbidden |
+011010 =Forbidden |
+011011 =Forbidden |
+011100 =Forbidden |
+011101 =Forbidden |
+011110 =Forbidden |
+011111 =Forbidden |
+100000 ->bshfl |
+100001 =Forbidden |
+100010 =Forbidden |
+100011 =Forbidden |
+100100 =Forbidden |
+100101 =Forbidden |
+100110 =Forbidden |
+100111 =Forbidden |
+101000 =Forbidden |
+101001 =Forbidden |
+101010 =Forbidden |
+101011 =Forbidden |
+101100 =Forbidden |
+101101 =Forbidden |
+101110 =Forbidden |
+101111 =Forbidden |
+110000 =Forbidden |
+110001 =Forbidden |
+110010 =Forbidden |
+110011 =Forbidden |
+110100 =Forbidden |
+110101 =Forbidden |
+110110 =Forbidden |
+110111 =Forbidden |
+111000 =Forbidden |
+111001 =Forbidden |
+111010 =Forbidden |
+111011 =Forbidden # rdhwr |
+111100 =Forbidden |
+111101 =Forbidden |
+111110 =Forbidden |
+111111 =Forbidden |
+ |
+ |
+-- movci (See Table A.7) |
+pat0(17:16) pat1(10:6) |
+00 00000 =Arithm3 # movf |
+01 00000 =Arithm3 # movt |
+xx ~00000 =Forbidden |
+ |
+ |
+-- srl (See Table A.8) |
+pat0(25:22) R(21) |
+0000 0 =Arithm3 # srl |
+0000 1 =Arithm3 # rotr |
+~0000 x =Forbidden |
+ |
+ |
+-- srlv (See Table A.9) |
+pat0(10:7) R(6) |
+0000 0 =Arithm3 # srlv |
+0000 1 =Arithm3 # rotrv |
+~0000 x =Forbidden |
+ |
+ |
+-- bshfl (See Table A.10) |
+sa(10:6) |
+00000 =Forbidden |
+00001 =Forbidden |
+00010 ->arithm3_1 # wsbh |
+00011 =Forbidden |
+00100 =Forbidden |
+00101 =Forbidden |
+00110 =Forbidden |
+00111 =Forbidden |
+01000 =Forbidden |
+01001 =Forbidden |
+01010 =Forbidden |
+01011 =Forbidden |
+01100 =Forbidden |
+01101 =Forbidden |
+01110 =Forbidden |
+01111 =Forbidden |
+10000 ->arithm3_1 # seb |
+10001 =Forbidden |
+10010 =Forbidden |
+10011 =Forbidden |
+10100 =Forbidden |
+10101 =Forbidden |
+10110 =Forbidden |
+10111 =Forbidden |
+11000 ->arithm3_1 # seh |
+11001 =Forbidden |
+11010 =Forbidden |
+11011 =Forbidden |
+11100 =Forbidden |
+11101 =Forbidden |
+11110 =Forbidden |
+11111 =Forbidden |
+ |
+ |
+-- cop0 (See Table A.11) |
+rs(25:21) |
+00000 =Forbidden # mfc0 |
+00001 =Forbidden |
+00010 =Forbidden |
+00011 =Forbidden |
+00100 =Forbidden # mtc0 |
+00101 =Forbidden |
+00110 =Forbidden |
+00111 =Forbidden |
+01000 =Forbidden |
+01001 =Forbidden |
+01010 =Forbidden # rdpgpr |
+01011 ->mfmc0 |
+01100 =Forbidden |
+01101 =Forbidden |
+01110 =Forbidden # wrpgpr |
+01111 =Forbidden |
+10000 ->c0 |
+10001 =Forbidden |
+10010 =Forbidden |
+10011 =Forbidden |
+10100 =Forbidden |
+10101 =Forbidden |
+10110 =Forbidden |
+10111 =Forbidden |
+11000 =Forbidden |
+11001 =Forbidden |
+11010 =Forbidden |
+11011 =Forbidden |
+11100 =Forbidden |
+11101 =Forbidden |
+11110 =Forbidden |
+11111 =Forbidden |
+ |
+ |
+-- c0 (See Table A.12) |
+function(5:0) |
+000000 =Forbidden |
+000001 =Forbidden # tlbr |
+000010 =Forbidden # tlbwi |
+000011 =Forbidden |
+000100 =Forbidden |
+000101 =Forbidden |
+000110 =Forbidden # tlbwr |
+000111 =Forbidden |
+001000 =Forbidden # tlbp |
+001001 =Forbidden |
+001010 =Forbidden |
+001011 =Forbidden |
+001100 =Forbidden |
+001101 =Forbidden |
+001110 =Forbidden |
+001111 =Forbidden |
+010000 =Forbidden |
+010001 =Forbidden |
+010010 =Forbidden |
+010011 =Forbidden |
+010100 =Forbidden |
+010101 =Forbidden |
+010110 =Forbidden |
+010111 =Forbidden |
+011000 =Forbidden # eret |
+011001 =Forbidden |
+011010 =Forbidden |
+011011 =Forbidden |
+011100 =Forbidden |
+011101 =Forbidden |
+011110 =Forbidden |
+011111 =Forbidden # deret |
+100000 =Forbidden # wait |
+100001 =Forbidden |
+100010 =Forbidden |
+100011 =Forbidden |
+100100 =Forbidden |
+100101 =Forbidden |
+100110 =Forbidden |
+100111 =Forbidden |
+101000 =Forbidden |
+101001 =Forbidden |
+101010 =Forbidden |
+101011 =Forbidden |
+101100 =Forbidden |
+101101 =Forbidden |
+101110 =Forbidden |
+101111 =Forbidden |
+110000 =Forbidden |
+110001 =Forbidden |
+110010 =Forbidden |
+110011 =Forbidden |
+110100 =Forbidden |
+110101 =Forbidden |
+110110 =Forbidden |
+110111 =Forbidden |
+111000 =Forbidden |
+111001 =Forbidden |
+111010 =Forbidden |
+111011 =Forbidden |
+111100 =Forbidden |
+111101 =Forbidden |
+111110 =Forbidden |
+111111 =Forbidden |
+ |
+ |
+-- cop1 (See Table A.13) |
+rs(25:21) |
+00000 ->mfc1 # mfc1 |
+00001 =Forbidden |
+00010 =Forbidden # cfc1 |
+00011 ->mfc1 # mfhc1 |
+00100 ->mtc1 # mtc1 |
+00101 =Forbidden |
+00110 =Forbidden # ctc1 |
+00111 ->mtc1 # mthc1 |
+01000 ->bc1 |
+01001 =Forbidden |
+01010 =Forbidden |
+01011 =Forbidden |
+01100 =Forbidden |
+01101 =Forbidden |
+01110 =Forbidden |
+01111 =Forbidden |
+10000 ->c1 # S |
+10001 ->c1 # D |
+10010 =Forbidden |
+10011 =Forbidden |
+10100 ->c1 # W |
+10101 ->c1 # L |
+10110 ->c1 # PS |
+10111 ->c1 |
+11000 ->c1 |
+11001 ->c1 |
+11010 ->c1 |
+11011 ->c1 |
+11100 ->c1 |
+11101 ->c1 |
+11110 ->c1 |
+11111 ->c1 |
+ |
+ |
+-- c1 (See Table A.14, A.15, A.16, A.17) |
+function(5:0) |
+000000 =Safe # add.fmt |
+000001 =Safe # sub.fmt |
+000010 =Safe # mul.fmt |
+000011 =Safe # div.fmt |
+000100 ->sqrt # sqrt.fmt |
+000101 ->sqrt # abs.fmt |
+000110 ->sqrt # mov.fmt |
+000111 ->sqrt # neg.fmt |
+001000 ->sqrt # round.l.fmt |
+001001 ->sqrt # trunc.l.fmt |
+001010 ->sqrt # ceil.l.fmt |
+001011 ->sqrt # floor.l.fmt |
+001100 ->sqrt # round.w.fmt |
+001101 ->sqrt # trunc.w.fmt |
+001110 ->sqrt # ceil.w.fmt |
+001111 ->sqrt # floor.w.fmt |
+010000 =Forbidden |
+010001 ->movcf |
+010010 =Safe # movz.fmt |
+010011 =Safe # movn.fmt |
+010100 =Forbidden |
+010101 ->sqrt # recip.fmt |
+010110 ->sqrt # rsqrt.fmt |
+010111 =Forbidden |
+011000 =Forbidden |
+011001 =Forbidden |
+011010 =Forbidden |
+011011 =Forbidden |
+011100 =Forbidden |
+011101 =Forbidden |
+011110 =Forbidden |
+011111 =Forbidden |
+100000 ->sqrt # cvt.s.fmt |
+100001 ->sqrt # cvt.d.fmt |
+100010 =Forbidden |
+100011 =Forbidden |
+100100 ->sqrt # cvt.w.fmt |
+100101 ->sqrt # cvt.l.fmt |
+100110 =Safe # cvt.ps.fmt |
+100111 =Forbidden |
+101000 ->sqrt # cvt.s.pl |
+101001 =Forbidden |
+101010 =Forbidden |
+101011 =Forbidden |
+101100 =Safe # pll.ps |
+101101 =Safe # plu.ps |
+101110 =Safe # pul.ps |
+101111 =Safe # puu.ps |
+110000 ->c_cond_fmt # c.f.fmt |
+110001 ->c_cond_fmt # c.un.fmt |
+110010 ->c_cond_fmt # c.eq.fmt |
+110011 ->c_cond_fmt # c.ueq.fmt |
+110100 ->c_cond_fmt # c.olt.fmt |
+110101 ->c_cond_fmt # c.ult.fmt |
+110110 ->c_cond_fmt # c.ole.fmt |
+110111 ->c_cond_fmt # c.ule.fmt |
+111000 ->c_cond_fmt # c.sf.fmt |
+111001 ->c_cond_fmt # c.ngle.fmt |
+111010 ->c_cond_fmt # c.seq.fmt |
+111011 ->c_cond_fmt # c.ngl.fmt |
+111100 ->c_cond_fmt # c.lt.fmt |
+111101 ->c_cond_fmt # c.nge.fmt |
+111110 ->c_cond_fmt # c.le.fmt |
+111111 ->c_cond_fmt # c.ngt.fmt |
+ |
+ |
+-- movcf (See Table A.18) |
+tf(17:16) |
+00 =Safe # movf.fmt |
+01 =Safe # movt.fmt |
+1x =Forbidden |
+ |
+ |
+-- cop2 (See Table A.19) |
+rs(25:21) |
+00000 =Forbidden # mfc2 |
+00001 =Forbidden |
+00010 =Forbidden # cfc2 |
+00011 =Forbidden # mfhc2 |
+00100 =Forbidden # mtc2 |
+00101 =Forbidden |
+00110 =Forbidden # ctc2 |
+00111 =Forbidden # mthc2 |
+01000 ->bc2 |
+01001 =Forbidden |
+01010 =Forbidden |
+01011 =Forbidden |
+01100 =Forbidden |
+01101 =Forbidden |
+01110 =Forbidden |
+01111 =Forbidden |
+10000 =Forbidden |
+10001 =Forbidden |
+10010 =Forbidden |
+10011 =Forbidden |
+10100 =Forbidden |
+10101 =Forbidden |
+10110 =Forbidden |
+10111 =Forbidden |
+11000 =Forbidden |
+11001 =Forbidden |
+11010 =Forbidden |
+11011 =Forbidden |
+11100 =Forbidden |
+11101 =Forbidden |
+11110 =Forbidden |
+11111 =Forbidden |
+ |
+ |
+-- cop1x (See Table A.20) |
+function(5:0) |
+000000 =Forbidden # lwxc1 |
+000001 =Forbidden # ldxc1 |
+000010 =Forbidden |
+000011 =Forbidden |
+000100 =Forbidden |
+000101 =Forbidden # luxc1 |
+000110 =Forbidden |
+000111 =Forbidden |
+001000 =Forbidden # swxc1 |
+001001 =Forbidden # sdxc1 |
+001010 =Forbidden |
+001011 =Forbidden |
+001100 =Forbidden |
+001101 =Forbidden # suxc1 |
+001110 =Forbidden |
+001111 =Forbidden # prefx |
+010000 =Forbidden |
+010001 =Forbidden |
+010010 =Forbidden |
+010011 =Forbidden |
+010100 =Forbidden |
+010101 =Forbidden |
+010110 =Forbidden |
+010111 =Forbidden |
+011000 =Forbidden |
+011001 =Forbidden |
+011010 =Forbidden |
+011011 =Forbidden |
+011100 =Forbidden |
+011101 =Forbidden |
+011110 =Safe # alnv.ps |
+011111 =Forbidden |
+100000 =Safe # madd.s |
+100001 =Safe # madd.d |
+100010 =Forbidden |
+100011 =Forbidden |
+100100 =Forbidden |
+100101 =Forbidden |
+100110 =Safe # madd.ps |
+100111 =Forbidden |
+101000 =Safe # msub.s |
+101001 =Safe # msub.d |
+101010 =Forbidden |
+101011 =Forbidden |
+101100 =Forbidden |
+101101 =Forbidden |
+101110 =Safe # msub.ps |
+101111 =Forbidden |
+110000 =Safe # nmadd.s |
+110001 =Safe # nmadd.d |
+110010 =Forbidden |
+110011 =Forbidden |
+110100 =Forbidden |
+110101 =Forbidden |
+110110 =Safe # nmadd.ps |
+110111 =Forbidden |
+111000 =Safe # nmsub.s |
+111001 =Safe # nmsub.d |
+111010 =Forbidden |
+111011 =Forbidden |
+111100 =Forbidden |
+111101 =Forbidden |
+111110 =Safe # nmsub.ps |
+111111 =Forbidden |
+ |
+ |
+-- branch_1 ( ) |
+pat0(20:16) |
+00000 =Branch |
+~00000 =Forbidden |
+ |
+ |
+-- arithm2_1 ( ) |
+pat0(25:21) |
+00000 =Arithm2 |
+~00000 =Forbidden |
+ |
+ |
+-- arithm3_1 ( ) |
+pat0(25:21) |
+00000 =Arithm3 |
+~00000 =Forbidden |
+ |
+ |
+-- arithm3_2 ( ) |
+pat0(10:6) |
+00000 =Arithm3 |
+~00000 =Forbidden |
+ |
+ |
+-- sync ( ) |
+pat0(25:6) |
+00000000000000000000 =Safe |
+~00000000000000000000 =Forbidden |
+ |
+ |
+-- mfhi ( ) |
+pat0(25:16) pat1(10:6) |
+0000000000 00000 =Arithm3 |
+~0000000000 ~00000 =Forbidden |
+ |
+ |
+-- mthi ( ) |
+pat0(20:6) |
+000000000000000 =Safe |
+~000000000000000 =Forbidden |
+ |
+ |
+-- mult ( ) |
+pat0(15:6) |
+0000000000 =Safe |
+~0000000000 =Forbidden |
+ |
+ |
+-- arithm3_3 ( ) |
+pat0(10:6) |
+00000 =Arithm3 |
+~00000 =Forbidden |
+ |
+ |
+-- mfmc0 ( ) |
+pat0(15:6) sc(5) pat2(4:0) |
+0110000000 0 00000 =Forbidden # di |
+0110000000 1 00000 =Forbidden # ei |
+0110000000 x ~00000 =Forbidden |
+~0110000000 x 00000 =Forbidden |
+~0110000000 x ~00000 =Forbidden |
+ |
+ |
+-- mfc1 ( ) |
+pat0(10:0) |
+00000000000 =Arithm2 |
+~00000000000 =Forbidden |
+ |
+ |
+-- mtc1 ( ) |
+pat0(10:0) |
+00000000000 =Safe |
+~00000000000 =Forbidden |
+ |
+ |
+-- bc1 ( ) |
+nd_tf(17:16) |
+00 =Branch # bc1f |
+01 =Branch # bc1t |
+10 =Branch # bc1fl |
+11 =Branch # bc1tl |
+ |
+ |
+-- sqrt ( ) |
+pat0(20:16) |
+00000 =Safe |
+~00000 =Forbidden |
+ |
+ |
+-- bc2 ( ) |
+nd_tf(17:16) |
+00 =Forbidden # bc2f |
+01 =Forbidden # bc2t |
+10 =Forbidden # bc2fl |
+11 =Forbidden # bc2tl |
+ |
+ |
+-- c_cond_fmt ( ) |
+pat0(7:6) |
+00 =Safe |
+~00 =Forbidden |
+ |