Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/trusted/validator_mips/mips32.table

Issue 9979025: [MIPS] Adding validator for MIPS architecture. (Closed) Base URL: http://src.chromium.org/native_client/trunk/src/native_client/
Patch Set: Rebased patch, conflict resolved. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/trusted/validator_mips/mips-opt.table ('k') | src/trusted/validator_mips/model.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # MIPS32 Instruction Encodings
2 #
3 # This table is derived from the "MIPS® Architecture For Programmers
4 # Volume II-A: The MIPS32® Instruction Set".
5
6 # This file defines the Native Client "instruction classes" assigned to every
7 # possible MIPS32 instruction encoding. It is organized into a series of tables,
8 # and directly parallels the MIPS Architecture Reference Manual cited above.
9 #
10 # Each table consists of
11 # - A name,
12 # - A citation in the Architecture Reference Manual,
13 # - One or more columns defining bitfields to match, and
14 # - One or more rows describing patterns in those bitfields.
15 #
16 # A leading tilde (~) negates a pattern. A hyphen (-) is short for a string of
17 # don't-care bits (x). A double-quote (") indicates that a pattern is the same
18 # as the row above it.
19 #
20 # Each row may specify a terminal instruction class ("=InstClass"), or forward
21 # the reader to a different table ("->table_name").
22 #
23 # If an encoding is not valid in every MIPS32 architecture rev, the instruction
24 # class may indicate the rev or feature that makes the encoding valid in
25 # parentheses.
26
27
28 -- MIPS32 (See Table A.2)
29 opcode(31:26)
30 000000 ->special
31 000001 ->regimm
32 000010 =JmpImm # j
33 000011 =JalImm # jal
34 000100 =Branch # beq
35 000101 =Branch # bne
36 000110 ->branch_1 # blez
37 000111 ->branch_1 # bgtz
38 001000 =Arithm2 # addi
39 001001 =Arithm2 # addiu
40 001010 =Arithm2 # slti
41 001011 =Arithm2 # sltiu
42 001100 =Arithm2 # andi
43 001101 =Arithm2 # ori
44 001110 =Arithm2 # xori
45 001111 ->arithm2_1 # lui
46 010000 ->cop0
47 010001 ->cop1
48 010010 ->cop2
49 010011 ->cop1x
50 010100 =Branch # beql
51 010101 =Branch # bnel
52 010110 ->branch_1 # blezl
53 010111 ->branch_1 # bgtzl
54 011000 =Forbidden
55 011001 =Forbidden
56 011010 =Forbidden
57 011011 =Forbidden
58 011100 ->special2
59 011101 =Forbidden # jalx
60 011110 =Forbidden
61 011111 ->special3
62 100000 =Load # lb
63 100001 =Load # lh
64 100010 =Load # lwl
65 100011 =Load # lw
66 100100 =Load # lbu
67 100101 =Load # lhu
68 100110 =Load # lwr
69 100111 =Forbidden
70 101000 =Store # sb
71 101001 =Store # sh
72 101010 =Store # swl
73 101011 =Store # sw
74 101100 =Forbidden
75 101101 =Forbidden
76 101110 =Store # swr
77 101111 =Forbidden # cache
78 110000 =Load # ll
79 110001 =FPLoadStore # lwc1
80 110010 =FPLoadStore # lwc2
81 110011 =Forbidden # pref
82 110100 =Forbidden
83 110101 =FPLoadStore # ldc1
84 110110 =FPLoadStore # ldc2
85 110111 =Forbidden
86 111000 =StoreConditional # sc
87 111001 =FPLoadStore # swc1
88 111010 =FPLoadStore # swc2
89 111011 =Forbidden
90 111100 =Forbidden
91 111101 =FPLoadStore # sdc1
92 111110 =FPLoadStore # sdc2
93 111111 =Forbidden
94
95
96 -- special (See Table A.3)
97 function(5:0)
98 000000 ->arithm3_1 # sll
99 000001 ->movci
100 000010 ->srl
101 000011 ->arithm3_1 # sra
102 000100 ->arithm3_2 # sllv
103 000101 =Forbidden
104 000110 ->srlv
105 000111 ->arithm3_2 # srav
106 001000 ->jr # jr
107 001001 ->jalr # jalr
108 001010 ->arithm3_2 # movz
109 001011 ->arithm3_2 # movn
110 001100 =Forbidden # syscall
111 001101 =Forbidden # break
112 001110 =Forbidden
113 001111 ->sync # sync
114 010000 ->mfhi # mfhi
115 010001 ->mthi # mthi
116 010010 ->mfhi # mflo
117 010011 ->mthi # mtlo
118 010100 =Forbidden
119 010101 =Forbidden
120 010110 =Forbidden
121 010111 =Forbidden
122 011000 ->mult # mult
123 011001 ->mult # multu
124 011010 ->mult # div
125 011011 ->mult # divu
126 011100 =Forbidden
127 011101 =Forbidden
128 011110 =Forbidden
129 011111 =Forbidden
130 100000 ->arithm3_3 # add
131 100001 ->arithm3_3 # addu
132 100010 ->arithm3_3 # sub
133 100011 ->arithm3_3 # subu
134 100100 ->arithm3_3 # and
135 100101 ->arithm3_3 # or
136 100110 ->arithm3_3 # xor
137 100111 ->arithm3_3 # nor
138 101000 =Forbidden
139 101001 =Forbidden
140 101010 ->arithm3_3 # slt
141 101011 ->arithm3_3 # sltu
142 101100 =Forbidden
143 101101 =Forbidden
144 101110 =Forbidden
145 101111 =Forbidden
146 110000 =Forbidden # tge
147 110001 =Forbidden # tgeu
148 110010 =Forbidden # tlt
149 110011 =Forbidden # tltu
150 110100 =Forbidden # teq
151 110101 =Forbidden
152 110110 =Forbidden # tne
153 110111 =Forbidden
154 111000 =Forbidden
155 111001 =Forbidden
156 111010 =Forbidden
157 111011 =Forbidden
158 111100 =Forbidden
159 111101 =Forbidden
160 111110 =Forbidden
161 111111 =Forbidden
162
163
164 -- regimm (See Table A.4)
165 rt(20:16)
166 00000 =Branch # bltz
167 00001 =Branch # bgez
168 00010 =Branch # bltzl
169 00011 =Branch # bgezl
170 00100 =Forbidden
171 00101 =Forbidden
172 00110 =Forbidden
173 00111 =Forbidden
174 01000 =Forbidden # tgei
175 01001 =Forbidden # tgeiu
176 01010 =Forbidden # tlti
177 01011 =Forbidden # tltiu
178 01100 =Forbidden # teqi
179 01101 =Forbidden
180 01110 =Forbidden # tnei
181 01111 =Forbidden
182 10000 =BranchAndLink # bltzal
183 10001 =BranchAndLink # bgezal
184 10010 =BranchAndLink # bltzall
185 10011 =BranchAndLink # bgezall
186 10100 =Forbidden
187 10101 =Forbidden
188 10110 =Forbidden
189 10111 =Forbidden
190 11000 =Forbidden
191 11001 =Forbidden
192 11010 =Forbidden
193 11011 =Forbidden
194 11100 =Forbidden
195 11101 =Forbidden
196 11110 =Forbidden
197 11111 =Forbidden # synci
198
199
200 -- special2 (See Table A.5)
201 function(5:0)
202 000000 ->mult # madd
203 000001 ->mult # maddu
204 000010 ->arithm3_2 # mul
205 000011 =Forbidden
206 000100 ->mult # msub
207 000101 ->mult # msubu
208 000110 =Forbidden
209 000111 =Forbidden
210 001000 =Forbidden
211 001001 =Forbidden
212 001010 =Forbidden
213 001011 =Forbidden
214 001100 =Forbidden
215 001101 =Forbidden
216 001110 =Forbidden
217 001111 =Forbidden
218 010000 =Forbidden
219 010001 =Forbidden
220 010010 =Forbidden
221 010011 =Forbidden
222 010100 =Forbidden
223 010101 =Forbidden
224 010110 =Forbidden
225 010111 =Forbidden
226 011000 =Forbidden
227 011001 =Forbidden
228 011010 =Forbidden
229 011011 =Forbidden
230 011100 =Forbidden
231 011101 =Forbidden
232 011110 =Forbidden
233 011111 =Forbidden
234 100000 ->arithm3_2 # clz
235 100001 ->arithm3_2 # clo
236 100010 =Forbidden
237 100011 =Forbidden
238 100100 =Forbidden
239 100101 =Forbidden
240 100110 =Forbidden
241 100111 =Forbidden
242 101000 =Forbidden
243 101001 =Forbidden
244 101010 =Forbidden
245 101011 =Forbidden
246 101100 =Forbidden
247 101101 =Forbidden
248 101110 =Forbidden
249 101111 =Forbidden
250 110000 =Forbidden
251 110001 =Forbidden
252 110010 =Forbidden
253 110011 =Forbidden
254 110100 =Forbidden
255 110101 =Forbidden
256 110110 =Forbidden
257 110111 =Forbidden
258 111000 =Forbidden
259 111001 =Forbidden
260 111010 =Forbidden
261 111011 =Forbidden
262 111100 =Forbidden
263 111101 =Forbidden
264 111110 =Forbidden
265 111111 =Forbidden # sdbbp
266
267
268 -- special3 (See Table A.6)
269 function(5:0)
270 000000 =ExtIns # ext
271 000001 =Forbidden
272 000010 =Forbidden
273 000011 =Forbidden
274 000100 =ExtIns # ins
275 000101 =Forbidden
276 000110 =Forbidden
277 000111 =Forbidden
278 001000 =Forbidden
279 001001 =Forbidden
280 001010 =Forbidden
281 001011 =Forbidden
282 001100 =Forbidden
283 001101 =Forbidden
284 001110 =Forbidden
285 001111 =Forbidden
286 010000 =Forbidden
287 010001 =Forbidden
288 010010 =Forbidden
289 010011 =Forbidden
290 010100 =Forbidden
291 010101 =Forbidden
292 010110 =Forbidden
293 010111 =Forbidden
294 011000 =Forbidden
295 011001 =Forbidden
296 011010 =Forbidden
297 011011 =Forbidden
298 011100 =Forbidden
299 011101 =Forbidden
300 011110 =Forbidden
301 011111 =Forbidden
302 100000 ->bshfl
303 100001 =Forbidden
304 100010 =Forbidden
305 100011 =Forbidden
306 100100 =Forbidden
307 100101 =Forbidden
308 100110 =Forbidden
309 100111 =Forbidden
310 101000 =Forbidden
311 101001 =Forbidden
312 101010 =Forbidden
313 101011 =Forbidden
314 101100 =Forbidden
315 101101 =Forbidden
316 101110 =Forbidden
317 101111 =Forbidden
318 110000 =Forbidden
319 110001 =Forbidden
320 110010 =Forbidden
321 110011 =Forbidden
322 110100 =Forbidden
323 110101 =Forbidden
324 110110 =Forbidden
325 110111 =Forbidden
326 111000 =Forbidden
327 111001 =Forbidden
328 111010 =Forbidden
329 111011 =Forbidden # rdhwr
330 111100 =Forbidden
331 111101 =Forbidden
332 111110 =Forbidden
333 111111 =Forbidden
334
335
336 -- movci (See Table A.7)
337 pat0(17:16) pat1(10:6)
338 00 00000 =Arithm3 # movf
339 01 00000 =Arithm3 # movt
340 1x 00000 =Forbidden
341 xx ~00000 =Forbidden
342
343
344 -- srl (See Table A.8)
345 pat0(25:22) R(21)
346 0000 0 =Arithm3 # srl
347 0000 1 =Arithm3 # rotr
348 ~0000 x =Forbidden
349
350
351 -- srlv (See Table A.9)
352 pat0(10:7) R(6)
353 0000 0 =Arithm3 # srlv
354 0000 1 =Arithm3 # rotrv
355 ~0000 x =Forbidden
356
357
358 -- bshfl (See Table A.10)
359 sa(10:6)
360 00000 =Forbidden
361 00001 =Forbidden
362 00010 ->arithm3_1 # wsbh
363 00011 =Forbidden
364 00100 =Forbidden
365 00101 =Forbidden
366 00110 =Forbidden
367 00111 =Forbidden
368 01000 =Forbidden
369 01001 =Forbidden
370 01010 =Forbidden
371 01011 =Forbidden
372 01100 =Forbidden
373 01101 =Forbidden
374 01110 =Forbidden
375 01111 =Forbidden
376 10000 ->arithm3_1 # seb
377 10001 =Forbidden
378 10010 =Forbidden
379 10011 =Forbidden
380 10100 =Forbidden
381 10101 =Forbidden
382 10110 =Forbidden
383 10111 =Forbidden
384 11000 ->arithm3_1 # seh
385 11001 =Forbidden
386 11010 =Forbidden
387 11011 =Forbidden
388 11100 =Forbidden
389 11101 =Forbidden
390 11110 =Forbidden
391 11111 =Forbidden
392
393
394 -- cop0 (See Table A.11)
395 rs(25:21)
396 00000 =Forbidden # mfc0
397 00001 =Forbidden
398 00010 =Forbidden
399 00011 =Forbidden
400 00100 =Forbidden # mtc0
401 00101 =Forbidden
402 00110 =Forbidden
403 00111 =Forbidden
404 01000 =Forbidden
405 01001 =Forbidden
406 01010 =Forbidden # rdpgpr
407 01011 ->mfmc0
408 01100 =Forbidden
409 01101 =Forbidden
410 01110 =Forbidden # wrpgpr
411 01111 =Forbidden
412 10000 ->c0
413 10001 =Forbidden
414 10010 =Forbidden
415 10011 =Forbidden
416 10100 =Forbidden
417 10101 =Forbidden
418 10110 =Forbidden
419 10111 =Forbidden
420 11000 =Forbidden
421 11001 =Forbidden
422 11010 =Forbidden
423 11011 =Forbidden
424 11100 =Forbidden
425 11101 =Forbidden
426 11110 =Forbidden
427 11111 =Forbidden
428
429
430 -- c0 (See Table A.12)
431 function(5:0)
432 000000 =Forbidden
433 000001 =Forbidden # tlbr
434 000010 =Forbidden # tlbwi
435 000011 =Forbidden
436 000100 =Forbidden
437 000101 =Forbidden
438 000110 =Forbidden # tlbwr
439 000111 =Forbidden
440 001000 =Forbidden # tlbp
441 001001 =Forbidden
442 001010 =Forbidden
443 001011 =Forbidden
444 001100 =Forbidden
445 001101 =Forbidden
446 001110 =Forbidden
447 001111 =Forbidden
448 010000 =Forbidden
449 010001 =Forbidden
450 010010 =Forbidden
451 010011 =Forbidden
452 010100 =Forbidden
453 010101 =Forbidden
454 010110 =Forbidden
455 010111 =Forbidden
456 011000 =Forbidden # eret
457 011001 =Forbidden
458 011010 =Forbidden
459 011011 =Forbidden
460 011100 =Forbidden
461 011101 =Forbidden
462 011110 =Forbidden
463 011111 =Forbidden # deret
464 100000 =Forbidden # wait
465 100001 =Forbidden
466 100010 =Forbidden
467 100011 =Forbidden
468 100100 =Forbidden
469 100101 =Forbidden
470 100110 =Forbidden
471 100111 =Forbidden
472 101000 =Forbidden
473 101001 =Forbidden
474 101010 =Forbidden
475 101011 =Forbidden
476 101100 =Forbidden
477 101101 =Forbidden
478 101110 =Forbidden
479 101111 =Forbidden
480 110000 =Forbidden
481 110001 =Forbidden
482 110010 =Forbidden
483 110011 =Forbidden
484 110100 =Forbidden
485 110101 =Forbidden
486 110110 =Forbidden
487 110111 =Forbidden
488 111000 =Forbidden
489 111001 =Forbidden
490 111010 =Forbidden
491 111011 =Forbidden
492 111100 =Forbidden
493 111101 =Forbidden
494 111110 =Forbidden
495 111111 =Forbidden
496
497
498 -- cop1 (See Table A.13)
499 rs(25:21)
500 00000 ->mfc1 # mfc1
501 00001 =Forbidden
502 00010 =Forbidden # cfc1
503 00011 ->mfc1 # mfhc1
504 00100 ->mtc1 # mtc1
505 00101 =Forbidden
506 00110 =Forbidden # ctc1
507 00111 ->mtc1 # mthc1
508 01000 ->bc1
509 01001 =Forbidden
510 01010 =Forbidden
511 01011 =Forbidden
512 01100 =Forbidden
513 01101 =Forbidden
514 01110 =Forbidden
515 01111 =Forbidden
516 10000 ->c1 # S
517 10001 ->c1 # D
518 10010 =Forbidden
519 10011 =Forbidden
520 10100 ->c1 # W
521 10101 ->c1 # L
522 10110 ->c1 # PS
523 10111 ->c1
524 11000 ->c1
525 11001 ->c1
526 11010 ->c1
527 11011 ->c1
528 11100 ->c1
529 11101 ->c1
530 11110 ->c1
531 11111 ->c1
532
533
534 -- c1 (See Table A.14, A.15, A.16, A.17)
535 function(5:0)
536 000000 =Safe # add.fmt
537 000001 =Safe # sub.fmt
538 000010 =Safe # mul.fmt
539 000011 =Safe # div.fmt
540 000100 ->fp # sqrt.fmt
541 000101 ->fp # abs.fmt
542 000110 ->fp # mov.fmt
543 000111 ->fp # neg.fmt
544 001000 ->fp # round.l.fmt
545 001001 ->fp # trunc.l.fmt
546 001010 ->fp # ceil.l.fmt
547 001011 ->fp # floor.l.fmt
548 001100 ->fp # round.w.fmt
549 001101 ->fp # trunc.w.fmt
550 001110 ->fp # ceil.w.fmt
551 001111 ->fp # floor.w.fmt
552 010000 =Forbidden
553 010001 ->movcf
554 010010 =Safe # movz.fmt
555 010011 =Safe # movn.fmt
556 010100 =Forbidden
557 010101 ->fp # recip.fmt
558 010110 ->fp # rsqrt.fmt
559 010111 =Forbidden
560 011000 =Forbidden
561 011001 =Forbidden
562 011010 =Forbidden
563 011011 =Forbidden
564 011100 =Forbidden
565 011101 =Forbidden
566 011110 =Forbidden
567 011111 =Forbidden
568 100000 ->fp # cvt.s.fmt
569 100001 ->fp # cvt.d.fmt
570 100010 =Forbidden
571 100011 =Forbidden
572 100100 ->fp # cvt.w.fmt
573 100101 ->fp # cvt.l.fmt
574 100110 =Safe # cvt.ps.fmt
575 100111 =Forbidden
576 101000 ->fp # cvt.s.pl
577 101001 =Forbidden
578 101010 =Forbidden
579 101011 =Forbidden
580 101100 =Safe # pll.ps
581 101101 =Safe # plu.ps
582 101110 =Safe # pul.ps
583 101111 =Safe # puu.ps
584 110000 ->c_cond_fmt # c.f.fmt
585 110001 ->c_cond_fmt # c.un.fmt
586 110010 ->c_cond_fmt # c.eq.fmt
587 110011 ->c_cond_fmt # c.ueq.fmt
588 110100 ->c_cond_fmt # c.olt.fmt
589 110101 ->c_cond_fmt # c.ult.fmt
590 110110 ->c_cond_fmt # c.ole.fmt
591 110111 ->c_cond_fmt # c.ule.fmt
592 111000 ->c_cond_fmt # c.sf.fmt
593 111001 ->c_cond_fmt # c.ngle.fmt
594 111010 ->c_cond_fmt # c.seq.fmt
595 111011 ->c_cond_fmt # c.ngl.fmt
596 111100 ->c_cond_fmt # c.lt.fmt
597 111101 ->c_cond_fmt # c.nge.fmt
598 111110 ->c_cond_fmt # c.le.fmt
599 111111 ->c_cond_fmt # c.ngt.fmt
600
601
602 -- movcf (See Table A.18)
603 tf(17:16)
604 00 =Safe # movf.fmt
605 01 =Safe # movt.fmt
606 1x =Forbidden
607
608
609 -- cop2 (See Table A.19)
610 rs(25:21)
611 00000 =Forbidden # mfc2
612 00001 =Forbidden
613 00010 =Forbidden # cfc2
614 00011 =Forbidden # mfhc2
615 00100 =Forbidden # mtc2
616 00101 =Forbidden
617 00110 =Forbidden # ctc2
618 00111 =Forbidden # mthc2
619 01000 ->bc2
620 01001 =Forbidden
621 01010 =Forbidden
622 01011 =Forbidden
623 01100 =Forbidden
624 01101 =Forbidden
625 01110 =Forbidden
626 01111 =Forbidden
627 10000 =Forbidden
628 10001 =Forbidden
629 10010 =Forbidden
630 10011 =Forbidden
631 10100 =Forbidden
632 10101 =Forbidden
633 10110 =Forbidden
634 10111 =Forbidden
635 11000 =Forbidden
636 11001 =Forbidden
637 11010 =Forbidden
638 11011 =Forbidden
639 11100 =Forbidden
640 11101 =Forbidden
641 11110 =Forbidden
642 11111 =Forbidden
643
644
645 -- cop1x (See Table A.20)
646 function(5:0)
647 000000 =Forbidden # lwxc1
648 000001 =Forbidden # ldxc1
649 000010 =Forbidden
650 000011 =Forbidden
651 000100 =Forbidden
652 000101 =Forbidden # luxc1
653 000110 =Forbidden
654 000111 =Forbidden
655 001000 =Forbidden # swxc1
656 001001 =Forbidden # sdxc1
657 001010 =Forbidden
658 001011 =Forbidden
659 001100 =Forbidden
660 001101 =Forbidden # suxc1
661 001110 =Forbidden
662 001111 =Forbidden # prefx
663 010000 =Forbidden
664 010001 =Forbidden
665 010010 =Forbidden
666 010011 =Forbidden
667 010100 =Forbidden
668 010101 =Forbidden
669 010110 =Forbidden
670 010111 =Forbidden
671 011000 =Forbidden
672 011001 =Forbidden
673 011010 =Forbidden
674 011011 =Forbidden
675 011100 =Forbidden
676 011101 =Forbidden
677 011110 =Safe # alnv.ps
678 011111 =Forbidden
679 100000 =Safe # madd.s
680 100001 =Safe # madd.d
681 100010 =Forbidden
682 100011 =Forbidden
683 100100 =Forbidden
684 100101 =Forbidden
685 100110 =Safe # madd.ps
686 100111 =Forbidden
687 101000 =Safe # msub.s
688 101001 =Safe # msub.d
689 101010 =Forbidden
690 101011 =Forbidden
691 101100 =Forbidden
692 101101 =Forbidden
693 101110 =Safe # msub.ps
694 101111 =Forbidden
695 110000 =Safe # nmadd.s
696 110001 =Safe # nmadd.d
697 110010 =Forbidden
698 110011 =Forbidden
699 110100 =Forbidden
700 110101 =Forbidden
701 110110 =Safe # nmadd.ps
702 110111 =Forbidden
703 111000 =Safe # nmsub.s
704 111001 =Safe # nmsub.d
705 111010 =Forbidden
706 111011 =Forbidden
707 111100 =Forbidden
708 111101 =Forbidden
709 111110 =Safe # nmsub.ps
710 111111 =Forbidden
711
712
713 -- branch_1 (blez, bgtz, blezl, bgtzl)
714 pat0(20:16)
715 00000 =Branch
716 ~00000 =Forbidden
717
718
719 -- arithm2_1 (lui)
720 pat0(25:21)
721 00000 =Arithm2
722 ~00000 =Forbidden
723
724
725 -- arithm3_1 (sll, sra, wsbh, seb, seh)
726 pat0(25:21)
727 00000 =Arithm3
728 ~00000 =Forbidden
729
730
731 -- arithm3_2 (sllv, srav, movz, movn, mul, clz, clo)
732 pat0(10:6)
733 00000 =Arithm3
734 ~00000 =Forbidden
735
736
737 -- jr (jr)
738 rs(25:21) pat1(20:6)
739 00000 000000000000000 =NaClHalt # jr $zero
740 ~00000 000000000000000 =JmpReg # jr
741 xxxxx ~000000000000000 =Forbidden
742
743
744 -- jalr (jalr)
745 rt(20:16) hint(10:6)
746 00000 00000 =JalReg
747 ~00000 ~00000 =Forbidden
748
749
750 -- sync (sync)
751 pat0(25:6)
752 00000000000000000000 =Safe
753 ~00000000000000000000 =Forbidden
754
755
756 -- mfhi (mfhi, mflo)
757 pat0(25:16) pat1(10:6)
758 0000000000 00000 =Arithm3
759 ~0000000000 ~00000 =Forbidden
760
761
762 -- mthi (mthi, mtlo)
763 pat0(20:6)
764 000000000000000 =Safe
765 ~000000000000000 =Forbidden
766
767
768 -- mult (mult, multu, div, divu, madd, maddu, msub, msubu)
769 pat0(15:6)
770 0000000000 =Safe
771 ~0000000000 =Forbidden
772
773
774 -- arithm3_3 (add, addu, sub, subu, and, or, xor, nor, slt, sltu)
775 pat0(10:6)
776 00000 =Arithm3
777 ~00000 =Forbidden
778
779
780 -- mfmc0 (di, ei)
781 pat0(15:6) sc(5) pat2(4:0)
782 0110000000 0 00000 =Forbidden # di
783 0110000000 1 00000 =Forbidden # ei
784 ~0110000000 x 00000 =Forbidden
785 xxxxxxxxxx x ~00000 =Forbidden
786
787
788 -- mfc1 (mfc1, mfhc1)
789 pat0(10:0)
790 00000000000 =Arithm2
791 ~00000000000 =Forbidden
792
793
794 -- mtc1 (mtc1, mthc1)
795 pat0(10:0)
796 00000000000 =Safe
797 ~00000000000 =Forbidden
798
799
800 -- bc1 (bc1f, bc1t, bc1fl, bc1tl)
801 nd_tf(17:16)
802 00 =Branch # bc1f
803 01 =Branch # bc1t
804 10 =Branch # bc1fl
805 11 =Branch # bc1tl
806
807
808 -- 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, rsq rt.fmt, cvt.s.fmt, cvt.d.fmt, cvt.w.fmt, cvt.l.fmt, cvt.s.pl)
809 pat0(20:16)
810 00000 =Safe
811 ~00000 =Forbidden
812
813
814 -- bc2 (bc2f, bc2t, bc2fl, bc2tl)
815 nd_tf(17:16)
816 00 =Forbidden # bc2f
817 01 =Forbidden # bc2t
818 10 =Forbidden # bc2fl
819 11 =Forbidden # bc2tl
820
821
822 -- c_cond_fmt (c.cond.fmt)
823 pat0(7:6)
824 00 =Safe
825 ~00 =Forbidden
826
OLDNEW
« no previous file with comments | « src/trusted/validator_mips/mips-opt.table ('k') | src/trusted/validator_mips/model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698