diff options
Diffstat (limited to 'chromium/v8/src/compiler/arm/instruction-selector-arm.cc')
-rw-r--r-- | chromium/v8/src/compiler/arm/instruction-selector-arm.cc | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/chromium/v8/src/compiler/arm/instruction-selector-arm.cc b/chromium/v8/src/compiler/arm/instruction-selector-arm.cc index 75021eb9d31..391356e960b 100644 --- a/chromium/v8/src/compiler/arm/instruction-selector-arm.cc +++ b/chromium/v8/src/compiler/arm/instruction-selector-arm.cc @@ -2275,10 +2275,10 @@ void InstructionSelector::VisitAtomicExchange(Node* node) { InstructionOperand inputs[3]; size_t input_count = 0; inputs[input_count++] = g.UseUniqueRegister(base); - inputs[input_count++] = g.UseUniqueRegister(index); + inputs[input_count++] = g.UseRegister(index); inputs[input_count++] = g.UseUniqueRegister(value); InstructionOperand outputs[1]; - outputs[0] = g.UseUniqueRegister(node); + outputs[0] = g.DefineAsRegister(node); InstructionOperand temp[1]; temp[0] = g.TempRegister(); InstructionCode code = opcode | AddressingModeField::encode(addressing_mode); @@ -2312,16 +2312,15 @@ void InstructionSelector::VisitAtomicCompareExchange(Node* node) { InstructionOperand inputs[4]; size_t input_count = 0; inputs[input_count++] = g.UseUniqueRegister(base); - inputs[input_count++] = g.UseUniqueRegister(index); + inputs[input_count++] = g.UseRegister(index); inputs[input_count++] = g.UseUniqueRegister(old_value); inputs[input_count++] = g.UseUniqueRegister(new_value); InstructionOperand outputs[1]; - outputs[0] = g.UseUniqueRegister(node); - InstructionOperand temp[2]; + outputs[0] = g.DefineAsRegister(node); + InstructionOperand temp[1]; temp[0] = g.TempRegister(); - temp[1] = g.TempRegister(); InstructionCode code = opcode | AddressingModeField::encode(addressing_mode); - Emit(code, 1, outputs, input_count, inputs, 2, temp); + Emit(code, 1, outputs, input_count, inputs, 1, temp); } void InstructionSelector::VisitAtomicBinaryOperation( @@ -2352,15 +2351,16 @@ void InstructionSelector::VisitAtomicBinaryOperation( InstructionOperand inputs[3]; size_t input_count = 0; inputs[input_count++] = g.UseUniqueRegister(base); - inputs[input_count++] = g.UseUniqueRegister(index); + inputs[input_count++] = g.UseRegister(index); inputs[input_count++] = g.UseUniqueRegister(value); InstructionOperand outputs[1]; - outputs[0] = g.UseUniqueRegister(node); + outputs[0] = g.DefineAsRegister(node); InstructionOperand temps[2]; - temps[0] = g.TempRegister(); - temps[1] = g.TempRegister(); + size_t temp_count = 0; + temps[temp_count++] = g.TempRegister(); + temps[temp_count++] = g.TempRegister(); InstructionCode code = opcode | AddressingModeField::encode(addressing_mode); - Emit(code, 1, outputs, input_count, inputs, 2, temps); + Emit(code, 1, outputs, input_count, inputs, temp_count, temps); } #define VISIT_ATOMIC_BINOP(op) \ |