| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // A Disassembler object is used to disassemble a block of code instruction by | 5 // A Disassembler object is used to disassemble a block of code instruction by |
| 6 // instruction. The default implementation of the NameConverter object can be | 6 // instruction. The default implementation of the NameConverter object can be |
| 7 // overriden to modify register names or to do symbol lookup on addresses. | 7 // overriden to modify register names or to do symbol lookup on addresses. |
| 8 // | 8 // |
| 9 // The example below will disassemble a block of code and print it to stdout. | 9 // The example below will disassemble a block of code and print it to stdout. |
| 10 // | 10 // |
| (...skipping 718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 729 break; | 729 break; |
| 730 case LTGR: | 730 case LTGR: |
| 731 Format(instr, "ltgr\t'r5,'r6"); | 731 Format(instr, "ltgr\t'r5,'r6"); |
| 732 break; | 732 break; |
| 733 case LTDBR: | 733 case LTDBR: |
| 734 Format(instr, "ltdbr\t'f5,'f6"); | 734 Format(instr, "ltdbr\t'f5,'f6"); |
| 735 break; | 735 break; |
| 736 case LTEBR: | 736 case LTEBR: |
| 737 Format(instr, "ltebr\t'f5,'f6"); | 737 Format(instr, "ltebr\t'f5,'f6"); |
| 738 break; | 738 break; |
| 739 case LRVR: |
| 740 Format(instr, "lrvr\t'r5,'r6"); |
| 741 break; |
| 742 case LRVGR: |
| 743 Format(instr, "lrvgr\t'r5,'r6"); |
| 744 break; |
| 739 case LGR: | 745 case LGR: |
| 740 Format(instr, "lgr\t'r5,'r6"); | 746 Format(instr, "lgr\t'r5,'r6"); |
| 741 break; | 747 break; |
| 742 case LGDR: | 748 case LGDR: |
| 743 Format(instr, "lgdr\t'r5,'f6"); | 749 Format(instr, "lgdr\t'r5,'f6"); |
| 744 break; | 750 break; |
| 745 case LGFR: | 751 case LGFR: |
| 746 Format(instr, "lgfr\t'r5,'r6"); | 752 Format(instr, "lgfr\t'r5,'r6"); |
| 747 break; | 753 break; |
| 748 case LTGFR: | 754 case LTGFR: |
| (...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1189 break; | 1195 break; |
| 1190 case XG: | 1196 case XG: |
| 1191 Format(instr, "xg\t'r1,'d2('r2d,'r3)"); | 1197 Format(instr, "xg\t'r1,'d2('r2d,'r3)"); |
| 1192 break; | 1198 break; |
| 1193 case CG: | 1199 case CG: |
| 1194 Format(instr, "cg\t'r1,'d2('r2d,'r3)"); | 1200 Format(instr, "cg\t'r1,'d2('r2d,'r3)"); |
| 1195 break; | 1201 break; |
| 1196 case LB: | 1202 case LB: |
| 1197 Format(instr, "lb\t'r1,'d2('r2d,'r3)"); | 1203 Format(instr, "lb\t'r1,'d2('r2d,'r3)"); |
| 1198 break; | 1204 break; |
| 1205 case LRVH: |
| 1206 Format(instr, "lrvh\t'r1,'d2('r2d,'r3)"); |
| 1207 break; |
| 1208 case LRV: |
| 1209 Format(instr, "lrv\t'r1,'d2('r2d,'r3)"); |
| 1210 break; |
| 1211 case LRVG: |
| 1212 Format(instr, "lrvg\t'r1,'d2('r2d,'r3)"); |
| 1213 break; |
| 1199 case LG: | 1214 case LG: |
| 1200 Format(instr, "lg\t'r1,'d2('r2d,'r3)"); | 1215 Format(instr, "lg\t'r1,'d2('r2d,'r3)"); |
| 1201 break; | 1216 break; |
| 1202 case LGF: | 1217 case LGF: |
| 1203 Format(instr, "lgf\t'r1,'d2('r2d,'r3)"); | 1218 Format(instr, "lgf\t'r1,'d2('r2d,'r3)"); |
| 1204 break; | 1219 break; |
| 1205 case LLGF: | 1220 case LLGF: |
| 1206 Format(instr, "llgf\t'r1,'d2('r2d,'r3)"); | 1221 Format(instr, "llgf\t'r1,'d2('r2d,'r3)"); |
| 1207 break; | 1222 break; |
| 1208 case LY: | 1223 case LY: |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1261 break; | 1276 break; |
| 1262 case CLG: | 1277 case CLG: |
| 1263 Format(instr, "clg\t'r1,'d2('r2d,'r3)"); | 1278 Format(instr, "clg\t'r1,'d2('r2d,'r3)"); |
| 1264 break; | 1279 break; |
| 1265 case BCTG: | 1280 case BCTG: |
| 1266 Format(instr, "bctg\t'r1,'d2('r2d,'r3)"); | 1281 Format(instr, "bctg\t'r1,'d2('r2d,'r3)"); |
| 1267 break; | 1282 break; |
| 1268 case STY: | 1283 case STY: |
| 1269 Format(instr, "sty\t'r1,'d2('r2d,'r3)"); | 1284 Format(instr, "sty\t'r1,'d2('r2d,'r3)"); |
| 1270 break; | 1285 break; |
| 1286 case STRVH: |
| 1287 Format(instr, "strvh\t'r1,'d2('r2d,'r3)"); |
| 1288 break; |
| 1289 case STRV: |
| 1290 Format(instr, "strv\t'r1,'d2('r2d,'r3)"); |
| 1291 break; |
| 1292 case STRVG: |
| 1293 Format(instr, "strvg\t'r1,'d2('r2d,'r3)"); |
| 1294 break; |
| 1271 case STG: | 1295 case STG: |
| 1272 Format(instr, "stg\t'r1,'d2('r2d,'r3)"); | 1296 Format(instr, "stg\t'r1,'d2('r2d,'r3)"); |
| 1273 break; | 1297 break; |
| 1274 case ICY: | 1298 case ICY: |
| 1275 Format(instr, "icy\t'r1,'d2('r2d,'r3)"); | 1299 Format(instr, "icy\t'r1,'d2('r2d,'r3)"); |
| 1276 break; | 1300 break; |
| 1277 case MVC: | 1301 case MVC: |
| 1278 Format(instr, "mvc\t'd3('i8,'r3),'d4('r7)"); | 1302 Format(instr, "mvc\t'd3('i8,'r3),'d4('r7)"); |
| 1279 break; | 1303 break; |
| 1280 case MVHI: | 1304 case MVHI: |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1423 byte* prev_pc = pc; | 1447 byte* prev_pc = pc; |
| 1424 pc += d.InstructionDecode(buffer, pc); | 1448 pc += d.InstructionDecode(buffer, pc); |
| 1425 v8::internal::PrintF(f, "%p %08x %s\n", static_cast<void*>(prev_pc), | 1449 v8::internal::PrintF(f, "%p %08x %s\n", static_cast<void*>(prev_pc), |
| 1426 *reinterpret_cast<int32_t*>(prev_pc), buffer.start()); | 1450 *reinterpret_cast<int32_t*>(prev_pc), buffer.start()); |
| 1427 } | 1451 } |
| 1428 } | 1452 } |
| 1429 | 1453 |
| 1430 } // namespace disasm | 1454 } // namespace disasm |
| 1431 | 1455 |
| 1432 #endif // V8_TARGET_ARCH_S390 | 1456 #endif // V8_TARGET_ARCH_S390 |
| OLD | NEW |