Lines Matching refs:Format
77 void Format(Instruction* instr, const char* format);
142 int Decoder::FormatRegister(Instruction* instr, const char* format) {
143 DCHECK(format[0] == 'r');
145 if (format[1] == '1') { // 'r1: register resides in bit 8-11
150 } else if (format[1] == '2') { // 'r2: register resides in bit 12-15
155 if (format[2] == 'd') {
163 } else if (format[1] == '3') { // 'r3: register resides in bit 16-19
168 } else if (format[1] == '4') { // 'r4: register resides in bit 20-23
173 } else if (format[1] == '5') { // 'r5: register resides in bit 24-28
178 } else if (format[1] == '6') { // 'r6: register resides in bit 29-32
183 } else if (format[1] == '7') { // 'r6: register resides in bit 32-35
194 int Decoder::FormatFloatingRegister(Instruction* instr, const char* format) {
195 DCHECK(format[0] == 'f');
198 if (format[1] == '1') { // 'r1: register resides in bit 8-11
203 } else if (format[1] == '2') { // 'f2: register resides in bit 12-15
208 } else if (format[1] == '3') { // 'f3: register resides in bit 16-19
213 } else if (format[1] == '5') { // 'f5: register resides in bit 24-28
218 } else if (format[1] == '6') { // 'f6: register resides in bit 29-32
229 // the current instructions. The format string points to the first
233 int Decoder::FormatOption(Instruction* instr, const char* format) {
234 switch (format[0]) {
250 return FormatRegister(instr, format);
253 return FormatFloatingRegister(instr, format);
256 return FormatImmediate(instr, format);
279 DCHECK(STRING_STARTS_WITH(format, "target"));
280 if ((format[6] == '2') && (format[7] == '6')) {
286 } else if ((format[6] == '1') && (format[7] == '6')) {
294 return FormatMask(instr, format);
298 return FormatDisplacement(instr, format);
310 int Decoder::FormatMask(Instruction* instr, const char* format) {
311 DCHECK(format[0] == 'm');
313 if ((format[1] == '1')) { // prints the mask format in bits 8-12
317 } else if (format[1] == '2') { // mask format in bits 16-19
321 } else if (format[1] == '3') { // mask format in bits 20-23
331 int Decoder::FormatDisplacement(Instruction* instr, const char* format) {
332 DCHECK(format[0] == 'd');
334 if (format[1] == '1') { // displacement in 20-31
340 } else if (format[1] == '2') { // displacement in 20-39
345 } else if (format[1] == '4') { // SS displacement 2 36-47
350 } else if (format[1] == '3') { // SS displacement 1 20 - 32
362 int Decoder::FormatImmediate(Instruction* instr, const char* format) {
363 DCHECK(format[0] == 'i');
365 if (format[1] == '1') { // immediate in 16-31
370 } else if (format[1] == '2') { // immediate in 16-48
375 } else if (format[1] == '3') { // immediate in I format
380 } else if (format[1] == '4') { // immediate in 16-31, but outputs as offset
392 } else if (format[1] == '5') { // immediate in 16-31, but outputs as offset
404 } else if (format[1] == '6') { // unsigned immediate in 16-31
409 } else if (format[1] == '7') { // unsigned immediate in 16-47
414 } else if (format[1] == '8') { // unsigned immediate in 8-15
419 } else if (format[1] == '9') { // unsigned immediate in 16-23
424 } else if (format[1] == 'a') { // unsigned immediate in 24-31
429 } else if (format[1] == 'b') { // unsigned immediate in 32-39
434 } else if (format[1] == 'c') { // signed immediate in 8-15
439 } else if (format[1] == 'd') { // signed immediate in 32-47
444 } else if (format[1] == 'e') { // immediate in 16-47, but outputs as offset
462 // Format takes a formatting string for a whole instruction and prints it into
465 void Decoder::Format(Instruction* instr, const char* format) {
466 char cur = *format++;
469 format += FormatOption(instr, format);
473 cur = *format++;
488 void Decoder::Unknown(Instruction* instr) { Format(instr, "unknown"); }
495 snprintf(buffer, sizeof(buffer), "%s (unknown-format)", name);
496 Format(instr, buffer);
509 Format(instr, "ar\t'r1,'r2");
512 Format(instr, "sr\t'r1,'r2");
515 Format(instr, "mr\t'r1,'r2");
518 Format(instr, "dr\t'r1,'r2");
521 Format(instr, "or\t'r1,'r2");
524 Format(instr, "nr\t'r1,'r2");
527 Format(instr, "xr\t'r1,'r2");
530 Format(instr, "lr\t'r1,'r2");
533 Format(instr, "cr\t'r1,'r2");
536 Format(instr, "clr\t'r1,'r2");
539 Format(instr, "bcr\t'm1,'r2");
542 Format(instr, "ltr\t'r1,'r2");
545 Format(instr, "alr\t'r1,'r2");
548 Format(instr, "slr\t'r1,'r2");
551 Format(instr, "lnr\t'r1,'r2");
554 Format(instr, "lcr\t'r1,'r2");
557 Format(instr, "basr\t'r1,'r2");
560 Format(instr, "ldr\t'f1,'f2");
563 Format(instr, "bkpt");
581 Format(instr, "ahi\t'r1,'i1");
584 Format(instr, "aghi\t'r1,'i1");
587 Format(instr, "lhi\t'r1,'i1");
590 Format(instr, "lghi\t'r1,'i1");
593 Format(instr, "mhi\t'r1,'i1");
596 Format(instr, "mghi\t'r1,'i1");
599 Format(instr, "chi\t'r1,'i1");
602 Format(instr, "cghi\t'r1,'i1");
605 Format(instr, "bras\t'r1,'i1");
608 Format(instr, "brc\t'm1,'i4");
611 Format(instr, "brct\t'r1,'i4");
614 Format(instr, "brctg\t'r1,'i4");
617 Format(instr, "iihh\t'r1,'i1");
620 Format(instr, "iihl\t'r1,'i1");
623 Format(instr, "iilh\t'r1,'i1");
626 Format(instr, "iill\t'r1,'i1");
629 Format(instr, "oill\t'r1,'i1");
632 Format(instr, "tmll\t'r1,'i1");
635 Format(instr, "stm\t'r1,'r2,'d1('r3)");
638 Format(instr, "lm\t'r1,'r2,'d1('r3)");
641 Format(instr, "sll\t'r1,'d1('r3)");
644 Format(instr, "srl\t'r1,'d1('r3)");
647 Format(instr, "sla\t'r1,'d1('r3)");
650 Format(instr, "sra\t'r1,'d1('r3)");
653 Format(instr, "sldl\t'r1,'d1('r3)");
656 Format(instr, "agr\t'r5,'r6");
659 Format(instr, "agfr\t'r5,'r6");
662 Format(instr, "ark\t'r5,'r6,'r3");
665 Format(instr, "agrk\t'r5,'r6,'r3");
668 Format(instr, "sgr\t'r5,'r6");
671 Format(instr, "sgfr\t'r5,'r6");
674 Format(instr, "srk\t'r5,'r6,'r3");
677 Format(instr, "sgrk\t'r5,'r6,'r3");
680 Format(instr, "ngr\t'r5,'r6");
683 Format(instr, "nrk\t'r5,'r6,'r3");
686 Format(instr, "ngrk\t'r5,'r6,'r3");
689 Format(instr, "nill\t'r1,'i1");
692 Format(instr, "nilh\t'r1,'i1");
695 Format(instr, "ogr\t'r5,'r6");
698 Format(instr, "ork\t'r5,'r6,'r3");
701 Format(instr, "ogrk\t'r5,'r6,'r3");
704 Format(instr, "xgr\t'r5,'r6");
707 Format(instr, "xrk\t'r5,'r6,'r3");
710 Format(instr, "xgrk\t'r5,'r6,'r3");
713 Format(instr, "cgr\t'r5,'r6");
716 Format(instr, "clgr\t'r5,'r6");
719 Format(instr, "llgfr\t'r5,'r6");
722 Format(instr, "lbr\t'r5,'r6");
725 Format(instr, "ledbr\t'f5,'f6");
728 Format(instr, "ldebr\t'f5,'f6");
731 Format(instr, "ltgr\t'r5,'r6");
734 Format(instr, "ltdbr\t'f5,'f6");
737 Format(instr, "ltebr\t'f5,'f6");
740 Format(instr, "lrvr\t'r5,'r6");
743 Format(instr, "lrvgr\t'r5,'r6");
746 Format(instr, "lgr\t'r5,'r6");
749 Format(instr, "lgdr\t'r5,'f6");
752 Format(instr, "lgfr\t'r5,'r6");
755 Format(instr, "ltgfr\t'r5,'r6");
758 Format(instr, "lcgr\t'r5,'r6");
761 Format(instr, "msr\t'r5,'r6");
764 Format(instr, "lgbr\t'r5,'r6");
767 Format(instr, "lghr\t'r5,'r6");
770 Format(instr, "msgr\t'r5,'r6");
773 Format(instr, "dsgr\t'r5,'r6");
776 Format(instr, "lzdr\t'f5");
779 Format(instr, "mlr\t'r5,'r6");
782 Format(instr, "mlgr\t'r5,'r6");
785 Format(instr, "alcr\t'r5,'r6");
788 Format(instr, "algr\t'r5,'r6");
791 Format(instr, "alrk\t'r5,'r6,'r3");
794 Format(instr, "algrk\t'r5,'r6,'r3");
797 Format(instr, "slgr\t'r5,'r6");
800 Format(instr, "slbr\t'r5,'r6");
803 Format(instr, "dlr\t'r5,'r6");
806 Format(instr, "dlgr\t'r5,'r6");
809 Format(instr, "slrk\t'r5,'r6,'r3");
812 Format(instr, "slgrk\t'r5,'r6,'r3");
815 Format(instr, "lhr\t'r5,'r6");
818 Format(instr, "llhr\t'r5,'r6");
821 Format(instr, "llghr\t'r5,'r6");
824 Format(instr, "locr\t'm1,'r5,'r6");
827 Format(instr, "locgr\t'm1,'r5,'r6");
830 Format(instr, "lngr\t'r5,'r6");
833 Format(instr, "a\t'r1,'d1('r2d,'r3)");
836 Format(instr, "s\t'r1,'d1('r2d,'r3)");
839 Format(instr, "m\t'r1,'d1('r2d,'r3)");
842 Format(instr, "d\t'r1,'d1('r2d,'r3)");
845 Format(instr, "o\t'r1,'d1('r2d,'r3)");
848 Format(instr, "n\t'r1,'d1('r2d,'r3)");
851 Format(instr, "l\t'r1,'d1('r2d,'r3)");
854 Format(instr, "c\t'r1,'d1('r2d,'r3)");
857 Format(instr, "ah\t'r1,'d1('r2d,'r3)");
860 Format(instr, "sh\t'r1,'d1('r2d,'r3)");
863 Format(instr, "mh\t'r1,'d1('r2d,'r3)");
866 Format(instr, "al\t'r1,'d1('r2d,'r3)");
869 Format(instr, "sl\t'r1,'d1('r2d,'r3)");
872 Format(instr, "la\t'r1,'d1('r2d,'r3)");
875 Format(instr, "ch\t'r1,'d1('r2d,'r3)");
878 Format(instr, "cl\t'r1,'d1('r2d,'r3)");
881 Format(instr, "cli\t'd1('r3),'i8");
884 Format(instr, "tm\t'd1('r3),'i8");
887 Format(instr, "bc\t'm1,'d1('r2d,'r3)");
890 Format(instr, "bct\t'r1,'d1('r2d,'r3)");
893 Format(instr, "st\t'r1,'d1('r2d,'r3)");
896 Format(instr, "stc\t'r1,'d1('r2d,'r3)");
899 Format(instr, "ic\t'r1,'d1('r2d,'r3)");
902 Format(instr, "ld\t'f1,'d1('r2d,'r3)");
905 Format(instr, "le\t'f1,'d1('r2d,'r3)");
908 Format(instr, "ldgr\t'f5,'r6");
911 Format(instr, "ms\t'r1,'d1('r2d,'r3)");
914 Format(instr, "ste\t'f1,'d1('r2d,'r3)");
917 Format(instr, "std\t'f1,'d1('r2d,'r3)");
920 Format(instr, "cfdbr\t'r5,'m2,'f6");
923 Format(instr, "cdfbr\t'f5,'m2,'r6");
926 Format(instr, "cfebr\t'r5,'m2,'f6");
929 Format(instr, "cefbr\t'f5,'m2,'r6");
932 Format(instr, "celfbr\t'f5,'m2,'r6");
935 Format(instr, "cgebr\t'r5,'m2,'f6");
938 Format(instr, "cgdbr\t'r5,'m2,'f6");
941 Format(instr, "cegbr\t'f5,'m2,'r6");
944 Format(instr, "cdgbr\t'f5,'m2,'r6");
947 Format(instr, "cdlfbr\t'f5,'m2,'r6");
950 Format(instr, "cdlgbr\t'f5,'m2,'r6");
953 Format(instr, "celgbr\t'f5,'m2,'r6");
956 Format(instr, "clfdbr\t'r5,'m2,'f6");
959 Format(instr, "clfebr\t'r5,'m2,'f6");
962 Format(instr, "clgebr\t'r5,'m2,'f6");
965 Format(instr, "clgdbr\t'r5,'m2,'f6");
968 Format(instr, "aebr\t'f5,'f6");
971 Format(instr, "sebr\t'f5,'f6");
974 Format(instr, "meebr\t'f5,'f6");
977 Format(instr, "debr\t'f5,'f6");
980 Format(instr, "adbr\t'f5,'f6");
983 Format(instr, "sdbr\t'f5,'f6");
986 Format(instr, "mdbr\t'f5,'f6");
989 Format(instr, "ddbr\t'f5,'f6");
992 Format(instr, "cdbr\t'f5,'f6");
995 Format(instr, "cebr\t'f5,'f6");
998 Format(instr, "sqdbr\t'f5,'f6");
1001 Format(instr, "sqebr\t'f5,'f6");
1004 Format(instr, "lcdbr\t'f5,'f6");
1007 Format(instr, "lcebr\t'f5,'f6");
1010 Format(instr, "sth\t'r1,'d1('r2d,'r3)");
1013 Format(instr, "srda\t'r1,'d1('r3)");
1016 Format(instr, "srdl\t'r1,'d1('r3)");
1019 Format(instr, "madbr\t'f3,'f5,'f6");
1022 Format(instr, "msdbr\t'f3,'f5,'f6");
1025 Format(instr, "flogr\t'r5,'r6");
1028 Format(instr, "fiebra\t'f5,'m2,'f6,'m3");
1031 Format(instr, "fidbra\t'f5,'m2,'f6,'m3");
1036 Format(instr, "trap4");
1056 Format(instr, "llilf\t'r1,'i7");
1059 Format(instr, "llihf\t'r1,'i7");
1062 Format(instr, "afi\t'r1,'i7");
1065 Format(instr, "asi\t'd2('r3),'ic");
1068 Format(instr, "agsi\t'd2('r3),'ic");
1071 Format(instr, "alfi\t'r1,'i7");
1074 Format(instr, "ahik\t'r1,'r2,'i1");
1077 Format(instr, "aghik\t'r1,'r2,'i1");
1080 Format(instr, "clgfi\t'r1,'i7");
1083 Format(instr, "clfi\t'r1,'i7");
1086 Format(instr, "cfi\t'r1,'i2");
1089 Format(instr, "cgfi\t'r1,'i2");
1092 Format(instr, "brasl\t'r1,'ie");
1095 Format(instr, "brcl\t'm1,'i5");
1098 Format(instr, "iihf\t'r1,'i7");
1101 Format(instr, "lgfi\t'r1,'i7");
1104 Format
1107 Format(instr, "xihf\t'r1,'i7");
1110 Format(instr, "xilf\t'r1,'i7");
1113 Format(instr, "sllk\t'r1,'r2,'d2('r3)");
1116 Format(instr, "sllg\t'r1,'r2,'d2('r3)");
1119 Format(instr, "rll\t'r1,'r2,'d2('r3)");
1122 Format(instr, "rllg\t'r1,'r2,'d2('r3)");
1125 Format(instr, "srlk\t'r1,'r2,'d2('r3)");
1128 Format(instr, "srlg\t'r1,'r2,'d2('r3)");
1131 Format(instr, "slak\t'r1,'r2,'d2('r3)");
1134 Format(instr, "slag\t'r1,'r2,'d2('r3)");
1137 Format(instr, "srak\t'r1,'r2,'d2('r3)");
1140 Format(instr, "srag\t'r1,'r2,'d2('r3)");
1143 Format(instr, "risbg\t'r1,'r2,'i9,'ia,'ib");
1146 Format(instr, "risbgn\t'r1,'r2,'i9,'ia,'ib");
1149 Format(instr, "locg\t'm2,'r1,'d2('r3)");
1152 Format(instr, "loc\t'm2,'r1,'d2('r3)");
1155 Format(instr, "lmy\t'r1,'r2,'d2('r3)");
1158 Format(instr, "lmg\t'r1,'r2,'d2('r3)");
1161 Format(instr, "stmy\t'r1,'r2,'d2('r3)");
1164 Format(instr, "stmg\t'r1,'r2,'d2('r3)");
1167 Format(instr, "lt\t'r1,'d2('r2d,'r3)");
1170 Format(instr, "ltg\t'r1,'d2('r2d,'r3)");
1173 Format(instr, "ml\t'r1,'d2('r2d,'r3)");
1176 Format(instr, "ay\t'r1,'d2('r2d,'r3)");
1179 Format(instr, "sy\t'r1,'d2('r2d,'r3)");
1182 Format(instr, "ny\t'r1,'d2('r2d,'r3)");
1185 Format(instr, "oy\t'r1,'d2('r2d,'r3)");
1188 Format(instr, "xy\t'r1,'d2('r2d,'r3)");
1191 Format(instr, "cy\t'r1,'d2('r2d,'r3)");
1194 Format(instr, "ahy\t'r1,'d2('r2d,'r3)");
1197 Format(instr, "shy\t'r1,'d2('r2d,'r3)");
1200 Format(instr, "lgh\t'r1,'d2('r2d,'r3)");
1203 Format(instr, "ag\t'r1,'d2('r2d,'r3)");
1206 Format(instr, "agf\t'r1,'d2('r2d,'r3)");
1209 Format(instr, "sg\t'r1,'d2('r2d,'r3)");
1212 Format(instr, "ng\t'r1,'d2('r2d,'r3)");
1215 Format(instr, "og\t'r1,'d2('r2d,'r3)");
1218 Format(instr, "xg\t'r1,'d2('r2d,'r3)");
1221 Format(instr, "cg\t'r1,'d2('r2d,'r3)");
1224 Format(instr, "lb\t'r1,'d2('r2d,'r3)");
1227 Format(instr, "lrvh\t'r1,'d2('r2d,'r3)");
1230 Format(instr, "lrv\t'r1,'d2('r2d,'r3)");
1233 Format(instr, "lrvg\t'r1,'d2('r2d,'r3)");
1236 Format(instr, "lg\t'r1,'d2('r2d,'r3)");
1239 Format(instr, "lgf\t'r1,'d2('r2d,'r3)");
1242 Format(instr, "llgf\t'r1,'d2('r2d,'r3)");
1245 Format(instr, "ly\t'r1,'d2('r2d,'r3)");
1248 Format(instr, "aly\t'r1,'d2('r2d,'r3)");
1251 Format(instr, "alg\t'r1,'d2('r2d,'r3)");
1254 Format(instr, "slg\t'r1,'d2('r2d,'r3)");
1257 Format(instr, "sgf\t'r1,'d2('r2d,'r3)");
1260 Format(instr, "sly\t'r1,'d2('r2d,'r3)");
1263 Format(instr, "llh\t'r1,'d2('r2d,'r3)");
1266 Format(instr, "llgh\t'r1,'d2('r2d,'r3)");
1269 Format(instr, "llc\t'r1,'d2('r2d,'r3)");
1272 Format(instr, "llgc\t'r1,'d2('r2d,'r3)");
1275 Format(instr, "ldeb\t'f1,'d2('r2d,'r3)");
1278 Format(instr, "lay\t'r1,'d2('r2d,'r3)");
1281 Format(instr, "larl\t'r1,'i5");
1284 Format(instr, "lgb\t'r1,'d2('r2d,'r3)");
1287 Format(instr, "chy\t'r1,'d2('r2d,'r3)");
1290 Format(instr, "cly\t'r1,'d2('r2d,'r3)");
1293 Format(instr, "cliy\t'd2('r3),'i8");
1296 Format(instr, "tmy\t'd2('r3),'i8");
1299 Format(instr, "clg\t'r1,'d2('r2d,'r3)");
1302 Format(instr, "bctg\t'r1,'d2('r2d,'r3)");
1305 Format(instr, "sty\t'r1,'d2('r2d,'r3)");
1308 Format(instr, "strvh\t'r1,'d2('r2d,'r3)");
1311 Format(instr, "strv\t'r1,'d2('r2d,'r3)");
1314 Format(instr, "strvg\t'r1,'d2('r2d,'r3)");
1317 Format(instr, "stg\t'r1,'d2('r2d,'r3)");
1320 Format(instr, "icy\t'r1,'d2('r2d,'r3)");
1323 Format(instr, "mvc\t'd3('i8,'r3),'d4('r7)");
1326 Format(instr, "mvhi\t'd3('r3),'id");
1329 Format(instr, "mvghi\t'd3('r3),'id");
1332 Format(instr, "algfi\t'r1,'i7");
1335 Format(instr, "slgfi\t'r1,'i7");
1338 Format(instr, "slfi\t'r1,'i7");
1341 Format(instr, "nihf\t'r1,'i7");
1344 Format(instr, "nilf\t'r1,'i7");
1347 Format(instr, "oihf\t'r1,'i7");
1350 Format(instr, "oilf\t'r1,'i7");
1353 Format(instr, "msfi\t'r1,'i7");
1356 Format(instr, "msgfi\t'r1,'i7");
1359 Format(instr, "ldy\t'f1,'d2('r2d,'r3)");
1362 Format(instr, "ley\t'f1,'d2('r2d,'r3)");
1365 Format(instr, "msg\t'r1,'d2('r2d,'r3)");
1368 Format(instr, "msy\t'r1,'d2('r2d,'r3)");
1371 Format(instr, "stey\t'f1,'d2('r2d,'r3)");
1374 Format(instr, "stdy\t'f1,'d2('r2d,'r3)");
1377 Format(instr, "adb\t'r1,'d1('r2d, 'r3)");
1380 Format(instr, "sdb\t'r1,'d1('r2d, 'r3)");
1383 Format(instr, "mdb\t'r1,'d1('r2d, 'r3)");
1386 Format(instr, "ddb\t'r1,'d1('r2d, 'r3)");
1389 Format(instr, "sqdb\t'r1,'d1('r2d, 'r3)");