| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 6ca8851337cc5350ff0ed64e4a0c87c0530b0c8f..0b704d07ef5749cf056d2584e84815f7e3b03a59 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -1669,7 +1669,11 @@ void LCodeGen::DoBitI(LBitI* instr) {
|
| __ orr(result, left, right);
|
| break;
|
| case Token::BIT_XOR:
|
| - __ eor(result, left, right);
|
| + if (right_op->IsConstantOperand() && right.immediate() == int32_t(~0)) {
|
| + __ mvn(result, Operand(left));
|
| + } else {
|
| + __ eor(result, left, right);
|
| + }
|
| break;
|
| default:
|
| UNREACHABLE();
|
| @@ -1953,13 +1957,6 @@ void LCodeGen::DoSeqStringSetChar(LSeqStringSetChar* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoBitNotI(LBitNotI* instr) {
|
| - Register input = ToRegister(instr->value());
|
| - Register result = ToRegister(instr->result());
|
| - __ mvn(result, Operand(input));
|
| -}
|
| -
|
| -
|
| void LCodeGen::DoThrow(LThrow* instr) {
|
| Register input_reg = EmitLoadRegister(instr->value(), ip);
|
| __ push(input_reg);
|
|
|