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

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

Issue 1448383002: MIPS: Implementation of Float64RoundUp and Float64RoundTiesEven (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fixing CLINT warning on function size Created 5 years, 1 month 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
« no previous file with comments | « src/compiler/mips/instruction-codes-mips.h ('k') | src/mips/assembler-mips.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 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/base/adapters.h" 5 #include "src/base/adapters.h"
6 #include "src/base/bits.h" 6 #include "src/base/bits.h"
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.h" 9 #include "src/compiler/node-properties.h"
10 10
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 void InstructionSelector::VisitFloat64Sqrt(Node* node) { 581 void InstructionSelector::VisitFloat64Sqrt(Node* node) {
582 VisitRR(this, kMipsSqrtD, node); 582 VisitRR(this, kMipsSqrtD, node);
583 } 583 }
584 584
585 585
586 void InstructionSelector::VisitFloat64RoundDown(Node* node) { 586 void InstructionSelector::VisitFloat64RoundDown(Node* node) {
587 VisitRR(this, kMipsFloat64RoundDown, node); 587 VisitRR(this, kMipsFloat64RoundDown, node);
588 } 588 }
589 589
590 590
591 void InstructionSelector::VisitFloat64RoundUp(Node* node) { UNREACHABLE(); } 591 void InstructionSelector::VisitFloat64RoundUp(Node* node) {
592 VisitRR(this, kMipsFloat64RoundUp, node);
593 }
592 594
593 595
594 void InstructionSelector::VisitFloat64RoundTruncate(Node* node) { 596 void InstructionSelector::VisitFloat64RoundTruncate(Node* node) {
595 VisitRR(this, kMipsFloat64RoundTruncate, node); 597 VisitRR(this, kMipsFloat64RoundTruncate, node);
596 } 598 }
597 599
598 600
599 void InstructionSelector::VisitFloat64RoundTiesAway(Node* node) { 601 void InstructionSelector::VisitFloat64RoundTiesAway(Node* node) {
600 UNREACHABLE(); 602 UNREACHABLE();
601 } 603 }
602 604
603 605
604 void InstructionSelector::VisitFloat64RoundTiesEven(Node* node) { 606 void InstructionSelector::VisitFloat64RoundTiesEven(Node* node) {
605 UNREACHABLE(); 607 VisitRR(this, kMipsFloat64RoundTiesEven, node);
606 } 608 }
607 609
608 610
609 void InstructionSelector::EmitPrepareArguments(NodeVector* arguments, 611 void InstructionSelector::EmitPrepareArguments(NodeVector* arguments,
610 const CallDescriptor* descriptor, 612 const CallDescriptor* descriptor,
611 Node* node) { 613 Node* node) {
612 MipsOperandGenerator g(this); 614 MipsOperandGenerator g(this);
613 615
614 // Prepare for C function call. 616 // Prepare for C function call.
615 if (descriptor->IsCFunctionCall()) { 617 if (descriptor->IsCFunctionCall()) {
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 } 1105 }
1104 1106
1105 1107
1106 // static 1108 // static
1107 MachineOperatorBuilder::Flags 1109 MachineOperatorBuilder::Flags
1108 InstructionSelector::SupportedMachineOperatorFlags() { 1110 InstructionSelector::SupportedMachineOperatorFlags() {
1109 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; 1111 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags;
1110 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && 1112 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) &&
1111 IsFp64Mode()) { 1113 IsFp64Mode()) {
1112 flags |= MachineOperatorBuilder::kFloat64RoundDown | 1114 flags |= MachineOperatorBuilder::kFloat64RoundDown |
1113 MachineOperatorBuilder::kFloat64RoundTruncate; 1115 MachineOperatorBuilder::kFloat64RoundUp |
1116 MachineOperatorBuilder::kFloat64RoundTruncate |
1117 MachineOperatorBuilder::kFloat64RoundTiesEven;
1114 } 1118 }
1115 return flags | MachineOperatorBuilder::kFloat64Min | 1119 return flags | MachineOperatorBuilder::kFloat64Min |
1116 MachineOperatorBuilder::kFloat64Max | 1120 MachineOperatorBuilder::kFloat64Max |
1117 MachineOperatorBuilder::kFloat32Min | 1121 MachineOperatorBuilder::kFloat32Min |
1118 MachineOperatorBuilder::kFloat32Max; 1122 MachineOperatorBuilder::kFloat32Max;
1119 } 1123 }
1120 1124
1121 } // namespace compiler 1125 } // namespace compiler
1122 } // namespace internal 1126 } // namespace internal
1123 } // namespace v8 1127 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/mips/instruction-codes-mips.h ('k') | src/mips/assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698