Home | History | Annotate | Download | only in mips

Lines Matching refs:format

124   void Format(Instruction* instr, const char* format);
317 int Decoder::FormatRegister(Instruction* instr, const char* format) {
318 ASSERT(format[0] == 'r');
319 if (format[1] == 's') { // 'rs: Rs register.
323 } else if (format[1] == 't') { // 'rt: rt register.
327 } else if (format[1] == 'd') { // 'rd: rd register.
339 int Decoder::FormatFPURegister(Instruction* instr, const char* format) {
340 ASSERT(format[0] == 'f');
341 if (format[1] == 's') { // 'fs: fs register.
345 } else if (format[1] == 't') { // 'ft: ft register.
349 } else if (format[1] == 'd') { // 'fd: fd register.
353 } else if (format[1] == 'r') { // 'fr: fr register.
364 // the current instructions. The format string points to the first
368 int Decoder::FormatOption(Instruction* instr, const char* format) {
369 switch (format[0]) {
371 ASSERT(STRING_STARTS_WITH(format, "code"));
376 if (format[3] == '1') {
377 ASSERT(STRING_STARTS_WITH(format, "imm16"));
378 if (format[5] == 's') {
379 ASSERT(STRING_STARTS_WITH(format, "imm16s"));
381 } else if (format[5] == 'u') {
382 ASSERT(STRING_STARTS_WITH(format, "imm16u"));
385 ASSERT(STRING_STARTS_WITH(format, "imm16x"));
390 ASSERT(STRING_STARTS_WITH(format, "imm26x"));
396 return FormatRegister(instr, format);
399 return FormatFPURegister(instr, format);
402 switch (format[1]) {
404 ASSERT(STRING_STARTS_WITH(format, "sa"));
409 ASSERT(STRING_STARTS_WITH(format, "sd"));
414 if (format[2] == '1') {
415 ASSERT(STRING_STARTS_WITH(format, "ss1")); /* ext size */
419 ASSERT(STRING_STARTS_WITH(format, "ss2")); /* ins size */
427 ASSERT(STRING_STARTS_WITH(format, "bc"));
432 ASSERT(STRING_STARTS_WITH(format, "Cc"));
442 // Format takes a formatting string for a whole instruction and prints it into
445 void Decoder::Format(Instruction* instr, const char* format) {
446 char cur = *format++;
449 format += FormatOption(instr, format);
453 cur = *format++;
462 Format(instr, "unknown");
474 Format(instr, "mfc1 'rt, 'fs");
477 Format(instr, "mfhc1 'rt, 'fs");
480 Format(instr, "mtc1 'rt, 'fs");
484 Format(instr, "ctc1 'rt, 'fs");
487 Format(instr, "cfc1 'rt, 'fs");
490 Format(instr, "mthc1 'rt, 'fs");
495 Format(instr, "add.d 'fd, 'fs, 'ft");
498 Format(instr, "sub.d 'fd, 'fs, 'ft");
501 Format(instr, "mul.d 'fd, 'fs, 'ft");
504 Format(instr, "div.d 'fd, 'fs, 'ft");
507 Format(instr, "abs.d 'fd, 'fs");
510 Format(instr, "mov.d 'fd, 'fs");
513 Format(instr, "neg.d 'fd, 'fs");
516 Format(instr, "sqrt.d 'fd, 'fs");
519 Format(instr, "cvt.w.d 'fd, 'fs");
523 Format(instr, "cvt.l.d 'fd, 'fs");
530 Format(instr, "trunc.w.d 'fd, 'fs");
534 Format(instr, "trunc.l.d 'fd, 'fs");
541 Format(instr, "round.w.d 'fd, 'fs");
544 Format(instr, "floor.w.d 'fd, 'fs");
547 Format(instr, "ceil.w.d 'fd, 'fs");
550 Format(instr, "cvt.s.d 'fd, 'fs");
553 Format(instr, "c.f.d 'fs, 'ft, 'Cc");
556 Format(instr, "c.un.d 'fs, 'ft, 'Cc");
559 Format(instr, "c.eq.d 'fs, 'ft, 'Cc");
562 Format(instr, "c.ueq.d 'fs, 'ft, 'Cc");
565 Format(instr, "c.olt.d 'fs, 'ft, 'Cc");
568 Format(instr, "c.ult.d 'fs, 'ft, 'Cc");
571 Format(instr, "c.ole.d 'fs, 'ft, 'Cc");
574 Format(instr, "c.ule.d 'fs, 'ft, 'Cc");
577 Format(instr, "unknown.cop1.d");
587 Format(instr, "cvt.s.w 'fd, 'fs");
590 Format(instr, "cvt.d.w 'fd, 'fs");
600 Format(instr, "cvt.d.l 'fd, 'fs");
608 Format(instr, "cvt.s.l 'fd, 'fs");
628 Format(instr, "madd.d 'fd, 'fr, 'fs, 'ft");
637 Format(instr, "jr 'rs");
640 Format(instr, "jalr 'rs");
644 Format(instr, "nop");
646 Format(instr, "sll 'rd, 'rt, 'sa");
650 Format(instr, "srl 'rd, 'rt, 'sa");
653 Format(instr, "rotr 'rd, 'rt, 'sa");
660 Format(instr, "sra 'rd, 'rt, 'sa");
663 Format(instr, "sllv 'rd, 'rt, 'rs");
667 Format(instr, "srlv 'rd, 'rt, 'rs");
670 Format(instr, "rotrv 'rd, 'rt, 'rs");
677 Format(instr, "srav 'rd, 'rt, 'rs");
680 Format(instr, "mfhi 'rd");
683 Format(instr, "mflo 'rd");
686 Format(instr, "mult 'rs, 'rt");
689 Format(instr, "multu 'rs, 'rt");
692 Format(instr, "div 'rs, 'rt");
695 Format(instr, "divu 'rs, 'rt");
698 Format(instr, "add 'rd, 'rs, 'rt");
701 Format(instr, "addu 'rd, 'rs, 'rt");
704 Format(instr, "sub 'rd, 'rs, 'rt");
707 Format(instr, "subu 'rd, 'rs, 'rt");
710 Format(instr, "and 'rd, 'rs, 'rt");
714 Format(instr, "mov 'rd, 'rt");
716 Format(instr, "mov 'rd, 'rs");
718 Format(instr, "or 'rd, 'rs, 'rt");
722 Format(instr, "xor 'rd, 'rs, 'rt");
725 Format(instr, "nor 'rd, 'rs, 'rt");
728 Format(instr, "slt 'rd, 'rs, 'rt");
731 Format(instr, "sltu 'rd, 'rs, 'rt");
734 Format(instr, "break, code: 'code");
737 Format(instr, "tge 'rs, 'rt, code: 'code");
740 Format(instr, "tgeu 'rs, 'rt, code: 'code");
743 Format(instr, "tlt 'rs, 'rt, code: 'code");
746 Format(instr, "tltu 'rs, 'rt, code: 'code");
749 Format(instr, "teq 'rs, 'rt, code: 'code");
752 Format(instr, "tne 'rs, 'rt, code: 'code");
755 Format(instr, "movz 'rd, 'rs, 'rt");
758 Format(instr, "movn 'rd, 'rs, 'rt");
762 Format(instr, "movt 'rd, 'rs, 'bc");
764 Format(instr, "movf 'rd, 'rs, 'bc");
774 Format(instr, "mul 'rd, 'rs, 'rt");
777 Format(instr, "clz 'rd, 'rs");
787 Format(instr, "ins 'rt, 'rs, 'sa, 'ss2");
795 Format(instr, "ext 'rt, 'rs, 'sa, 'ss1");
818 Format(instr, "bc1t 'bc, 'imm16u");
820 Format(instr, "bc1f 'bc, 'imm16u");
830 Format(instr, "bltz 'rs, 'imm16u");
833 Format(instr, "bltzal 'rs, 'imm16u");
836 Format(instr, "bgez 'rs, 'imm16u");
839 Format(instr, "bgezal 'rs, 'imm16u");
847 Format(instr, "beq 'rs, 'rt, 'imm16u");
850 Format(instr, "bne 'rs, 'rt, 'imm16u");
853 Format(instr, "blez 'rs, 'imm16u");
856 Format(instr, "bgtz 'rs, 'imm16u");
860 Format(instr, "addi 'rt, 'rs, 'imm16s");
863 Format(instr, "addiu 'rt, 'rs, 'imm16s");
866 Format(instr, "slti 'rt, 'rs, 'imm16s");
869 Format(instr, "sltiu 'rt, 'rs, 'imm16u");
872 Format(instr, "andi 'rt, 'rs, 'imm16x");
875 Format(instr, "ori 'rt, 'rs, 'imm16x");
878 Format(instr, "xori 'rt, 'rs, 'imm16x");
881 Format(instr, "lui 'rt, 'imm16x");
885 Format(instr, "lb 'rt, 'imm16s('rs)");
888 Format(instr, "lh 'rt, 'imm16s('rs)");
891 Format(instr, "lwl 'rt, 'imm16s('rs)");
894 Format(instr, "lw 'rt, 'imm16s('rs)");
897 Format(instr, "lbu 'rt, 'imm16s('rs)");
900 Format(instr, "lhu 'rt, 'imm16s('rs)");
903 Format(instr, "lwr 'rt, 'imm16s('rs)");
906 Format(instr, "sb 'rt, 'imm16s('rs)");
909 Format(instr, "sh 'rt, 'imm16s('rs)");
912 Format(instr, "swl 'rt, 'imm16s('rs)");
915 Format(instr, "sw 'rt, 'imm16s('rs)");
918 Format(instr, "swr 'rt, 'imm16s('rs)");
921 Format(instr, "lwc1 'ft, 'imm16s('rs)");
924 Format(instr, "ldc1 'ft, 'imm16s('rs)");
927 Format(instr, "swc1 'ft, 'imm16s('rs)");
930 Format(instr, "sdc1 'ft, 'imm16s('rs)");
942 Format(instr, "j 'imm26x");
945 Format(instr, "jal 'imm26x");
974 Format(instr, "UNSUPPORTED");