Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/x64/disasm-x64.cc

Issue 44153002: Introduce andps for IA32/X64 (Closed) Base URL: git://github.com/v8/v8.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 1242 matching lines...) Expand 10 before | Expand all | Expand 10 after
1253 // CPUID 1253 // CPUID
1254 AppendToBuffer("%s", mnemonic); 1254 AppendToBuffer("%s", mnemonic);
1255 1255
1256 } else if ((opcode & 0xF0) == 0x40) { 1256 } else if ((opcode & 0xF0) == 0x40) {
1257 // CMOVcc: conditional move. 1257 // CMOVcc: conditional move.
1258 int condition = opcode & 0x0F; 1258 int condition = opcode & 0x0F;
1259 const InstructionDesc& idesc = cmov_instructions[condition]; 1259 const InstructionDesc& idesc = cmov_instructions[condition];
1260 byte_size_operand_ = idesc.byte_size_operation; 1260 byte_size_operand_ = idesc.byte_size_operation;
1261 current += PrintOperands(idesc.mnem, idesc.op_order_, current); 1261 current += PrintOperands(idesc.mnem, idesc.op_order_, current);
1262 1262
1263 } else if (opcode == 0x54) {
1264 // xorps xmm, xmm/m128
1265 int mod, regop, rm;
1266 get_modrm(*current, &mod, &regop, &rm);
1267 AppendToBuffer("andps %s,", NameOfXMMRegister(regop));
1268 current += PrintRightXMMOperand(current);
1269
1263 } else if (opcode == 0x57) { 1270 } else if (opcode == 0x57) {
1264 // xorps xmm, xmm/m128 1271 // xorps xmm, xmm/m128
1265 int mod, regop, rm; 1272 int mod, regop, rm;
1266 get_modrm(*current, &mod, &regop, &rm); 1273 get_modrm(*current, &mod, &regop, &rm);
1267 AppendToBuffer("xorps %s,", NameOfXMMRegister(regop)); 1274 AppendToBuffer("xorps %s,", NameOfXMMRegister(regop));
1268 current += PrintRightXMMOperand(current); 1275 current += PrintRightXMMOperand(current);
1269 1276
1270 } else if (opcode == 0x50) { 1277 } else if (opcode == 0x50) {
1271 // movmskps reg, xmm 1278 // movmskps reg, xmm
1272 int mod, regop, rm; 1279 int mod, regop, rm;
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
1885 for (int i = 6 - static_cast<int>(pc - prev_pc); i >= 0; i--) { 1892 for (int i = 6 - static_cast<int>(pc - prev_pc); i >= 0; i--) {
1886 fprintf(f, " "); 1893 fprintf(f, " ");
1887 } 1894 }
1888 fprintf(f, " %s\n", buffer.start()); 1895 fprintf(f, " %s\n", buffer.start());
1889 } 1896 }
1890 } 1897 }
1891 1898
1892 } // namespace disasm 1899 } // namespace disasm
1893 1900
1894 #endif // V8_TARGET_ARCH_X64 1901 #endif // V8_TARGET_ARCH_X64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698