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

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

Issue 3327022: Custom call IC for Math.floor. (Closed)
Patch Set: Oops, forgot to upload the test Created 10 years, 3 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 1138 matching lines...) Expand 10 before | Expand all | Expand 10 after
1149 data += PrintRightOperand(data); 1149 data += PrintRightOperand(data);
1150 AppendToBuffer(",%s", NameOfXMMRegister(regop)); 1150 AppendToBuffer(",%s", NameOfXMMRegister(regop));
1151 } else if (*data == 0xEF) { 1151 } else if (*data == 0xEF) {
1152 data++; 1152 data++;
1153 int mod, regop, rm; 1153 int mod, regop, rm;
1154 get_modrm(*data, &mod, &regop, &rm); 1154 get_modrm(*data, &mod, &regop, &rm);
1155 AppendToBuffer("pxor %s,%s", 1155 AppendToBuffer("pxor %s,%s",
1156 NameOfXMMRegister(regop), 1156 NameOfXMMRegister(regop),
1157 NameOfXMMRegister(rm)); 1157 NameOfXMMRegister(rm));
1158 data++; 1158 data++;
1159 } else if (*data == 0x73) {
1160 data++;
1161 int mod, regop, rm;
1162 get_modrm(*data, &mod, &regop, &rm);
1163 int8_t imm8 = *reinterpret_cast<int8_t*>(data + 1);
Erik Corry 2010/09/20 11:56:50 Why not just: int imm8 = data[1]; ?
Vitaly Repeshko 2010/09/21 12:54:49 Almost done. I left static_cast there to avoid uns
1164 AppendToBuffer("psllq %s,%d",
1165 NameOfXMMRegister(rm),
1166 static_cast<int>(imm8));
1167 data += 2;;
1159 } else { 1168 } else {
1160 UnimplementedInstruction(); 1169 UnimplementedInstruction();
1161 } 1170 }
1162 } else { 1171 } else {
1163 UnimplementedInstruction(); 1172 UnimplementedInstruction();
1164 } 1173 }
1165 break; 1174 break;
1166 1175
1167 case 0xFE: 1176 case 0xFE:
1168 { data++; 1177 { data++;
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
1463 fprintf(f, " "); 1472 fprintf(f, " ");
1464 } 1473 }
1465 fprintf(f, " %s\n", buffer.start()); 1474 fprintf(f, " %s\n", buffer.start());
1466 } 1475 }
1467 } 1476 }
1468 1477
1469 1478
1470 } // namespace disasm 1479 } // namespace disasm
1471 1480
1472 #endif // V8_TARGET_ARCH_IA32 1481 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698