Index: src/trusted/validator_mips/mips-opt.table |
diff --git a/src/trusted/validator_mips/mips-opt.table b/src/trusted/validator_mips/mips-opt.table |
new file mode 100755 |
index 0000000000000000000000000000000000000000..278e730e2e59843c1ce56ae23ec95a96d40e5fad |
--- /dev/null |
+++ b/src/trusted/validator_mips/mips-opt.table |
@@ -0,0 +1,318 @@ |
+# DO NOT EDIT: GENERATED CODE |
+ |
+-- MIPS32 (See Table A.2) |
+pat0(31:0) |
+111000xxxxxxxxxxxxxxxxxxxxxxxxxx =StoreConditional |
+010001xxxxxxxxxxxxxxxxxxxxxxxxxx ->cop1 |
+000000xxxxxxxxxxxxxxxxxxxxxxxxxx ->special |
+000010xxxxxxxxxxxxxxxxxxxxxxxxxx =JmpImm |
+011100xxxxxxxxxxxxxxxxxxxxxxxxxx ->special2 |
+11xx01xxxxxxxxxxxxxxxxxxxxxxxxxx =FPLoadStore |
+11xx10xxxxxxxxxxxxxxxxxxxxxxxxxx =FPLoadStore |
+100110xxxxxxxxxxxxxxxxxxxxxxxxxx =Load |
+110000xxxxxxxxxxxxxxxxxxxxxxxxxx =Load |
+10010xxxxxxxxxxxxxxxxxxxxxxxxxxx =Load |
+1000xxxxxxxxxxxxxxxxxxxxxxxxxxxx =Load |
+001110xxxxxxxxxxxxxxxxxxxxxxxxxx =Arithm2 |
+00110xxxxxxxxxxxxxxxxxxxxxxxxxxx =Arithm2 |
+0010xxxxxxxxxxxxxxxxxxxxxxxxxxxx =Arithm2 |
+011111xxxxxxxxxxxxxxxxxxxxxxxxxx ->special3 |
+0x010xxxxxxxxxxxxxxxxxxxxxxxxxxx =Branch |
+001111xxxxxxxxxxxxxxxxxxxxxxxxxx ->arithm2_1 |
+000011xxxxxxxxxxxxxxxxxxxxxxxxxx =JalImm |
+010010xxxxxxxxxxxxxxxxxxxxxxxxxx ->cop2 |
+0x011xxxxxxxxxxxxxxxxxxxxxxxxxxx ->branch_1 |
+010000xxxxxxxxxxxxxxxxxxxxxxxxxx ->cop0 |
+000001xxxxxxxxxxxxxxxxxxxxxxxxxx ->regimm |
+011101xxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+011110xxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+10x111xxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+10110xxxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+11x100xxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+0110xxxxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+11xx11xxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+010011xxxxxxxxxxxxxxxxxxxxxxxxxx ->cop1x |
+101110xxxxxxxxxxxxxxxxxxxxxxxxxx =Store |
+1010xxxxxxxxxxxxxxxxxxxxxxxxxxxx =Store |
+ |
+-- special (See Table A.3) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0100x1 ->mthi |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000110 ->srlv |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10101x ->arithm3_3 |
+xxxxxxxxxxxxxxxxxxxxxxxxxx100xxx ->arithm3_3 |
+xxxxxxxxxxxxxxxxxxxxxxxxxx001111 ->sync |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0110xx ->mult |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000010 ->srl |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000001 ->movci |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0100x0 ->mfhi |
+xxxxxxxxxxxxxxxxxxxxxxxxxx001001 ->jalr |
+xxxxxxxxxxxxxxxxxxxxxxxxxx001000 ->jr |
+xxxxxxxxxxxxxxxxxxxxxxxxxx00x101 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0011x0 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx11110x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx101x0x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx1x111x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx1110xx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx01x1xx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx110xxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000100 ->arithm3_2 |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000111 ->arithm3_2 |
+xxxxxxxxxxxxxxxxxxxxxxxxxx00101x ->arithm3_2 |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000000 ->arithm3_1 |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000011 ->arithm3_1 |
+ |
+-- regimm (See Table A.4) |
+pat0(31:0) |
+xxxxxxxxxxx000xxxxxxxxxxxxxxxxxx =Branch |
+xxxxxxxxxxxx10xxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxxxxxxx100xxxxxxxxxxxxxxxxxx =BranchAndLink |
+ |
+-- special2 (See Table A.5) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000x0x ->mult |
+xxxxxxxxxxxxxxxxxxxxxxxxxx111111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000x11 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx00x110 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0x1111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxxx11110 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10111x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx11110x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0x110x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx100x1x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10x10x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxxxx10xx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxxx10xxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000010 ->arithm3_2 |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10000x ->arithm3_2 |
+ |
+-- special3 (See Table A.6) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000x00 =ExtIns |
+xxxxxxxxxxxxxxxxxxxxxxxxxx100000 ->bshfl |
+xxxxxxxxxxxxxxxxxxxxxxxxxx111111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx1000x1 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10x111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx1x1110 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx11110x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx000xx1 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxxx00x10 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10x10x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx1x10xx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0x1xxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxxx10xxx =Forbidden |
+ |
+-- movci (See Table A.7) |
+pat0(31:0) pat1(31:0) |
+xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ~xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Forbidden |
+xxxxxxxxxxxxxx0xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Arithm3 |
+ |
+-- srl (See Table A.8) |
+pat0(31:0) |
+~xxxxxx0000xxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx0000xxxxxxxxxxxxxxxxxxxxxx =Arithm3 |
+ |
+-- srlv (See Table A.9) |
+pat0(31:0) |
+~xxxxxxxxxxxxxxxxxxxxx0000xxxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx0000xxxxxxx =Arithm3 |
+ |
+-- bshfl (See Table A.10) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxx10111xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx00x11xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx0x110xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxx1111xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx1010xxxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx00x0xxxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx010xxxxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxx110xxxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx1x0x1xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx1xx10xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx00010xxxxxx ->arithm3_1 |
+xxxxxxxxxxxxxxxxxxxxx1x000xxxxxx ->arithm3_1 |
+ |
+-- cop0 (See Table A.11) |
+pat0(31:0) |
+xxxxxx01011xxxxxxxxxxxxxxxxxxxxx ->mfmc0 |
+xxxxxx10111xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx11110xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx01x10xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxxx1111xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx100x1xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx10x10xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx01x0xxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx1x10xxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx110xxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx00xxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx10000xxxxxxxxxxxxxxxxxxxxx ->c0 |
+ |
+-- c0 (See Table A.12) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+ |
+-- cop1 (See Table A.13) |
+pat0(31:0) |
+xxxxxx00000xxxxxxxxxxxxxxxxxxxxx ->mfc1 |
+xxxxxx00011xxxxxxxxxxxxxxxxxxxxx ->mfc1 |
+xxxxxx01000xxxxxxxxxxxxxxxxxxxxx ->bc1 |
+xxxxxx01111xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx00x01xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx010x1xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx0110xxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx1001xxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx0xx10xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx1110xxxxxxxxxxxxxxxxxxxxxx ->c1 |
+xxxxxx10x0xxxxxxxxxxxxxxxxxxxxxx ->c1 |
+xxxxxx1x11xxxxxxxxxxxxxxxxxxxxxx ->c1 |
+xxxxxx110xxxxxxxxxxxxxxxxxxxxxxx ->c1 |
+xxxxxx00100xxxxxxxxxxxxxxxxxxxxx ->mtc1 |
+xxxxxx00111xxxxxxxxxxxxxxxxxxxxx ->mtc1 |
+ |
+-- c1 (See Table A.14, A.15, A.16, A.17) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxx101111 =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxx01001x =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10x110 =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10110x =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0000xx =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxx010101 ->fp |
+xxxxxxxxxxxxxxxxxxxxxxxxxx010110 ->fp |
+xxxxxxxxxxxxxxxxxxxxxxxxxx101000 ->fp |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0010xx ->fp |
+xxxxxxxxxxxxxxxxxxxxxxxxxx100x0x ->fp |
+xxxxxxxxxxxxxxxxxxxxxxxxxx00x1xx ->fp |
+xxxxxxxxxxxxxxxxxxxxxxxxxx010001 ->movcf |
+xxxxxxxxxxxxxxxxxxxxxxxxxx11xxxx ->c_cond_fmt |
+xxxxxxxxxxxxxxxxxxxxxxxxxx011110 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx100111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx101010 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx010x00 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx01x111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx01110x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10001x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx1010x1 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0110xx =Forbidden |
+ |
+-- movcf (See Table A.18) |
+pat0(31:0) |
+xxxxxxxxxxxxxx0xxxxxxxxxxxxxxxxx =Safe |
+xxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxx =Forbidden |
+ |
+-- cop2 (See Table A.19) |
+pat0(31:0) |
+xxxxxx01000xxxxxxxxxxxxxxxxxxxxx ->bc2 |
+xxxxxx11110xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx010x1xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx01x10xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxxx1111xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxxx110xxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx110xxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxxx0xxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+ |
+-- cop1x (See Table A.20) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxx110110 =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxxx11110 =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10x110 =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxx1xx00x =Safe |
+xxxxxxxxxxxxxxxxxxxxxxxxxx110111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxxx11111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10x111 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx11010x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx0110xx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxxx1110x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx10x10x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx010xxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx1xx01x =Forbidden |
+xxxxxxxxxxxxxxxxxxxxxxxxxx00xxxx =Forbidden |
+ |
+-- branch_1 (blez, bgtz, blezl, bgtzl) |
+pat0(31:0) |
+xxxxxxxxxxx00000xxxxxxxxxxxxxxxx =Branch |
+~xxxxxxxxxxx00000xxxxxxxxxxxxxxxx =Forbidden |
+ |
+-- arithm2_1 (lui) |
+pat0(31:0) |
+~xxxxxx00000xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx00000xxxxxxxxxxxxxxxxxxxxx =Arithm2 |
+ |
+-- arithm3_1 (sll, sra, wsbh, seb, seh) |
+pat0(31:0) |
+~xxxxxx00000xxxxxxxxxxxxxxxxxxxxx =Forbidden |
+xxxxxx00000xxxxxxxxxxxxxxxxxxxxx =Arithm3 |
+ |
+-- arithm3_2 (sllv, srav, movz, movn, mul, clz, clo) |
+pat0(31:0) |
+~xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Arithm3 |
+ |
+-- jr (jr) |
+pat0(31:0) pat1(31:0) |
+xxxxxx00000xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx000000000000000xxxxxx =NaClHalt |
+~xxxxxx00000xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx000000000000000xxxxxx =JmpReg |
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ~xxxxxxxxxxx000000000000000xxxxxx =Forbidden |
+ |
+-- jalr (jalr) |
+pat0(31:0) pat1(31:0) |
+xxxxxxxxxxx00000xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =JalReg |
+~xxxxxxxxxxx00000xxxxxxxxxxxxxxxx ~xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Forbidden |
+ |
+-- sync (sync) |
+pat0(31:0) |
+xxxxxx00000000000000000000xxxxxx =Safe |
+~xxxxxx00000000000000000000xxxxxx =Forbidden |
+ |
+-- mfhi (mfhi, mflo) |
+pat0(31:0) pat1(31:0) |
+~xxxxxx0000000000xxxxxxxxxxxxxxxx ~xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Forbidden |
+xxxxxx0000000000xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Arithm3 |
+ |
+-- mthi (mthi, mtlo) |
+pat0(31:0) |
+xxxxxxxxxxx000000000000000xxxxxx =Safe |
+~xxxxxxxxxxx000000000000000xxxxxx =Forbidden |
+ |
+-- mult (mult, multu, div, divu, madd, maddu, msub, msubu) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxx0000000000xxxxxx =Safe |
+~xxxxxxxxxxxxxxxx0000000000xxxxxx =Forbidden |
+ |
+-- arithm3_3 (add, addu, sub, subu, and, or, xor, nor, slt, sltu) |
+pat0(31:0) |
+~xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx00000xxxxxx =Arithm3 |
+ |
+-- mfmc0 (di, ei) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+ |
+-- mfc1 (mfc1, mfhc1) |
+pat0(31:0) |
+~xxxxxxxxxxxxxxxxxxxxx00000000000 =Forbidden |
+xxxxxxxxxxxxxxxxxxxxx00000000000 =Arithm2 |
+ |
+-- mtc1 (mtc1, mthc1) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxx00000000000 =Safe |
+~xxxxxxxxxxxxxxxxxxxxx00000000000 =Forbidden |
+ |
+-- bc1 (bc1f, bc1t, bc1fl, bc1tl) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx =Branch |
+ |
+-- fp (sqrt.fmt, abs.fmt, mov.fmt, neg.fmt, round.l.fmt, trunc.l.fmt, ceil.l.fmt, floor.l.fmt, round.w.fmt, trunc.w.fmt, ceil.w.fmt, floor.w.fmt, recip.fmt, rsqrt.fmt, cvt.s.fmt, cvt.d.fmt, cvt.w.fmt, cvt.l.fmt, cvt.s.pl) |
+pat0(31:0) |
+xxxxxxxxxxx00000xxxxxxxxxxxxxxxx =Safe |
+~xxxxxxxxxxx00000xxxxxxxxxxxxxxxx =Forbidden |
+ |
+-- bc2 (bc2f, bc2t, bc2fl, bc2tl) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx =Forbidden |
+ |
+-- c_cond_fmt (c.cond.fmt) |
+pat0(31:0) |
+xxxxxxxxxxxxxxxxxxxxxxxx00xxxxxx =Safe |
+~xxxxxxxxxxxxxxxxxxxxxxxx00xxxxxx =Forbidden |