Index: src/compiler/mips64/instruction-selector-mips64.cc |
diff --git a/src/compiler/mips64/instruction-selector-mips64.cc b/src/compiler/mips64/instruction-selector-mips64.cc |
index c3284aa7ac6b0e08743c4997acac82311d3c6fa9..6fab8ab884c9d5caef00a87d0812cafcfc42e292 100644 |
--- a/src/compiler/mips64/instruction-selector-mips64.cc |
+++ b/src/compiler/mips64/instruction-selector-mips64.cc |
@@ -579,9 +579,17 @@ void InstructionSelector::VisitWord32ReverseBits(Node* node) { UNREACHABLE(); } |
void InstructionSelector::VisitWord64ReverseBits(Node* node) { UNREACHABLE(); } |
-void InstructionSelector::VisitWord64ReverseBytes(Node* node) { UNREACHABLE(); } |
+void InstructionSelector::VisitWord64ReverseBytes(Node* node) { |
+ Mips64OperandGenerator g(this); |
+ Emit(kMips64ByteSwap64, g.DefineAsRegister(node), |
+ g.UseRegister(node->InputAt(0))); |
+} |
-void InstructionSelector::VisitWord32ReverseBytes(Node* node) { UNREACHABLE(); } |
+void InstructionSelector::VisitWord32ReverseBytes(Node* node) { |
+ Mips64OperandGenerator g(this); |
+ Emit(kMips64ByteSwap32, g.DefineAsRegister(node), |
+ g.UseRegister(node->InputAt(0))); |
+} |
void InstructionSelector::VisitWord32Ctz(Node* node) { |
Mips64OperandGenerator g(this); |
@@ -2125,7 +2133,9 @@ InstructionSelector::SupportedMachineOperatorFlags() { |
MachineOperatorBuilder::kFloat64RoundTruncate | |
MachineOperatorBuilder::kFloat32RoundTruncate | |
MachineOperatorBuilder::kFloat64RoundTiesEven | |
- MachineOperatorBuilder::kFloat32RoundTiesEven; |
+ MachineOperatorBuilder::kFloat32RoundTiesEven | |
+ MachineOperatorBuilder::kWord32ReverseBytes | |
+ MachineOperatorBuilder::kWord64ReverseBytes; |
} |
// static |