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

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

Issue 11748013: Merged r13260, r13266, r13268, r13270, r13274 into 3.15 branch. (Closed) Base URL: https://v8.googlecode.com/svn/branches/3.15
Patch Set: Created 7 years, 11 months 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 | Annotate | Revision Log
« no previous file with comments | « src/x64/assembler-x64.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1226 matching lines...) Expand 10 before | Expand all | Expand 10 after
1237 byte_size_operand_ = idesc.byte_size_operation; 1237 byte_size_operand_ = idesc.byte_size_operation;
1238 current += PrintOperands(idesc.mnem, idesc.op_order_, current); 1238 current += PrintOperands(idesc.mnem, idesc.op_order_, current);
1239 1239
1240 } else if (opcode == 0x57) { 1240 } else if (opcode == 0x57) {
1241 // xorps xmm, xmm/m128 1241 // xorps xmm, xmm/m128
1242 int mod, regop, rm; 1242 int mod, regop, rm;
1243 get_modrm(*current, &mod, &regop, &rm); 1243 get_modrm(*current, &mod, &regop, &rm);
1244 AppendToBuffer("xorps %s, ", NameOfXMMRegister(regop)); 1244 AppendToBuffer("xorps %s, ", NameOfXMMRegister(regop));
1245 current += PrintRightXMMOperand(current); 1245 current += PrintRightXMMOperand(current);
1246 1246
1247 } else if (opcode == 0x50) {
1248 // movmskps reg, xmm
1249 int mod, regop, rm;
1250 get_modrm(*current, &mod, &regop, &rm);
1251 AppendToBuffer("movmskps %s, ", NameOfCPURegister(regop));
1252 current += PrintRightXMMOperand(current);
1253
1247 } else if ((opcode & 0xF0) == 0x80) { 1254 } else if ((opcode & 0xF0) == 0x80) {
1248 // Jcc: Conditional jump (branch). 1255 // Jcc: Conditional jump (branch).
1249 current = data + JumpConditional(data); 1256 current = data + JumpConditional(data);
1250 1257
1251 } else if (opcode == 0xBE || opcode == 0xBF || opcode == 0xB6 || 1258 } else if (opcode == 0xBE || opcode == 0xBF || opcode == 0xB6 ||
1252 opcode == 0xB7 || opcode == 0xAF) { 1259 opcode == 0xB7 || opcode == 0xAF) {
1253 // Size-extending moves, IMUL. 1260 // Size-extending moves, IMUL.
1254 current += PrintOperands(mnemonic, REG_OPER_OP_ORDER, current); 1261 current += PrintOperands(mnemonic, REG_OPER_OP_ORDER, current);
1255 1262
1256 } else if ((opcode & 0xF0) == 0x90) { 1263 } else if ((opcode & 0xF0) == 0x90) {
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
1717 case 0xEB: 1724 case 0xEB:
1718 data += JumpShort(data); 1725 data += JumpShort(data);
1719 break; 1726 break;
1720 1727
1721 case 0xF6: 1728 case 0xF6:
1722 byte_size_operand_ = true; // fall through 1729 byte_size_operand_ = true; // fall through
1723 case 0xF7: 1730 case 0xF7:
1724 data += F6F7Instruction(data); 1731 data += F6F7Instruction(data);
1725 break; 1732 break;
1726 1733
1734 case 0x3C:
1735 AppendToBuffer("cmp al, 0x%x", *reinterpret_cast<int8_t*>(data + 1));
1736 data +=2;
1737 break;
1738
1727 default: 1739 default:
1728 UnimplementedInstruction(); 1740 UnimplementedInstruction();
1729 data += 1; 1741 data += 1;
1730 } 1742 }
1731 } // !processed 1743 } // !processed
1732 1744
1733 if (tmp_buffer_pos_ < sizeof tmp_buffer_) { 1745 if (tmp_buffer_pos_ < sizeof tmp_buffer_) {
1734 tmp_buffer_[tmp_buffer_pos_] = '\0'; 1746 tmp_buffer_[tmp_buffer_pos_] = '\0';
1735 } 1747 }
1736 1748
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1848 for (int i = 6 - static_cast<int>(pc - prev_pc); i >= 0; i--) { 1860 for (int i = 6 - static_cast<int>(pc - prev_pc); i >= 0; i--) {
1849 fprintf(f, " "); 1861 fprintf(f, " ");
1850 } 1862 }
1851 fprintf(f, " %s\n", buffer.start()); 1863 fprintf(f, " %s\n", buffer.start());
1852 } 1864 }
1853 } 1865 }
1854 1866
1855 } // namespace disasm 1867 } // namespace disasm
1856 1868
1857 #endif // V8_TARGET_ARCH_X64 1869 #endif // V8_TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « src/x64/assembler-x64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698