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

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

Issue 487723002: [turbofan] Add proper conversion operators for int32<->int64. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 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.h" 5 #include "src/compiler/instruction-selector.h"
6 6
7 #include "src/compiler/instruction-selector-impl.h" 7 #include "src/compiler/instruction-selector-impl.h"
8 #include "src/compiler/node-matchers.h" 8 #include "src/compiler/node-matchers.h"
9 #include "src/compiler/node-properties-inl.h" 9 #include "src/compiler/node-properties-inl.h"
10 #include "src/compiler/pipeline.h" 10 #include "src/compiler/pipeline.h"
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 case IrOpcode::kInt64UDiv: 568 case IrOpcode::kInt64UDiv:
569 return VisitInt64UDiv(node); 569 return VisitInt64UDiv(node);
570 case IrOpcode::kInt64Mod: 570 case IrOpcode::kInt64Mod:
571 return VisitInt64Mod(node); 571 return VisitInt64Mod(node);
572 case IrOpcode::kInt64UMod: 572 case IrOpcode::kInt64UMod:
573 return VisitInt64UMod(node); 573 return VisitInt64UMod(node);
574 case IrOpcode::kInt64LessThan: 574 case IrOpcode::kInt64LessThan:
575 return VisitInt64LessThan(node); 575 return VisitInt64LessThan(node);
576 case IrOpcode::kInt64LessThanOrEqual: 576 case IrOpcode::kInt64LessThanOrEqual:
577 return VisitInt64LessThanOrEqual(node); 577 return VisitInt64LessThanOrEqual(node);
578 case IrOpcode::kConvertInt32ToInt64:
579 return VisitConvertInt32ToInt64(node);
580 case IrOpcode::kConvertInt64ToInt32:
581 return VisitConvertInt64ToInt32(node);
582 case IrOpcode::kChangeInt32ToFloat64: 578 case IrOpcode::kChangeInt32ToFloat64:
583 return MarkAsDouble(node), VisitChangeInt32ToFloat64(node); 579 return MarkAsDouble(node), VisitChangeInt32ToFloat64(node);
584 case IrOpcode::kChangeUint32ToFloat64: 580 case IrOpcode::kChangeUint32ToFloat64:
585 return MarkAsDouble(node), VisitChangeUint32ToFloat64(node); 581 return MarkAsDouble(node), VisitChangeUint32ToFloat64(node);
586 case IrOpcode::kChangeFloat64ToInt32: 582 case IrOpcode::kChangeFloat64ToInt32:
587 return VisitChangeFloat64ToInt32(node); 583 return VisitChangeFloat64ToInt32(node);
588 case IrOpcode::kChangeFloat64ToUint32: 584 case IrOpcode::kChangeFloat64ToUint32:
589 return VisitChangeFloat64ToUint32(node); 585 return VisitChangeFloat64ToUint32(node);
586 case IrOpcode::kChangeInt32ToInt64:
587 return VisitChangeInt32ToInt64(node);
588 case IrOpcode::kChangeUint32ToUint64:
589 return VisitChangeUint32ToUint64(node);
590 case IrOpcode::kTruncateInt64ToInt32:
591 return VisitTruncateInt64ToInt32(node);
590 case IrOpcode::kFloat64Add: 592 case IrOpcode::kFloat64Add:
591 return MarkAsDouble(node), VisitFloat64Add(node); 593 return MarkAsDouble(node), VisitFloat64Add(node);
592 case IrOpcode::kFloat64Sub: 594 case IrOpcode::kFloat64Sub:
593 return MarkAsDouble(node), VisitFloat64Sub(node); 595 return MarkAsDouble(node), VisitFloat64Sub(node);
594 case IrOpcode::kFloat64Mul: 596 case IrOpcode::kFloat64Mul:
595 return MarkAsDouble(node), VisitFloat64Mul(node); 597 return MarkAsDouble(node), VisitFloat64Mul(node);
596 case IrOpcode::kFloat64Div: 598 case IrOpcode::kFloat64Div:
597 return MarkAsDouble(node), VisitFloat64Div(node); 599 return MarkAsDouble(node), VisitFloat64Div(node);
598 case IrOpcode::kFloat64Mod: 600 case IrOpcode::kFloat64Mod:
599 return MarkAsDouble(node), VisitFloat64Mod(node); 601 return MarkAsDouble(node), VisitFloat64Mod(node);
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 747
746 void InstructionSelector::VisitInt64UDiv(Node* node) { UNIMPLEMENTED(); } 748 void InstructionSelector::VisitInt64UDiv(Node* node) { UNIMPLEMENTED(); }
747 749
748 750
749 void InstructionSelector::VisitInt64Mod(Node* node) { UNIMPLEMENTED(); } 751 void InstructionSelector::VisitInt64Mod(Node* node) { UNIMPLEMENTED(); }
750 752
751 753
752 void InstructionSelector::VisitInt64UMod(Node* node) { UNIMPLEMENTED(); } 754 void InstructionSelector::VisitInt64UMod(Node* node) { UNIMPLEMENTED(); }
753 755
754 756
755 void InstructionSelector::VisitConvertInt64ToInt32(Node* node) { 757 void InstructionSelector::VisitChangeInt32ToInt64(Node* node) {
756 UNIMPLEMENTED(); 758 UNIMPLEMENTED();
757 } 759 }
758 760
759 761
760 void InstructionSelector::VisitConvertInt32ToInt64(Node* node) { 762 void InstructionSelector::VisitChangeUint32ToUint64(Node* node) {
761 UNIMPLEMENTED(); 763 UNIMPLEMENTED();
762 } 764 }
763 765
766
767 void InstructionSelector::VisitTruncateInt64ToInt32(Node* node) {
768 UNIMPLEMENTED();
769 }
770
764 #endif // V8_TARGET_ARCH_32_BIT && V8_TURBOFAN_BACKEND 771 #endif // V8_TARGET_ARCH_32_BIT && V8_TURBOFAN_BACKEND
765 772
766 773
767 // 32-bit targets and unsupported architectures need dummy implementations of 774 // 32-bit targets and unsupported architectures need dummy implementations of
768 // selected 64-bit ops. 775 // selected 64-bit ops.
769 #if V8_TARGET_ARCH_32_BIT || !V8_TURBOFAN_BACKEND 776 #if V8_TARGET_ARCH_32_BIT || !V8_TURBOFAN_BACKEND
770 777
771 void InstructionSelector::VisitWord64Test(Node* node, FlagsContinuation* cont) { 778 void InstructionSelector::VisitWord64Test(Node* node, FlagsContinuation* cont) {
772 UNIMPLEMENTED(); 779 UNIMPLEMENTED();
773 } 780 }
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 1058
1052 1059
1053 void InstructionSelector::VisitCall(Node* call, BasicBlock* continuation, 1060 void InstructionSelector::VisitCall(Node* call, BasicBlock* continuation,
1054 BasicBlock* deoptimization) {} 1061 BasicBlock* deoptimization) {}
1055 1062
1056 #endif // !V8_TURBOFAN_BACKEND 1063 #endif // !V8_TURBOFAN_BACKEND
1057 1064
1058 } // namespace compiler 1065 } // namespace compiler
1059 } // namespace internal 1066 } // namespace internal
1060 } // namespace v8 1067 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698