Index: src/mips/lithium-mips.cc |
diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc |
index 6483715abb7ce3a91dee075f37cc1a8f219b4005..d024c246e0ff6dba9d8890248cc40c3bc282c861 100644 |
--- a/src/mips/lithium-mips.cc |
+++ b/src/mips/lithium-mips.cc |
@@ -820,28 +820,6 @@ LInstruction* LChunkBuilder::DoDeoptimize(HDeoptimize* instr) { |
} |
-LInstruction* LChunkBuilder::DoBit(Token::Value op, |
- HBitwiseBinaryOperation* instr) { |
- if (instr->representation().IsInteger32()) { |
- ASSERT(instr->left()->representation().IsInteger32()); |
- ASSERT(instr->right()->representation().IsInteger32()); |
- |
- LOperand* left = UseRegisterAtStart(instr->LeastConstantOperand()); |
- LOperand* right = UseOrConstantAtStart(instr->MostConstantOperand()); |
- return DefineAsRegister(new LBitI(op, left, right)); |
- } else { |
- ASSERT(instr->representation().IsTagged()); |
- ASSERT(instr->left()->representation().IsTagged()); |
- ASSERT(instr->right()->representation().IsTagged()); |
- |
- LOperand* left = UseFixed(instr->left(), a1); |
- LOperand* right = UseFixed(instr->right(), a0); |
- LArithmeticT* result = new LArithmeticT(op, left, right); |
- return MarkAsCall(DefineFixed(result, v0), instr); |
- } |
-} |
- |
- |
LInstruction* LChunkBuilder::DoShift(Token::Value op, |
HBitwiseBinaryOperation* instr) { |
if (instr->representation().IsTagged()) { |
@@ -1242,8 +1220,24 @@ LInstruction* LChunkBuilder::DoShl(HShl* instr) { |
} |
-LInstruction* LChunkBuilder::DoBitAnd(HBitAnd* instr) { |
- return DoBit(Token::BIT_AND, instr); |
+LInstruction* LChunkBuilder::DoBitwise(HBitwise* instr) { |
+ if (instr->representation().IsInteger32()) { |
+ ASSERT(instr->left()->representation().IsInteger32()); |
+ ASSERT(instr->right()->representation().IsInteger32()); |
+ |
+ LOperand* left = UseRegisterAtStart(instr->LeastConstantOperand()); |
+ LOperand* right = UseOrConstantAtStart(instr->MostConstantOperand()); |
+ return DefineAsRegister(new LBitI(left, right)); |
+ } else { |
+ ASSERT(instr->representation().IsTagged()); |
+ ASSERT(instr->left()->representation().IsTagged()); |
+ ASSERT(instr->right()->representation().IsTagged()); |
+ |
+ LOperand* left = UseFixed(instr->left(), a1); |
+ LOperand* right = UseFixed(instr->right(), a0); |
+ LArithmeticT* result = new LArithmeticT(instr->op(), left, right); |
+ return MarkAsCall(DefineFixed(result, v0), instr); |
+ } |
} |
@@ -1254,16 +1248,6 @@ LInstruction* LChunkBuilder::DoBitNot(HBitNot* instr) { |
} |
-LInstruction* LChunkBuilder::DoBitOr(HBitOr* instr) { |
- return DoBit(Token::BIT_OR, instr); |
-} |
- |
- |
-LInstruction* LChunkBuilder::DoBitXor(HBitXor* instr) { |
- return DoBit(Token::BIT_XOR, instr); |
-} |
- |
- |
LInstruction* LChunkBuilder::DoDiv(HDiv* instr) { |
if (instr->representation().IsDouble()) { |
return DoArithmeticD(Token::DIV, instr); |