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

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

Issue 6049008: SSE2 truncating double-to-i. (Closed)
Patch Set: . Created 9 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
OLDNEW
1 // Copyright 2007-2008 the V8 project authors. All rights reserved. 1 // Copyright 2007-2008 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 1164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1175 } else if (*data == 0x70) { 1175 } else if (*data == 0x70) {
1176 data++; 1176 data++;
1177 int mod, regop, rm; 1177 int mod, regop, rm;
1178 get_modrm(*data, &mod, &regop, &rm); 1178 get_modrm(*data, &mod, &regop, &rm);
1179 int8_t imm8 = static_cast<int8_t>(data[1]); 1179 int8_t imm8 = static_cast<int8_t>(data[1]);
1180 AppendToBuffer("pshufd %s,%s,%d", 1180 AppendToBuffer("pshufd %s,%s,%d",
1181 NameOfXMMRegister(regop), 1181 NameOfXMMRegister(regop),
1182 NameOfXMMRegister(rm), 1182 NameOfXMMRegister(rm),
1183 static_cast<int>(imm8)); 1183 static_cast<int>(imm8));
1184 data += 2; 1184 data += 2;
1185 } else if (*data == 0xF3) {
1186 data++;
1187 int mod, regop, rm;
1188 get_modrm(*data, &mod, &regop, &rm);
1189 AppendToBuffer("psllq %s,%s",
1190 NameOfXMMRegister(regop),
1191 NameOfXMMRegister(rm));
1192 data++;
1193 } else if (*data == 0xD3) {
1194 data++;
1195 int mod, regop, rm;
1196 get_modrm(*data, &mod, &regop, &rm);
1197 AppendToBuffer("psrlq %s,%s",
1198 NameOfXMMRegister(regop),
1199 NameOfXMMRegister(rm));
1200 data++;
1201 } else if (*data == 0x62) {
1202 data++;
1203 int mod, regop, rm;
1204 get_modrm(*data, &mod, &regop, &rm);
1205 AppendToBuffer("punpckldq %s,%s",
1206 NameOfXMMRegister(regop),
1207 NameOfXMMRegister(rm));
1208 data++;
1185 } else if (*data == 0x73) { 1209 } else if (*data == 0x73) {
1186 data++; 1210 data++;
1187 int mod, regop, rm; 1211 int mod, regop, rm;
1188 get_modrm(*data, &mod, &regop, &rm); 1212 get_modrm(*data, &mod, &regop, &rm);
1189 int8_t imm8 = static_cast<int8_t>(data[1]); 1213 int8_t imm8 = static_cast<int8_t>(data[1]);
1190 AppendToBuffer("psllq %s,%d", 1214 AppendToBuffer("psllq %s,%d",
1191 NameOfXMMRegister(rm), 1215 NameOfXMMRegister(rm),
1192 static_cast<int>(imm8)); 1216 static_cast<int>(imm8));
1193 data += 2; 1217 data += 2;
1194 } else if (*data == 0x7F) { 1218 } else if (*data == 0x7F) {
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
1552 fprintf(f, " "); 1576 fprintf(f, " ");
1553 } 1577 }
1554 fprintf(f, " %s\n", buffer.start()); 1578 fprintf(f, " %s\n", buffer.start());
1555 } 1579 }
1556 } 1580 }
1557 1581
1558 1582
1559 } // namespace disasm 1583 } // namespace disasm
1560 1584
1561 #endif // V8_TARGET_ARCH_IA32 1585 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698