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 9df0af6cb989f264532ea4e228bc77c9ffcdecf4..9cc6f31dc35d21a6bd19cf432caa3e2f89fd1db7 100644 |
--- a/src/compiler/mips/instruction-selector-mips.cc |
+++ b/src/compiler/mips/instruction-selector-mips.cc |
@@ -294,6 +294,18 @@ void InstructionSelector::VisitWord32Or(Node* node) { |
void InstructionSelector::VisitWord32Xor(Node* node) { |
+ Int32BinopMatcher m(node); |
+ if (m.left().IsWord32Or() && CanCover(node, m.left().node()) && |
+ m.right().Is(-1)) { |
+ Int32BinopMatcher mleft(m.left().node()); |
+ if (!mleft.right().HasValue()) { |
+ MipsperandGenerator g(this); |
balazs.kilvady
2015/11/19 12:28:31
error: unknown type name 'MipsperandGenerator'; di
dusan.milosavljevic
2015/11/19 12:50:05
Done.
|
+ Emit(kMipsNor, g.DefineAsRegister(node), |
+ g.UseRegister(mleft.left().node()), |
+ g.UseRegister(mleft.right().node())); |
+ return; |
+ } |
+ } |
VisitBinop(this, node, kMipsXor); |
} |