| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 85e9cbb92a5786ec1cb7440b9af2e76af28ce966..c2daec0a469a0b6872f6972cf5482b36ae38c500 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);
|
|
|