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

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

Issue 293023: Added infrastructure for optimizing new CanvasArray types in WebGL... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 2 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.h ('k') | src/x64/codegen-x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 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 1237 matching lines...) Expand 10 before | Expand all | Expand 10 after
1248 } 1248 }
1249 1249
1250 void Assembler::movb(const Operand& dst, Register src) { 1250 void Assembler::movb(const Operand& dst, Register src) {
1251 EnsureSpace ensure_space(this); 1251 EnsureSpace ensure_space(this);
1252 last_pc_ = pc_; 1252 last_pc_ = pc_;
1253 emit_rex_32(src, dst); 1253 emit_rex_32(src, dst);
1254 emit(0x88); 1254 emit(0x88);
1255 emit_operand(src, dst); 1255 emit_operand(src, dst);
1256 } 1256 }
1257 1257
1258 void Assembler::movw(const Operand& dst, Register src) {
1259 EnsureSpace ensure_space(this);
1260 last_pc_ = pc_;
1261 emit(0x66);
1262 emit_optional_rex_32(src, dst);
1263 emit(0x89);
1264 emit_operand(src, dst);
1265 }
1266
1258 void Assembler::movl(Register dst, const Operand& src) { 1267 void Assembler::movl(Register dst, const Operand& src) {
1259 EnsureSpace ensure_space(this); 1268 EnsureSpace ensure_space(this);
1260 last_pc_ = pc_; 1269 last_pc_ = pc_;
1261 emit_optional_rex_32(dst, src); 1270 emit_optional_rex_32(dst, src);
1262 emit(0x8B); 1271 emit(0x8B);
1263 emit_operand(dst, src); 1272 emit_operand(dst, src);
1264 } 1273 }
1265 1274
1266 1275
1267 void Assembler::movl(Register dst, Register src) { 1276 void Assembler::movl(Register dst, Register src) {
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1432 last_pc_ = pc_; 1441 last_pc_ = pc_;
1433 ASSERT(value->IsHeapObject()); 1442 ASSERT(value->IsHeapObject());
1434 ASSERT(!Heap::InNewSpace(*value)); 1443 ASSERT(!Heap::InNewSpace(*value));
1435 emit_rex_64(dst); 1444 emit_rex_64(dst);
1436 emit(0xB8 | dst.low_bits()); 1445 emit(0xB8 | dst.low_bits());
1437 emitq(reinterpret_cast<uintptr_t>(value.location()), mode); 1446 emitq(reinterpret_cast<uintptr_t>(value.location()), mode);
1438 } 1447 }
1439 } 1448 }
1440 1449
1441 1450
1451 void Assembler::movsxbq(Register dst, const Operand& src) {
1452 EnsureSpace ensure_space(this);
1453 last_pc_ = pc_;
1454 emit_rex_32(dst, src);
1455 emit(0x0F);
1456 emit(0xBE);
1457 emit_operand(dst, src);
1458 }
1459
1460
1461 void Assembler::movsxwq(Register dst, const Operand& src) {
1462 EnsureSpace ensure_space(this);
1463 last_pc_ = pc_;
1464 emit_rex_64(dst, src);
1465 emit(0x0F);
1466 emit(0xBF);
1467 emit_operand(dst, src);
1468 }
1469
1470
1442 void Assembler::movsxlq(Register dst, Register src) { 1471 void Assembler::movsxlq(Register dst, Register src) {
1443 EnsureSpace ensure_space(this); 1472 EnsureSpace ensure_space(this);
1444 last_pc_ = pc_; 1473 last_pc_ = pc_;
1445 emit_rex_64(dst, src); 1474 emit_rex_64(dst, src);
1446 emit(0x63); 1475 emit(0x63);
1447 emit_modrm(dst, src); 1476 emit_modrm(dst, src);
1448 } 1477 }
1449 1478
1450 1479
1451 void Assembler::movsxlq(Register dst, const Operand& src) { 1480 void Assembler::movsxlq(Register dst, const Operand& src) {
(...skipping 18 matching lines...) Expand all
1470 void Assembler::movzxbl(Register dst, const Operand& src) { 1499 void Assembler::movzxbl(Register dst, const Operand& src) {
1471 EnsureSpace ensure_space(this); 1500 EnsureSpace ensure_space(this);
1472 last_pc_ = pc_; 1501 last_pc_ = pc_;
1473 emit_optional_rex_32(dst, src); 1502 emit_optional_rex_32(dst, src);
1474 emit(0x0F); 1503 emit(0x0F);
1475 emit(0xB6); 1504 emit(0xB6);
1476 emit_operand(dst, src); 1505 emit_operand(dst, src);
1477 } 1506 }
1478 1507
1479 1508
1509 void Assembler::movzxwq(Register dst, const Operand& src) {
1510 EnsureSpace ensure_space(this);
1511 last_pc_ = pc_;
1512 emit_rex_64(dst, src);
1513 emit(0x0F);
1514 emit(0xB7);
1515 emit_operand(dst, src);
1516 }
1517
1518
1480 void Assembler::movzxwl(Register dst, const Operand& src) { 1519 void Assembler::movzxwl(Register dst, const Operand& src) {
1481 EnsureSpace ensure_space(this); 1520 EnsureSpace ensure_space(this);
1482 last_pc_ = pc_; 1521 last_pc_ = pc_;
1483 emit_optional_rex_32(dst, src); 1522 emit_optional_rex_32(dst, src);
1484 emit(0x0F); 1523 emit(0x0F);
1485 emit(0xB7); 1524 emit(0xB7);
1486 emit_operand(dst, src); 1525 emit_operand(dst, src);
1487 } 1526 }
1488 1527
1489 1528
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
2014 emit(0xDB); 2053 emit(0xDB);
2015 emit_operand(2, adr); 2054 emit_operand(2, adr);
2016 } 2055 }
2017 2056
2018 2057
2019 void Assembler::fistp_d(const Operand& adr) { 2058 void Assembler::fistp_d(const Operand& adr) {
2020 EnsureSpace ensure_space(this); 2059 EnsureSpace ensure_space(this);
2021 last_pc_ = pc_; 2060 last_pc_ = pc_;
2022 emit_optional_rex_32(adr); 2061 emit_optional_rex_32(adr);
2023 emit(0xDF); 2062 emit(0xDF);
2024 emit_operand(8, adr); 2063 emit_operand(7, adr);
2025 } 2064 }
2026 2065
2027 2066
2028 void Assembler::fabs() { 2067 void Assembler::fabs() {
2029 EnsureSpace ensure_space(this); 2068 EnsureSpace ensure_space(this);
2030 last_pc_ = pc_; 2069 last_pc_ = pc_;
2031 emit(0xD9); 2070 emit(0xD9);
2032 emit(0xE1); 2071 emit(0xE1);
2033 } 2072 }
2034 2073
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
2467 written_position_ = current_position_; 2506 written_position_ = current_position_;
2468 } 2507 }
2469 } 2508 }
2470 2509
2471 2510
2472 const int RelocInfo::kApplyMask = RelocInfo::kCodeTargetMask | 2511 const int RelocInfo::kApplyMask = RelocInfo::kCodeTargetMask |
2473 1 << RelocInfo::INTERNAL_REFERENCE | 2512 1 << RelocInfo::INTERNAL_REFERENCE |
2474 1 << RelocInfo::JS_RETURN; 2513 1 << RelocInfo::JS_RETURN;
2475 2514
2476 } } // namespace v8::internal 2515 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/x64/assembler-x64.h ('k') | src/x64/codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698