| Index: src/mips/lithium-codegen-mips.cc
|
| diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc
|
| index 810b16e3489b380c4f2fc92a0c7a957f6ade5f2e..ea9c06cdc4a96621847694aa2b67750b1774b83f 100644
|
| --- a/src/mips/lithium-codegen-mips.cc
|
| +++ b/src/mips/lithium-codegen-mips.cc
|
| @@ -1509,7 +1509,11 @@ void LCodeGen::DoBitI(LBitI* instr) {
|
| __ Or(result, left, right);
|
| break;
|
| case Token::BIT_XOR:
|
| - __ Xor(result, left, right);
|
| + if (right_op->IsConstantOperand() && right.immediate() == int32_t(~0)) {
|
| + __ Nor(result, zero_reg, left);
|
| + } else {
|
| + __ Xor(result, left, right);
|
| + }
|
| break;
|
| default:
|
| UNREACHABLE();
|
| @@ -1787,13 +1791,6 @@ void LCodeGen::DoSeqStringSetChar(LSeqStringSetChar* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoBitNotI(LBitNotI* instr) {
|
| - Register input = ToRegister(instr->value());
|
| - Register result = ToRegister(instr->result());
|
| - __ Nor(result, zero_reg, Operand(input));
|
| -}
|
| -
|
| -
|
| void LCodeGen::DoThrow(LThrow* instr) {
|
| Register input_reg = EmitLoadRegister(instr->value(), at);
|
| __ push(input_reg);
|
|
|