OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1033 NameOfXMMRegister(rm)); | 1033 NameOfXMMRegister(rm)); |
1034 data++; | 1034 data++; |
1035 } else if (f0byte == 0x57) { | 1035 } else if (f0byte == 0x57) { |
1036 data += 2; | 1036 data += 2; |
1037 int mod, regop, rm; | 1037 int mod, regop, rm; |
1038 get_modrm(*data, &mod, ®op, &rm); | 1038 get_modrm(*data, &mod, ®op, &rm); |
1039 AppendToBuffer("xorps %s,%s", | 1039 AppendToBuffer("xorps %s,%s", |
1040 NameOfXMMRegister(regop), | 1040 NameOfXMMRegister(regop), |
1041 NameOfXMMRegister(rm)); | 1041 NameOfXMMRegister(rm)); |
1042 data++; | 1042 data++; |
| 1043 } else if (f0byte == 0x50) { |
| 1044 data += 2; |
| 1045 int mod, regop, rm; |
| 1046 get_modrm(*data, &mod, ®op, &rm); |
| 1047 AppendToBuffer("movmskps %s,%s", |
| 1048 NameOfCPURegister(regop), |
| 1049 NameOfXMMRegister(rm)); |
| 1050 data++; |
1043 } else if ((f0byte & 0xF0) == 0x80) { | 1051 } else if ((f0byte & 0xF0) == 0x80) { |
1044 data += JumpConditional(data, branch_hint); | 1052 data += JumpConditional(data, branch_hint); |
1045 } else if (f0byte == 0xBE || f0byte == 0xBF || f0byte == 0xB6 || | 1053 } else if (f0byte == 0xBE || f0byte == 0xBF || f0byte == 0xB6 || |
1046 f0byte == 0xB7 || f0byte == 0xAF) { | 1054 f0byte == 0xB7 || f0byte == 0xAF) { |
1047 data += 2; | 1055 data += 2; |
1048 data += PrintOperands(f0mnem, REG_OPER_OP_ORDER, data); | 1056 data += PrintOperands(f0mnem, REG_OPER_OP_ORDER, data); |
1049 } else if ((f0byte & 0xF0) == 0x90) { | 1057 } else if ((f0byte & 0xF0) == 0x90) { |
1050 data += SetCC(data); | 1058 data += SetCC(data); |
1051 } else if ((f0byte & 0xF0) == 0x40) { | 1059 } else if ((f0byte & 0xF0) == 0x40) { |
1052 data += CMov(data); | 1060 data += CMov(data); |
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1709 fprintf(f, " "); | 1717 fprintf(f, " "); |
1710 } | 1718 } |
1711 fprintf(f, " %s\n", buffer.start()); | 1719 fprintf(f, " %s\n", buffer.start()); |
1712 } | 1720 } |
1713 } | 1721 } |
1714 | 1722 |
1715 | 1723 |
1716 } // namespace disasm | 1724 } // namespace disasm |
1717 | 1725 |
1718 #endif // V8_TARGET_ARCH_IA32 | 1726 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |