Lines Matching refs:format
99 void Format(Instruction* instr, const char* format);
299 int Decoder::FormatRegister(Instruction* instr, const char* format) {
300 DCHECK(format[0] == 'r');
301 if (format[1] == 's') { // 'rs: Rs register.
305 } else if (format[1] == 't') { // 'rt: rt register.
309 } else if (format[1] == 'd') { // 'rd: rd register.
321 int Decoder::FormatFPURegister(Instruction* instr, const char* format) {
322 DCHECK(format[0] == 'f');
323 if (format[1] == 's') { // 'fs: fs register.
327 } else if (format[1] == 't') { // 'ft: ft register.
331 } else if (format[1] == 'd') { // 'fd: fd register.
335 } else if (format[1] == 'r') { // 'fr: fr register.
346 // the current instructions. The format string points to the first
350 int Decoder::FormatOption(Instruction* instr, const char* format) {
351 switch (format[0]) {
353 DCHECK(STRING_STARTS_WITH(format, "code"));
358 if (format[3] == '1') {
359 DCHECK(STRING_STARTS_WITH(format, "imm16"));
360 if (format[5] == 's') {
361 DCHECK(STRING_STARTS_WITH(format, "imm16s"));
363 } else if (format[5] == 'u') {
364 DCHECK(STRING_STARTS_WITH(format, "imm16u"));
367 DCHECK(STRING_STARTS_WITH(format, "imm16x"));
371 } else if (format[3] == '2' && format[4] == '1') {
372 DCHECK(STRING_STARTS_WITH(format, "imm21x"));
375 } else if (format[3] == '2' && format[4] == '6') {
376 DCHECK(STRING_STARTS_WITH(format, "imm26x"));
382 return FormatRegister(instr, format);
385 return FormatFPURegister(instr, format);
388 switch (format[1]) {
390 DCHECK(STRING_STARTS_WITH(format, "sa"));
395 DCHECK(STRING_STARTS_WITH(format, "sd"));
400 if (format[2] == '1') {
401 DCHECK(STRING_STARTS_WITH(format, "ss1")); /* ext size */
405 DCHECK(STRING_STARTS_WITH(format, "ss2")); /* ins size */
413 DCHECK(STRING_STARTS_WITH(format, "bc"));
418 DCHECK(STRING_STARTS_WITH(format, "Cc"));
428 // Format takes a formatting string for a whole instruction and prints it into
431 void Decoder::Format(Instruction* instr, const char* format) {
432 char cur = *format++;
435 format += FormatOption(instr, format);
439 cur = *format++;
448 Format(instr, "unknown");
460 Format(instr, "mfc1 'rt, 'fs");
463 Format(instr, "mfhc1 'rt, 'fs");
466 Format(instr, "mtc1 'rt, 'fs");
470 Format(instr, "ctc1 'rt, 'fs");
473 Format(instr, "cfc1 'rt, 'fs");
476 Format(instr, "mthc1 'rt, 'fs");
481 Format(instr, "add.d 'fd, 'fs, 'ft");
484 Format(instr, "sub.d 'fd, 'fs, 'ft");
487 Format(instr, "mul.d 'fd, 'fs, 'ft");
490 Format(instr, "div.d 'fd, 'fs, 'ft");
493 Format(instr, "abs.d 'fd, 'fs");
496 Format(instr, "mov.d 'fd, 'fs");
499 Format(instr, "neg.d 'fd, 'fs");
502 Format(instr, "sqrt.d 'fd, 'fs");
505 Format(instr, "cvt.w.d 'fd, 'fs");
508 Format(instr, "cvt.l.d 'fd, 'fs");
511 Format(instr, "trunc.w.d 'fd, 'fs");
514 Format(instr, "trunc.l.d 'fd, 'fs");
517 Format(instr, "round.w.d 'fd, 'fs");
520 Format(instr, "floor.w.d 'fd, 'fs");
523 Format(instr, "ceil.w.d 'fd, 'fs");
526 Format(instr, "cvt.s.d 'fd, 'fs");
529 Format(instr, "c.f.d 'fs, 'ft, 'Cc");
532 Format(instr, "c.un.d 'fs, 'ft, 'Cc");
535 Format(instr, "c.eq.d 'fs, 'ft, 'Cc");
538 Format(instr, "c.ueq.d 'fs, 'ft, 'Cc");
541 Format(instr, "c.olt.d 'fs, 'ft, 'Cc");
544 Format
547 Format(instr, "c.ole.d 'fs, 'ft, 'Cc");
550 Format(instr, "c.ule.d 'fs, 'ft, 'Cc");
553 Format(instr, "unknown.cop1.d");
563 Format(instr, "cvt.s.w 'fd, 'fs");
566 Format(instr, "cvt.d.w 'fd, 'fs");
575 Format(instr, "cvt.d.l 'fd, 'fs");
578 Format(instr, "cvt.s.l 'fd, 'fs");
581 Format(instr, "cmp.un.d 'fd, 'fs, 'ft");
584 Format(instr, "cmp.eq.d 'fd, 'fs, 'ft");
587 Format(instr, "cmp.ueq.d 'fd, 'fs, 'ft");
590 Format(instr, "cmp.lt.d 'fd, 'fs, 'ft");
593 Format(instr, "cmp.ult.d 'fd, 'fs, 'ft");
596 Format(instr, "cmp.le.d 'fd, 'fs, 'ft");
599 Format(instr, "cmp.ule.d 'fd, 'fs, 'ft");
602 Format(instr, "cmp.or.d 'fd, 'fs, 'ft");
605 Format(instr, "cmp.une.d 'fd, 'fs, 'ft");
608 Format(instr, "cmp.ne.d 'fd, 'fs, 'ft");
624 Format(instr, "madd.d 'fd, 'fr, 'fs, 'ft");
633 Format(instr, "jr 'rs");
636 Format(instr, "jalr 'rs");
640 Format(instr, "nop");
642 Format(instr, "sll 'rd, 'rt, 'sa");
646 Format(instr, "srl 'rd, 'rt, 'sa");
649 Format(instr, "rotr 'rd, 'rt, 'sa");
656 Format(instr, "sra 'rd, 'rt, 'sa");
659 Format(instr, "sllv 'rd, 'rt, 'rs");
663 Format(instr, "srlv 'rd, 'rt, 'rs");
666 Format(instr, "rotrv 'rd, 'rt, 'rs");
673 Format(instr, "srav 'rd, 'rt, 'rs");
677 Format(instr, "mfhi 'rd");
681 Format(instr, "clz 'rd, 'rs");
684 Format(instr, "clo 'rd, 'rs");
689 Format(instr, "mflo 'rd");
693 Format(instr, "mult 'rs, 'rt");
696 Format(instr, "mul 'rd, 'rs, 'rt");
698 Format(instr, "muh 'rd, 'rs, 'rt");
704 Format(instr, "multu 'rs, 'rt");
707 Format(instr, "mulu 'rd, 'rs, 'rt");
709 Format(instr, "muhu 'rd, 'rs, 'rt");
715 Format(instr, "div 'rs, 'rt");
718 Format(instr, "div 'rd, 'rs, 'rt");
720 Format(instr, "mod 'rd, 'rs, 'rt");
726 Format(instr, "divu 'rs, 'rt");
729 Format(instr, "divu 'rd, 'rs, 'rt");
731 Format(instr, "modu 'rd, 'rs, 'rt");
736 Format(instr, "add 'rd, 'rs, 'rt");
739 Format(instr, "addu 'rd, 'rs, 'rt");
742 Format(instr, "sub 'rd, 'rs, 'rt");
745 Format(instr, "subu 'rd, 'rs, 'rt");
748 Format(instr, "and 'rd, 'rs, 'rt");
752 Format(instr, "mov 'rd, 'rt");
754 Format(instr, "mov 'rd, 'rs");
756 Format(instr, "or 'rd, 'rs, 'rt");
760 Format(instr, "xor 'rd, 'rs, 'rt");
763 Format(instr, "nor 'rd, 'rs, 'rt");
766 Format(instr, "slt 'rd, 'rs, 'rt");
769 Format(instr, "sltu 'rd, 'rs, 'rt");
772 Format(instr, "break, code: 'code");
775 Format(instr, "tge 'rs, 'rt, code: 'code");
778 Format(instr, "tgeu 'rs, 'rt, code: 'code");
781 Format(instr, "tlt 'rs, 'rt, code: 'code");
784 Format(instr, "tltu 'rs, 'rt, code: 'code");
787 Format(instr, "teq 'rs, 'rt, code: 'code");
790 Format(instr, "tne 'rs, 'rt, code: 'code");
793 Format(instr, "movz 'rd, 'rs, 'rt");
796 Format(instr, "movn 'rd, 'rs, 'rt");
800 Format(instr, "movt 'rd, 'rs, 'bc");
802 Format(instr, "movf 'rd, 'rs, 'bc");
806 Format(instr, "seleqz 'rd, 'rs, 'rt");
809 Format(instr, "selnez 'rd, 'rs, 'rt");
818 Format(instr, "mul 'rd, 'rs, 'rt");
822 Format(instr, "clz 'rd, 'rs");
833 Format(instr, "ins 'rt, 'rs, 'sa, 'ss2");
841 Format(instr, "ext 'rt, 'rs, 'sa, 'ss1");
863 Format(instr, "bc1t 'bc, 'imm16u");
865 Format(instr, "bc1f 'bc, 'imm16u");
869 Format(instr, "bc1eqz 'ft, 'imm16u");
872 Format(instr, "bc1nez 'ft, 'imm16u");
877 Format(instr, "cmp.af.S 'ft, 'fs, 'fd");
880 Format(instr, "cmp.un.S 'ft, 'fs, 'fd");
883 Format(instr, "cmp.eq.S 'ft, 'fs, 'fd");
886 Format(instr, "cmp.ueq.S 'ft, 'fs, 'fd");
889 Format(instr, "cmp.lt.S 'ft, 'fs, 'fd");
892 Format(instr, "cmp.ult.S 'ft, 'fs, 'fd");
895 Format(instr, "cmp.le.S 'ft, 'fs, 'fd");
898 Format(instr, "cmp.ule.S 'ft, 'fs, 'fd");
901 Format(instr, "cmp.or.S 'ft, 'fs, 'fd");
904 Format(instr, "cmp.une.S 'ft, 'fs, 'fd");
907 Format(instr, "cmp.ne.S 'ft, 'fs, 'fd");
916 Format(instr, "cmp.af.D 'ft, 'fs, 'fd");
919 Format(instr, "cmp.un.D 'ft, 'fs, 'fd");
922 Format(instr, "cmp.eq.D 'ft, 'fs, 'fd");
925 Format(instr, "cmp.ueq.D 'ft, 'fs, 'fd");
928 Format(instr, "cmp.lt.D 'ft, 'fs, 'fd");
931 Format(instr, "cmp.ult.D 'ft, 'fs, 'fd");
934 Format(instr, "cmp.le.D 'ft, 'fs, 'fd");
937 Format(instr, "cmp.ule.D 'ft, 'fs, 'fd");
940 Format(instr, "cmp.or.D 'ft, 'fs, 'fd");
943 Format(instr, "cmp.une.D 'ft, 'fs, 'fd");
946 Format(instr, "cmp.ne.D 'ft, 'fs, 'fd");
955 Format(instr, "sel.S 'ft, 'fs, 'fd");
958 Format(instr, "seleqz.S 'ft, 'fs, 'fd");
961 Format(instr, "selnez.S 'ft, 'fs, 'fd");
964 Format(instr, "min.S 'ft, 'fs, 'fd");
967 Format(instr, "mina.S 'ft, 'fs, 'fd");
970 Format(instr, "max.S 'ft, 'fs, 'fd");
973 Format(instr, "maxa.S 'ft, 'fs, 'fd");
982 Format(instr, "sel.D 'ft, 'fs, 'fd");
985 Format(instr, "seleqz.D 'ft, 'fs, 'fd");
988 Format(instr, "selnez.D 'ft, 'fs, 'fd");
991 Format(instr, "min.D 'ft, 'fs, 'fd");
994 Format(instr, "mina.D 'ft, 'fs, 'fd");
997 Format(instr, "max.D 'ft, 'fs, 'fd");
1000 Format(instr, "maxa.D 'ft, 'fs, 'fd");
1015 Format(instr, "bltz 'rs, 'imm16u");
1018 Format(instr, "bltzal 'rs, 'imm16u");
1021 Format(instr, "bgez 'rs, 'imm16u");
1024 Format(instr, "bgezal 'rs, 'imm16u");
1027 Format(instr, "bgezall 'rs, 'imm16u");
1035 Format(instr, "beq 'rs, 'rt, 'imm16u");
1038 Format(instr, "bne 'rs, 'rt, 'imm16u");
1043 Format(instr, "blez 'rs, 'imm16u");
1046 Format(instr, "bgeuc 'rs, 'rt, 'imm16u");
1049 Format(instr, "bgezalc 'rs, 'imm16u");
1052 Format(instr, "blezalc 'rs, 'imm16u");
1060 Format(instr, "bgtz 'rs, 'imm16u");
1063 Format(instr, "bltuc 'rs, 'rt, 'imm16u");
1066 Format(instr, "bltzalc 'rt, 'imm16u");
1069 Format(instr, "bgtzalc 'rt, 'imm16u");
1077 Format(instr, "bgezc 'rt, 'imm16u");
1080 Format(instr, "bgec 'rs, 'rt, 'imm16u");
1083 Format(instr, "blezc 'rt, 'imm16u");
1091 Format(instr, "bltzc 'rt, 'imm16u");
1094 Format(instr, "bltc 'rs, 'rt, 'imm16u");
1097 Format(instr, "bgtzc 'rt, 'imm16u");
1104 Format(instr, "beqzc 'rs, 'imm21x");
1109 Format(instr, "bnezc 'rs, 'imm21x");
1115 Format(instr, "addi 'rt, 'rs, 'imm16s");
1119 Format(instr, "bovc 'rs, 'rt, 'imm16s");
1121 Format(instr, "beqc 'rs, 'rt, 'imm16s");
1131 Format(instr, "bnvc 'rs, 'rt, 'imm16s");
1133 Format(instr, "bnec 'rs, 'rt, 'imm16s");
1140 Format(instr, "addiu 'rt, 'rs, 'imm16s");
1143 Format(instr, "slti 'rt, 'rs, 'imm16s");
1146 Format(instr, "sltiu 'rt, 'rs, 'imm16u");
1149 Format(instr, "andi 'rt, 'rs, 'imm16x");
1152 Format(instr, "ori 'rt, 'rs, 'imm16x");
1155 Format(instr, "xori 'rt, 'rs, 'imm16x");
1159 Format(instr, "lui 'rt, 'imm16x");
1162 Format(instr, "aui 'rt, 'imm16x");
1164 Format(instr, "lui 'rt, 'imm16x");
1170 Format(instr, "lb 'rt, 'imm16s('rs)");
1173 Format(instr, "lh 'rt, 'imm16s('rs)");
1176 Format(instr, "lwl 'rt, 'imm16s('rs)");
1179 Format(instr, "lw 'rt, 'imm16s('rs)");
1182 Format(instr, "lbu 'rt, 'imm16s('rs)");
1185 Format(instr, "lhu 'rt, 'imm16s('rs)");
1188 Format(instr, "lwr 'rt, 'imm16s('rs)");
1191 Format(instr, "pref 'rt, 'imm16s('rs)");
1194 Format(instr, "sb 'rt, 'imm16s('rs)");
1197 Format(instr, "sh 'rt, 'imm16s('rs)");
1200 Format(instr, "swl 'rt, 'imm16s('rs)");
1203 Format(instr, "sw 'rt, 'imm16s('rs)");
1206 Format(instr, "swr 'rt, 'imm16s('rs)");
1209 Format(instr, "lwc1 'ft, 'imm16s('rs)");
1212 Format(instr, "ldc1 'ft, 'imm16s('rs)");
1215 Format(instr, "swc1 'ft, 'imm16s('rs)");
1218 Format(instr, "sdc1 'ft, 'imm16s('rs)");
1231 Format(instr, "j 'imm26x");
1234 Format(instr, "jal 'imm26x");
1263 Format(instr, "UNSUPPORTED");