| 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 100644 | 
| 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 | 
|  |