OLD | NEW |
1 // Copyright 2007-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 {0x90, "nop", UNSET_OP_ORDER}, | 82 {0x90, "nop", UNSET_OP_ORDER}, |
83 {0xF4, "hlt", UNSET_OP_ORDER}, | 83 {0xF4, "hlt", UNSET_OP_ORDER}, |
84 {0xCC, "int3", UNSET_OP_ORDER}, | 84 {0xCC, "int3", UNSET_OP_ORDER}, |
85 {0x60, "pushad", UNSET_OP_ORDER}, | 85 {0x60, "pushad", UNSET_OP_ORDER}, |
86 {0x61, "popad", UNSET_OP_ORDER}, | 86 {0x61, "popad", UNSET_OP_ORDER}, |
87 {0x9C, "pushfd", UNSET_OP_ORDER}, | 87 {0x9C, "pushfd", UNSET_OP_ORDER}, |
88 {0x9D, "popfd", UNSET_OP_ORDER}, | 88 {0x9D, "popfd", UNSET_OP_ORDER}, |
89 {0x9E, "sahf", UNSET_OP_ORDER}, | 89 {0x9E, "sahf", UNSET_OP_ORDER}, |
90 {0x99, "cdq", UNSET_OP_ORDER}, | 90 {0x99, "cdq", UNSET_OP_ORDER}, |
91 {0x9B, "fwait", UNSET_OP_ORDER}, | 91 {0x9B, "fwait", UNSET_OP_ORDER}, |
| 92 {0xFC, "cld", UNSET_OP_ORDER}, |
92 {-1, "", UNSET_OP_ORDER} | 93 {-1, "", UNSET_OP_ORDER} |
93 }; | 94 }; |
94 | 95 |
95 | 96 |
96 static ByteMnemonic call_jump_instr[] = { | 97 static ByteMnemonic call_jump_instr[] = { |
97 {0xE8, "call", UNSET_OP_ORDER}, | 98 {0xE8, "call", UNSET_OP_ORDER}, |
98 {0xE9, "jmp", UNSET_OP_ORDER}, | 99 {0xE9, "jmp", UNSET_OP_ORDER}, |
99 {-1, "", UNSET_OP_ORDER} | 100 {-1, "", UNSET_OP_ORDER} |
100 }; | 101 }; |
101 | 102 |
(...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1211 int mod, regop, rm; | 1212 int mod, regop, rm; |
1212 get_modrm(*data, &mod, ®op, &rm); | 1213 get_modrm(*data, &mod, ®op, &rm); |
1213 data += PrintRightOperand(data); | 1214 data += PrintRightOperand(data); |
1214 AppendToBuffer(",%s", NameOfXMMRegister(regop)); | 1215 AppendToBuffer(",%s", NameOfXMMRegister(regop)); |
1215 } else { | 1216 } else { |
1216 UnimplementedInstruction(); | 1217 UnimplementedInstruction(); |
1217 } | 1218 } |
1218 } else if (*(data+1) == 0xA5) { | 1219 } else if (*(data+1) == 0xA5) { |
1219 data += 2; | 1220 data += 2; |
1220 AppendToBuffer("rep_movs"); | 1221 AppendToBuffer("rep_movs"); |
| 1222 } else if (*(data+1) == 0xAB) { |
| 1223 data += 2; |
| 1224 AppendToBuffer("rep_stos"); |
1221 } else { | 1225 } else { |
1222 UnimplementedInstruction(); | 1226 UnimplementedInstruction(); |
1223 } | 1227 } |
1224 break; | 1228 break; |
1225 | 1229 |
1226 case 0xF7: | 1230 case 0xF7: |
1227 data += F7Instruction(data); | 1231 data += F7Instruction(data); |
1228 break; | 1232 break; |
1229 | 1233 |
1230 default: | 1234 default: |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1352 } | 1356 } |
1353 for (int i = 6 - (pc - prev_pc); i >= 0; i--) { | 1357 for (int i = 6 - (pc - prev_pc); i >= 0; i--) { |
1354 fprintf(f, " "); | 1358 fprintf(f, " "); |
1355 } | 1359 } |
1356 fprintf(f, " %s\n", buffer.start()); | 1360 fprintf(f, " %s\n", buffer.start()); |
1357 } | 1361 } |
1358 } | 1362 } |
1359 | 1363 |
1360 | 1364 |
1361 } // namespace disasm | 1365 } // namespace disasm |
OLD | NEW |