OLD | NEW |
1 // Copyright 2007-2008 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 |
11 // with the distribution. | 11 // with the distribution. |
(...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
974 AppendToBuffer("%s", f0mnem); | 974 AppendToBuffer("%s", f0mnem); |
975 data += 2; | 975 data += 2; |
976 } else if (f0byte == 0x28) { | 976 } else if (f0byte == 0x28) { |
977 data += 2; | 977 data += 2; |
978 int mod, regop, rm; | 978 int mod, regop, rm; |
979 get_modrm(*data, &mod, ®op, &rm); | 979 get_modrm(*data, &mod, ®op, &rm); |
980 AppendToBuffer("movaps %s,%s", | 980 AppendToBuffer("movaps %s,%s", |
981 NameOfXMMRegister(regop), | 981 NameOfXMMRegister(regop), |
982 NameOfXMMRegister(rm)); | 982 NameOfXMMRegister(rm)); |
983 data++; | 983 data++; |
| 984 } else if (f0byte == 0x57) { |
| 985 data += 2; |
| 986 int mod, regop, rm; |
| 987 get_modrm(*data, &mod, ®op, &rm); |
| 988 AppendToBuffer("xorps %s,%s", |
| 989 NameOfXMMRegister(regop), |
| 990 NameOfXMMRegister(rm)); |
| 991 data++; |
984 } else if ((f0byte & 0xF0) == 0x80) { | 992 } else if ((f0byte & 0xF0) == 0x80) { |
985 data += JumpConditional(data, branch_hint); | 993 data += JumpConditional(data, branch_hint); |
986 } else if (f0byte == 0xBE || f0byte == 0xBF || f0byte == 0xB6 || | 994 } else if (f0byte == 0xBE || f0byte == 0xBF || f0byte == 0xB6 || |
987 f0byte == 0xB7 || f0byte == 0xAF) { | 995 f0byte == 0xB7 || f0byte == 0xAF) { |
988 data += 2; | 996 data += 2; |
989 data += PrintOperands(f0mnem, REG_OPER_OP_ORDER, data); | 997 data += PrintOperands(f0mnem, REG_OPER_OP_ORDER, data); |
990 } else if ((f0byte & 0xF0) == 0x90) { | 998 } else if ((f0byte & 0xF0) == 0x90) { |
991 data += SetCC(data); | 999 data += SetCC(data); |
992 } else if ((f0byte & 0xF0) == 0x40) { | 1000 } else if ((f0byte & 0xF0) == 0x40) { |
993 data += CMov(data); | 1001 data += CMov(data); |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1611 fprintf(f, " "); | 1619 fprintf(f, " "); |
1612 } | 1620 } |
1613 fprintf(f, " %s\n", buffer.start()); | 1621 fprintf(f, " %s\n", buffer.start()); |
1614 } | 1622 } |
1615 } | 1623 } |
1616 | 1624 |
1617 | 1625 |
1618 } // namespace disasm | 1626 } // namespace disasm |
1619 | 1627 |
1620 #endif // V8_TARGET_ARCH_IA32 | 1628 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |