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

Unified Diff: src/compiler/mips/instruction-selector-mips.cc

Issue 2801683003: MIPS[64]: Support for some SIMD operations (8) (Closed)
Patch Set: Rebase Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/compiler/mips/instruction-codes-mips.h ('k') | src/compiler/mips64/code-generator-mips64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/mips/instruction-selector-mips.cc
diff --git a/src/compiler/mips/instruction-selector-mips.cc b/src/compiler/mips/instruction-selector-mips.cc
index 875265301c8959ce380286afc89a9af07027adb0..0ec2819b373a5f2fd5185e440b645a5955bed0fb 100644
--- a/src/compiler/mips/instruction-selector-mips.cc
+++ b/src/compiler/mips/instruction-selector-mips.cc
@@ -294,8 +294,10 @@ void InstructionSelector::VisitLoad(Node* node) {
case MachineRepresentation::kWord32:
opcode = kMipsLw;
break;
+ case MachineRepresentation::kSimd128:
+ opcode = kMipsMsaLd;
+ break;
case MachineRepresentation::kWord64: // Fall through.
- case MachineRepresentation::kSimd128: // Fall through.
case MachineRepresentation::kSimd1x4: // Fall through.
case MachineRepresentation::kSimd1x8: // Fall through.
case MachineRepresentation::kSimd1x16: // Fall through.
@@ -382,8 +384,10 @@ void InstructionSelector::VisitStore(Node* node) {
case MachineRepresentation::kWord32:
opcode = kMipsSw;
break;
+ case MachineRepresentation::kSimd128:
+ opcode = kMipsMsaSt;
+ break;
case MachineRepresentation::kWord64: // Fall through.
- case MachineRepresentation::kSimd128: // Fall through.
case MachineRepresentation::kSimd1x4: // Fall through.
case MachineRepresentation::kSimd1x8: // Fall through.
case MachineRepresentation::kSimd1x16: // Fall through.
@@ -1234,8 +1238,10 @@ void InstructionSelector::VisitUnalignedLoad(Node* node) {
case MachineRepresentation::kFloat64:
opcode = kMipsUldc1;
break;
+ case MachineRepresentation::kSimd128:
+ opcode = kMipsMsaLd;
+ break;
case MachineRepresentation::kWord64: // Fall through.
- case MachineRepresentation::kSimd128: // Fall through.
case MachineRepresentation::kSimd1x4: // Fall through.
case MachineRepresentation::kSimd1x8: // Fall through.
case MachineRepresentation::kSimd1x16: // Fall through.
@@ -1287,8 +1293,10 @@ void InstructionSelector::VisitUnalignedStore(Node* node) {
case MachineRepresentation::kWord32:
opcode = kMipsUsw;
break;
+ case MachineRepresentation::kSimd128:
+ opcode = kMipsMsaSt;
+ break;
case MachineRepresentation::kWord64: // Fall through.
- case MachineRepresentation::kSimd128: // Fall through.
case MachineRepresentation::kSimd1x4: // Fall through.
case MachineRepresentation::kSimd1x8: // Fall through.
case MachineRepresentation::kSimd1x16: // Fall through.
@@ -2341,6 +2349,78 @@ void InstructionSelector::VisitS128Not(Node* node) {
VisitRR(this, kMipsS128Not, node);
}
+void InstructionSelector::VisitS1x4And(Node* node) {
+ VisitRRR(this, kMipsS128And, node);
+}
+
+void InstructionSelector::VisitS1x4Or(Node* node) {
+ VisitRRR(this, kMipsS128Or, node);
+}
+
+void InstructionSelector::VisitS1x4Xor(Node* node) {
+ VisitRRR(this, kMipsS128Xor, node);
+}
+
+void InstructionSelector::VisitS1x4Not(Node* node) {
+ VisitRR(this, kMipsS128Not, node);
+}
+
+void InstructionSelector::VisitS1x4AnyTrue(Node* node) {
+ VisitRR(this, kMipsS1x4AnyTrue, node);
+}
+
+void InstructionSelector::VisitS1x4AllTrue(Node* node) {
+ VisitRR(this, kMipsS1x4AllTrue, node);
+}
+
+void InstructionSelector::VisitS1x8And(Node* node) {
+ VisitRRR(this, kMipsS128And, node);
+}
+
+void InstructionSelector::VisitS1x8Or(Node* node) {
+ VisitRRR(this, kMipsS128Or, node);
+}
+
+void InstructionSelector::VisitS1x8Xor(Node* node) {
+ VisitRRR(this, kMipsS128Xor, node);
+}
+
+void InstructionSelector::VisitS1x8Not(Node* node) {
+ VisitRR(this, kMipsS128Not, node);
+}
+
+void InstructionSelector::VisitS1x8AnyTrue(Node* node) {
+ VisitRR(this, kMipsS1x8AnyTrue, node);
+}
+
+void InstructionSelector::VisitS1x8AllTrue(Node* node) {
+ VisitRR(this, kMipsS1x8AllTrue, node);
+}
+
+void InstructionSelector::VisitS1x16And(Node* node) {
+ VisitRRR(this, kMipsS128And, node);
+}
+
+void InstructionSelector::VisitS1x16Or(Node* node) {
+ VisitRRR(this, kMipsS128Or, node);
+}
+
+void InstructionSelector::VisitS1x16Xor(Node* node) {
+ VisitRRR(this, kMipsS128Xor, node);
+}
+
+void InstructionSelector::VisitS1x16Not(Node* node) {
+ VisitRR(this, kMipsS128Not, node);
+}
+
+void InstructionSelector::VisitS1x16AnyTrue(Node* node) {
+ VisitRR(this, kMipsS1x16AnyTrue, node);
+}
+
+void InstructionSelector::VisitS1x16AllTrue(Node* node) {
+ VisitRR(this, kMipsS1x16AllTrue, node);
+}
+
// static
MachineOperatorBuilder::Flags
InstructionSelector::SupportedMachineOperatorFlags() {
« no previous file with comments | « src/compiler/mips/instruction-codes-mips.h ('k') | src/compiler/mips64/code-generator-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698