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

Side by Side Diff: src/compiler/arm64/instruction-selector-arm64.cc

Issue 596703004: [turbofan] Add backend support for float32. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE Created 6 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
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/instruction-selector-impl.h" 5 #include "src/compiler/instruction-selector-impl.h"
6 #include "src/compiler/node-matchers.h" 6 #include "src/compiler/node-matchers.h"
7 7
8 namespace v8 { 8 namespace v8 {
9 namespace internal { 9 namespace internal {
10 namespace compiler { 10 namespace compiler {
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 void InstructionSelector::VisitInt32UMod(Node* node) { 425 void InstructionSelector::VisitInt32UMod(Node* node) {
426 VisitRRR(this, kArm64Umod32, node); 426 VisitRRR(this, kArm64Umod32, node);
427 } 427 }
428 428
429 429
430 void InstructionSelector::VisitInt64UMod(Node* node) { 430 void InstructionSelector::VisitInt64UMod(Node* node) {
431 VisitRRR(this, kArm64Umod, node); 431 VisitRRR(this, kArm64Umod, node);
432 } 432 }
433 433
434 434
435 void InstructionSelector::VisitChangeFloat32ToFloat64(Node* node) {
436 Arm64OperandGenerator g(this);
437 Emit(kArm64Float32ToFloat64, g.DefineAsRegister(node),
438 g.UseRegister(node->InputAt(0)));
439 }
440
441
435 void InstructionSelector::VisitChangeInt32ToFloat64(Node* node) { 442 void InstructionSelector::VisitChangeInt32ToFloat64(Node* node) {
436 Arm64OperandGenerator g(this); 443 Arm64OperandGenerator g(this);
437 Emit(kArm64Int32ToFloat64, g.DefineAsRegister(node), 444 Emit(kArm64Int32ToFloat64, g.DefineAsRegister(node),
438 g.UseRegister(node->InputAt(0))); 445 g.UseRegister(node->InputAt(0)));
439 } 446 }
440 447
441 448
442 void InstructionSelector::VisitChangeUint32ToFloat64(Node* node) { 449 void InstructionSelector::VisitChangeUint32ToFloat64(Node* node) {
443 Arm64OperandGenerator g(this); 450 Arm64OperandGenerator g(this);
444 Emit(kArm64Uint32ToFloat64, g.DefineAsRegister(node), 451 Emit(kArm64Uint32ToFloat64, g.DefineAsRegister(node),
(...skipping 20 matching lines...) Expand all
465 Emit(kArm64Sxtw, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); 472 Emit(kArm64Sxtw, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0)));
466 } 473 }
467 474
468 475
469 void InstructionSelector::VisitChangeUint32ToUint64(Node* node) { 476 void InstructionSelector::VisitChangeUint32ToUint64(Node* node) {
470 Arm64OperandGenerator g(this); 477 Arm64OperandGenerator g(this);
471 Emit(kArm64Mov32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); 478 Emit(kArm64Mov32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0)));
472 } 479 }
473 480
474 481
482 void InstructionSelector::VisitTruncateFloat64ToFloat32(Node* node) {
483 Arm64OperandGenerator g(this);
484 Emit(kArm64Float64ToFloat32, g.DefineAsRegister(node),
485 g.UseRegister(node->InputAt(0)));
486 }
487
488
475 void InstructionSelector::VisitTruncateInt64ToInt32(Node* node) { 489 void InstructionSelector::VisitTruncateInt64ToInt32(Node* node) {
476 Arm64OperandGenerator g(this); 490 Arm64OperandGenerator g(this);
477 Emit(kArm64Mov32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0))); 491 Emit(kArm64Mov32, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0)));
478 } 492 }
479 493
480 494
481 void InstructionSelector::VisitFloat64Add(Node* node) { 495 void InstructionSelector::VisitFloat64Add(Node* node) {
482 VisitRRRFloat64(this, kArm64Float64Add, node); 496 VisitRRRFloat64(this, kArm64Float64Add, node);
483 } 497 }
484 498
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 call_instr->MarkAsCall(); 702 call_instr->MarkAsCall();
689 if (deoptimization != NULL) { 703 if (deoptimization != NULL) {
690 DCHECK(continuation != NULL); 704 DCHECK(continuation != NULL);
691 call_instr->MarkAsControl(); 705 call_instr->MarkAsControl();
692 } 706 }
693 } 707 }
694 708
695 } // namespace compiler 709 } // namespace compiler
696 } // namespace internal 710 } // namespace internal
697 } // namespace v8 711 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm64/instruction-codes-arm64.h ('k') | src/compiler/arm64/instruction-selector-arm64-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698