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

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

Issue 53573004: Introduce orps for IA32/X64 (Closed) Base URL: git://github.com/v8/v8.git@upstream
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 1243 matching lines...) Expand 10 before | Expand all | Expand 10 after
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) { 1263 } else if (opcode == 0x54) {
1264 // xorps xmm, xmm/m128 1264 // andps xmm, xmm/m128
1265 int mod, regop, rm; 1265 int mod, regop, rm;
1266 get_modrm(*current, &mod, &regop, &rm); 1266 get_modrm(*current, &mod, &regop, &rm);
1267 AppendToBuffer("andps %s,", NameOfXMMRegister(regop)); 1267 AppendToBuffer("andps %s,", NameOfXMMRegister(regop));
1268 current += PrintRightXMMOperand(current); 1268 current += PrintRightXMMOperand(current);
1269 1269
1270 } else if (opcode == 0x56) {
1271 // orps xmm, xmm/m128
1272 int mod, regop, rm;
1273 get_modrm(*current, &mod, &regop, &rm);
1274 AppendToBuffer("orps %s,", NameOfXMMRegister(regop));
1275 current += PrintRightXMMOperand(current);
1276
1270 } else if (opcode == 0x57) { 1277 } else if (opcode == 0x57) {
1271 // xorps xmm, xmm/m128 1278 // xorps xmm, xmm/m128
1272 int mod, regop, rm; 1279 int mod, regop, rm;
1273 get_modrm(*current, &mod, &regop, &rm); 1280 get_modrm(*current, &mod, &regop, &rm);
1274 AppendToBuffer("xorps %s,", NameOfXMMRegister(regop)); 1281 AppendToBuffer("xorps %s,", NameOfXMMRegister(regop));
1275 current += PrintRightXMMOperand(current); 1282 current += PrintRightXMMOperand(current);
1276 1283
1277 } else if (opcode == 0x50) { 1284 } else if (opcode == 0x50) {
1278 // movmskps reg, xmm 1285 // movmskps reg, xmm
1279 int mod, regop, rm; 1286 int mod, regop, rm;
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
1892 for (int i = 6 - static_cast<int>(pc - prev_pc); i >= 0; i--) { 1899 for (int i = 6 - static_cast<int>(pc - prev_pc); i >= 0; i--) {
1893 fprintf(f, " "); 1900 fprintf(f, " ");
1894 } 1901 }
1895 fprintf(f, " %s\n", buffer.start()); 1902 fprintf(f, " %s\n", buffer.start());
1896 } 1903 }
1897 } 1904 }
1898 1905
1899 } // namespace disasm 1906 } // namespace disasm
1900 1907
1901 #endif // V8_TARGET_ARCH_X64 1908 #endif // V8_TARGET_ARCH_X64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698