Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(667)

Unified Diff: runtime/vm/intermediate_language_arm.cc

Issue 207063002: Refactor to support multiple outputs in location summary (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/intermediate_language.cc ('k') | runtime/vm/intermediate_language_ia32.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language_arm.cc
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc
index 4b6e7128d5d4836f752fdcc1df4b19f7006f24e0..d1d499694f67f532840b9674472c29d4a1ff7623 100644
--- a/runtime/vm/intermediate_language_arm.cc
+++ b/runtime/vm/intermediate_language_arm.cc
@@ -29,7 +29,7 @@ DECLARE_FLAG(bool, use_osr);
// on the stack and return the result in a fixed register R0.
LocationSummary* Instruction::MakeCallSummary() {
LocationSummary* result = new LocationSummary(0, 0, LocationSummary::kCall);
- result->set_out(Location::RegisterLocation(R0));
+ result->set_out(0, Location::RegisterLocation(R0));
return result;
}
@@ -129,7 +129,7 @@ LocationSummary* IfThenElseInstr::MakeLocationSummary(bool opt) const {
void IfThenElseInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- const Register result = locs()->out().reg();
+ const Register result = locs()->out(0).reg();
Location left = locs()->in(0);
Location right = locs()->in(1);
@@ -186,7 +186,7 @@ LocationSummary* ClosureCallInstr::MakeLocationSummary(bool opt) const {
const intptr_t kNumTemps = 1;
LocationSummary* result =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
- result->set_out(Location::RegisterLocation(R0));
+ result->set_out(0, Location::RegisterLocation(R0));
result->set_temp(0, Location::RegisterLocation(R4)); // Arg. descriptor.
return result;
}
@@ -219,7 +219,7 @@ LocationSummary* LoadLocalInstr::MakeLocationSummary(bool opt) const {
void LoadLocalInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ LoadFromOffset(kWord, result, FP, local().index() * kWordSize);
}
@@ -233,7 +233,7 @@ LocationSummary* StoreLocalInstr::MakeLocationSummary(bool opt) const {
void StoreLocalInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register value = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
ASSERT(result == value); // Assert that register assignment is correct.
__ str(value, Address(FP, local().index() * kWordSize));
}
@@ -248,8 +248,8 @@ LocationSummary* ConstantInstr::MakeLocationSummary(bool opt) const {
void ConstantInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
// The register allocator drops constant definitions that have no uses.
- if (!locs()->out().IsInvalid()) {
- Register result = locs()->out().reg();
+ if (!locs()->out(0).IsInvalid()) {
+ Register result = locs()->out(0).reg();
__ LoadObject(result, value());
}
}
@@ -263,7 +263,7 @@ LocationSummary* AssertAssignableInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RegisterLocation(R0)); // Value.
summary->set_in(1, Location::RegisterLocation(R2)); // Instantiator.
summary->set_in(2, Location::RegisterLocation(R1)); // Type arguments.
- summary->set_out(Location::RegisterLocation(R0));
+ summary->set_out(0, Location::RegisterLocation(R0));
return summary;
}
@@ -274,7 +274,7 @@ LocationSummary* AssertBooleanInstr::MakeLocationSummary(bool opt) const {
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(R0));
- locs->set_out(Location::RegisterLocation(R0));
+ locs->set_out(0, Location::RegisterLocation(R0));
return locs;
}
@@ -307,7 +307,7 @@ static void EmitAssertBoolean(Register reg,
void AssertBooleanInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register obj = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
EmitAssertBoolean(obj, token_pos(), deopt_id(), locs(), compiler);
ASSERT(obj == result);
@@ -338,7 +338,7 @@ LocationSummary* EqualityCompareInstr::MakeLocationSummary(bool opt) const {
locs->set_in(0, Location::RequiresFpuRegister());
locs->set_in(1, Location::RequiresFpuRegister());
locs->set_temp(0, Location::RequiresRegister());
- locs->set_out(Location::RequiresRegister());
+ locs->set_out(0, Location::RequiresRegister());
return locs;
}
if (operation_cid() == kDoubleCid) {
@@ -347,7 +347,7 @@ LocationSummary* EqualityCompareInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
locs->set_in(0, Location::RequiresFpuRegister());
locs->set_in(1, Location::RequiresFpuRegister());
- locs->set_out(Location::RequiresRegister());
+ locs->set_out(0, Location::RequiresRegister());
return locs;
}
if (operation_cid() == kSmiCid) {
@@ -360,7 +360,7 @@ LocationSummary* EqualityCompareInstr::MakeLocationSummary(bool opt) const {
locs->set_in(1, locs->in(0).IsConstant()
? Location::RequiresRegister()
: Location::RegisterOrConstant(right()));
- locs->set_out(Location::RequiresRegister());
+ locs->set_out(0, Location::RequiresRegister());
return locs;
}
UNREACHABLE();
@@ -493,7 +493,7 @@ void EqualityCompareInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
BranchLabels labels = { NULL, NULL, NULL };
Condition true_condition = EmitComparisonCode(compiler, labels);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
if (operation_cid() == kSmiCid) {
__ LoadObject(result, Bool::True(), true_condition);
__ LoadObject(result, Bool::False(), NegateCondition(true_condition));
@@ -580,7 +580,7 @@ LocationSummary* RelationalOpInstr::MakeLocationSummary(bool opt) const {
locs->set_in(1, Location::RequiresFpuRegister());
locs->set_temp(0, Location::RequiresRegister());
locs->set_temp(1, Location::RequiresRegister());
- locs->set_out(Location::RequiresRegister());
+ locs->set_out(0, Location::RequiresRegister());
return locs;
}
if (operation_cid() == kDoubleCid) {
@@ -588,7 +588,7 @@ LocationSummary* RelationalOpInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
ASSERT(operation_cid() == kSmiCid);
@@ -600,7 +600,7 @@ LocationSummary* RelationalOpInstr::MakeLocationSummary(bool opt) const {
summary->set_in(1, summary->in(0).IsConstant()
? Location::RequiresRegister()
: Location::RegisterOrConstant(right()));
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -621,7 +621,7 @@ void RelationalOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
BranchLabels labels = { NULL, NULL, NULL };
Condition true_condition = EmitComparisonCode(compiler, labels);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
if (operation_cid() == kSmiCid) {
__ LoadObject(result, Bool::True(), true_condition);
__ LoadObject(result, Bool::False(), NegateCondition(true_condition));
@@ -660,7 +660,7 @@ LocationSummary* NativeCallInstr::MakeLocationSummary(bool opt) const {
locs->set_temp(0, Location::RegisterLocation(R1));
locs->set_temp(1, Location::RegisterLocation(R2));
locs->set_temp(2, Location::RegisterLocation(R5));
- locs->set_out(Location::RegisterLocation(R0));
+ locs->set_out(0, Location::RegisterLocation(R0));
return locs;
}
@@ -669,7 +669,7 @@ void NativeCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
ASSERT(locs()->temp(0).reg() == R1);
ASSERT(locs()->temp(1).reg() == R2);
ASSERT(locs()->temp(2).reg() == R5);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
// Push the result place holder initialized to NULL.
__ PushObject(Object::ZoneHandle());
@@ -724,7 +724,7 @@ LocationSummary* StringFromCharCodeInstr::MakeLocationSummary(bool opt) const {
void StringFromCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register char_code = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ LoadImmediate(result,
reinterpret_cast<uword>(Symbols::PredefinedAddress()));
__ AddImmediate(result, Symbols::kNullCharCodeSymbolOffset * kWordSize);
@@ -743,7 +743,7 @@ LocationSummary* StringToCharCodeInstr::MakeLocationSummary(bool opt) const {
void StringToCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
ASSERT(cid_ == kOneByteStringCid);
Register str = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ ldr(result, FieldAddress(str, String::length_offset()));
__ cmp(result, ShifterOperand(Smi::RawValue(1)));
__ LoadImmediate(result, Smi::RawValue(-1), NE);
@@ -758,7 +758,7 @@ LocationSummary* StringInterpolateInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
summary->set_in(0, Location::RegisterLocation(R0));
- summary->set_out(Location::RegisterLocation(R0));
+ summary->set_out(0, Location::RegisterLocation(R0));
return summary;
}
@@ -774,7 +774,7 @@ void StringInterpolateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
kNumberOfArguments,
kNoArgumentNames,
locs());
- ASSERT(locs()->out().reg() == R0);
+ ASSERT(locs()->out(0).reg() == R0);
}
@@ -788,7 +788,7 @@ LocationSummary* LoadUntaggedInstr::MakeLocationSummary(bool opt) const {
void LoadUntaggedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register object = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ LoadFromOffset(kWord, result, object, offset() - kHeapObjectTag);
}
@@ -803,7 +803,7 @@ LocationSummary* LoadClassIdInstr::MakeLocationSummary(bool opt) const {
void LoadClassIdInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register object = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
Label load, done;
__ tst(object, ShifterOperand(kSmiTagMask));
__ b(&load, NE);
@@ -911,12 +911,12 @@ LocationSummary* LoadIndexedInstr::MakeLocationSummary(bool opt) const {
// Need register <= Q7 for float operations.
// TODO(fschneider): Add a register policy to specify a subset of
// registers.
- locs->set_out(Location::FpuRegisterLocation(Q7));
+ locs->set_out(0, Location::FpuRegisterLocation(Q7));
} else {
- locs->set_out(Location::RequiresFpuRegister());
+ locs->set_out(0, Location::RequiresFpuRegister());
}
} else {
- locs->set_out(Location::RequiresRegister());
+ locs->set_out(0, Location::RequiresRegister());
}
return locs;
}
@@ -968,7 +968,7 @@ void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
(representation() == kUnboxedFloat32x4) ||
(representation() == kUnboxedInt32x4) ||
(representation() == kUnboxedFloat64x2)) {
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dresult0 = EvenDRegisterOf(result);
DRegister dresult1 = OddDRegisterOf(result);
switch (class_id()) {
@@ -1003,7 +1003,7 @@ void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
return;
}
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
switch (class_id()) {
case kTypedDataInt8ArrayCid:
ASSERT(index_scale() == 1);
@@ -1615,7 +1615,7 @@ class StoreInstanceFieldSlowPath : public SlowPathCode {
const ExternalLabel label(cls_.ToCString(), stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
- locs->live_registers()->Remove(locs->out());
+ locs->live_registers()->Remove(locs->out(0));
compiler->SaveLiveRegisters(locs);
compiler->GenerateCall(Scanner::kNoSourcePos, // No token position.
@@ -1908,7 +1908,7 @@ LocationSummary* LoadStaticFieldInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -1920,7 +1920,7 @@ LocationSummary* LoadStaticFieldInstr::MakeLocationSummary(bool opt) const {
// This is safe only so long as LoadStaticFieldInstr cannot deoptimize.
void LoadStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register field = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ LoadFromOffset(kWord, result,
field, Field::value_offset() - kHeapObjectTag);
}
@@ -1958,7 +1958,7 @@ LocationSummary* InstanceOfInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RegisterLocation(R0));
summary->set_in(1, Location::RegisterLocation(R2));
summary->set_in(2, Location::RegisterLocation(R1));
- summary->set_out(Location::RegisterLocation(R0));
+ summary->set_out(0, Location::RegisterLocation(R0));
return summary;
}
@@ -1973,7 +1973,7 @@ void InstanceOfInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
type(),
negate_result(),
locs());
- ASSERT(locs()->out().reg() == R0);
+ ASSERT(locs()->out(0).reg() == R0);
}
@@ -1984,7 +1984,7 @@ LocationSummary* CreateArrayInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(kElementTypePos, Location::RegisterLocation(R1));
locs->set_in(kLengthPos, Location::RegisterLocation(R2));
- locs->set_out(Location::RegisterLocation(R0));
+ locs->set_out(0, Location::RegisterLocation(R0));
return locs;
}
@@ -1997,7 +1997,7 @@ void CreateArrayInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
&StubCode::AllocateArrayLabel(),
PcDescriptors::kOther,
locs());
- ASSERT(locs()->out().reg() == R0);
+ ASSERT(locs()->out(0).reg() == R0);
}
@@ -2015,14 +2015,14 @@ class BoxDoubleSlowPath : public SlowPathCode {
const ExternalLabel label(double_class.ToCString(), stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
- locs->live_registers()->Remove(locs->out());
+ locs->live_registers()->Remove(locs->out(0));
compiler->SaveLiveRegisters(locs);
compiler->GenerateCall(Scanner::kNoSourcePos, // No token position.
&label,
PcDescriptors::kOther,
locs);
- __ MoveRegister(locs->out().reg(), R0);
+ __ MoveRegister(locs->out(0).reg(), R0);
compiler->RestoreLiveRegisters(locs);
__ b(exit_label());
@@ -2047,14 +2047,14 @@ class BoxFloat32x4SlowPath : public SlowPathCode {
const ExternalLabel label(float32x4_class.ToCString(), stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
- locs->live_registers()->Remove(locs->out());
+ locs->live_registers()->Remove(locs->out(0));
compiler->SaveLiveRegisters(locs);
compiler->GenerateCall(Scanner::kNoSourcePos, // No token position.
&label,
PcDescriptors::kOther,
locs);
- __ mov(locs->out().reg(), ShifterOperand(R0));
+ __ mov(locs->out(0).reg(), ShifterOperand(R0));
compiler->RestoreLiveRegisters(locs);
__ b(exit_label());
@@ -2079,14 +2079,14 @@ class BoxFloat64x2SlowPath : public SlowPathCode {
const ExternalLabel label(float64x2_class.ToCString(), stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
- locs->live_registers()->Remove(locs->out());
+ locs->live_registers()->Remove(locs->out(0));
compiler->SaveLiveRegisters(locs);
compiler->GenerateCall(Scanner::kNoSourcePos, // No token position.
&label,
PcDescriptors::kOther,
locs);
- __ mov(locs->out().reg(), ShifterOperand(R0));
+ __ mov(locs->out(0).reg(), ShifterOperand(R0));
compiler->RestoreLiveRegisters(locs);
__ b(exit_label());
@@ -2116,7 +2116,7 @@ LocationSummary* LoadFieldInstr::MakeLocationSummary(bool opt) const {
: Location::FpuRegisterLocation(Q1));
locs->AddTemp(Location::RequiresRegister());
}
- locs->set_out(Location::RequiresRegister());
+ locs->set_out(0, Location::RequiresRegister());
return locs;
}
@@ -2124,8 +2124,8 @@ LocationSummary* LoadFieldInstr::MakeLocationSummary(bool opt) const {
void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register instance_reg = locs()->in(0).reg();
if (IsUnboxedLoad() && compiler->is_optimizing()) {
- DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
- DRegister result_odd = OddDRegisterOf(locs()->out().fpu_reg());
+ DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
+ DRegister result_odd = OddDRegisterOf(locs()->out(0).fpu_reg());
Register temp = locs()->temp(0).reg();
__ ldr(temp, FieldAddress(instance_reg, offset_in_bytes()));
intptr_t cid = field()->UnboxedFieldCid();
@@ -2158,7 +2158,7 @@ void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
}
Label done;
- Register result_reg = locs()->out().reg();
+ Register result_reg = locs()->out(0).reg();
if (IsPotentialUnboxedLoad()) {
Register temp = locs()->temp(1).reg();
DRegister value = EvenDRegisterOf(locs()->temp(0).fpu_reg());
@@ -2276,14 +2276,14 @@ LocationSummary* InstantiateTypeInstr::MakeLocationSummary(bool opt) const {
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(R0));
- locs->set_out(Location::RegisterLocation(R0));
+ locs->set_out(0, Location::RegisterLocation(R0));
return locs;
}
void InstantiateTypeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register instantiator_reg = locs()->in(0).reg();
- Register result_reg = locs()->out().reg();
+ Register result_reg = locs()->out(0).reg();
// 'instantiator_reg' is the instantiator TypeArguments object (or null).
// A runtime call to instantiate the type is required.
@@ -2308,7 +2308,7 @@ LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary(
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(R0));
- locs->set_out(Location::RegisterLocation(R0));
+ locs->set_out(0, Location::RegisterLocation(R0));
return locs;
}
@@ -2316,7 +2316,7 @@ LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary(
void InstantiateTypeArgumentsInstr::EmitNativeCode(
FlowGraphCompiler* compiler) {
Register instantiator_reg = locs()->in(0).reg();
- Register result_reg = locs()->out().reg();
+ Register result_reg = locs()->out(0).reg();
ASSERT(instantiator_reg == R0);
ASSERT(instantiator_reg == result_reg);
@@ -2376,14 +2376,14 @@ LocationSummary* AllocateContextInstr::MakeLocationSummary(bool opt) const {
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_temp(0, Location::RegisterLocation(R1));
- locs->set_out(Location::RegisterLocation(R0));
+ locs->set_out(0, Location::RegisterLocation(R0));
return locs;
}
void AllocateContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
ASSERT(locs()->temp(0).reg() == R1);
- ASSERT(locs()->out().reg() == R0);
+ ASSERT(locs()->out(0).reg() == R0);
__ LoadImmediate(R1, num_context_variables());
const ExternalLabel label("alloc_context",
@@ -2401,14 +2401,14 @@ LocationSummary* CloneContextInstr::MakeLocationSummary(bool opt) const {
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(R0));
- locs->set_out(Location::RegisterLocation(R0));
+ locs->set_out(0, Location::RegisterLocation(R0));
return locs;
}
void CloneContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register context_value = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ PushObject(Object::ZoneHandle()); // Make room for the result.
__ Push(context_value);
@@ -2536,7 +2536,7 @@ static void EmitSmiShiftLeft(FlowGraphCompiler* compiler,
const bool is_truncating = shift_left->is_truncating();
const LocationSummary& locs = *shift_left->locs();
Register left = locs.in(0).reg();
- Register result = locs.out().reg();
+ Register result = locs.out(0).reg();
Label* deopt = shift_left->CanDeoptimize() ?
compiler->AddDeoptStub(shift_left->deopt_id(), kDeoptBinarySmiOp) : NULL;
if (locs.in(1).IsConstant()) {
@@ -2658,7 +2658,7 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
summary->AddTemp(Location::RequiresRegister());
summary->AddTemp(Location::RequiresFpuRegister());
}
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
if (op_kind() == Token::kMOD) {
@@ -2666,7 +2666,7 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
summary->set_in(1, Location::RequiresRegister());
summary->AddTemp(Location::RequiresRegister());
summary->AddTemp(Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
summary->set_in(0, Location::RequiresRegister());
@@ -2677,7 +2677,7 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
}
// We make use of 3-operand instructions by not requiring result register
// to be identical to first input register as on Intel.
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -2690,7 +2690,7 @@ void BinarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
ASSERT(!is_truncating());
Register left = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
Label* deopt = NULL;
if (CanDeoptimize()) {
deopt = compiler->AddDeoptStub(deopt_id(), kDeoptBinarySmiOp);
@@ -3014,7 +3014,7 @@ LocationSummary* BoxDoubleInstr::MakeLocationSummary(bool opt) const {
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3023,7 +3023,7 @@ void BoxDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
BoxDoubleSlowPath* slow_path = new BoxDoubleSlowPath(this);
compiler->AddSlowPathCode(slow_path);
- const Register out_reg = locs()->out().reg();
+ const Register out_reg = locs()->out(0).reg();
const DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg());
__ TryAllocate(compiler->double_class(),
@@ -3047,7 +3047,7 @@ LocationSummary* UnboxDoubleInstr::MakeLocationSummary(bool opt) const {
? Location::WritableRegister()
: Location::RequiresRegister());
if (needs_temp) summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3055,7 +3055,7 @@ LocationSummary* UnboxDoubleInstr::MakeLocationSummary(bool opt) const {
void UnboxDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
const intptr_t value_cid = value()->Type()->ToCid();
const Register value = locs()->in(0).reg();
- const DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
+ const DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
if (value_cid == kDoubleCid) {
__ LoadDFromOffset(result, value, Double::value_offset() - kHeapObjectTag);
@@ -3092,7 +3092,7 @@ LocationSummary* BoxFloat32x4Instr::MakeLocationSummary(bool opt) const {
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3101,7 +3101,7 @@ void BoxFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
BoxFloat32x4SlowPath* slow_path = new BoxFloat32x4SlowPath(this);
compiler->AddSlowPathCode(slow_path);
- Register out_reg = locs()->out().reg();
+ Register out_reg = locs()->out(0).reg();
QRegister value = locs()->in(0).fpu_reg();
DRegister value_even = EvenDRegisterOf(value);
DRegister value_odd = OddDRegisterOf(value);
@@ -3130,7 +3130,7 @@ LocationSummary* UnboxFloat32x4Instr::MakeLocationSummary(bool opt) const {
ASSERT(kNumTemps == 1);
summary->set_temp(0, Location::RequiresRegister());
}
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3138,7 +3138,7 @@ LocationSummary* UnboxFloat32x4Instr::MakeLocationSummary(bool opt) const {
void UnboxFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
const intptr_t value_cid = value()->Type()->ToCid();
const Register value = locs()->in(0).reg();
- const QRegister result = locs()->out().fpu_reg();
+ const QRegister result = locs()->out(0).fpu_reg();
if (value_cid != kFloat32x4Cid) {
const Register temp = locs()->temp(0).reg();
@@ -3168,7 +3168,7 @@ LocationSummary* BoxFloat64x2Instr::MakeLocationSummary(bool opt) const {
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3177,7 +3177,7 @@ void BoxFloat64x2Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
BoxFloat64x2SlowPath* slow_path = new BoxFloat64x2SlowPath(this);
compiler->AddSlowPathCode(slow_path);
- Register out_reg = locs()->out().reg();
+ Register out_reg = locs()->out(0).reg();
QRegister value = locs()->in(0).fpu_reg();
DRegister value_even = EvenDRegisterOf(value);
DRegister value_odd = OddDRegisterOf(value);
@@ -3206,7 +3206,7 @@ LocationSummary* UnboxFloat64x2Instr::MakeLocationSummary(bool opt) const {
ASSERT(kNumTemps == 1);
summary->set_temp(0, Location::RequiresRegister());
}
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3214,7 +3214,7 @@ LocationSummary* UnboxFloat64x2Instr::MakeLocationSummary(bool opt) const {
void UnboxFloat64x2Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
const intptr_t value_cid = value()->Type()->ToCid();
const Register value = locs()->in(0).reg();
- const QRegister result = locs()->out().fpu_reg();
+ const QRegister result = locs()->out(0).fpu_reg();
if (value_cid != kFloat64x2Cid) {
const Register temp = locs()->temp(0).reg();
@@ -3244,7 +3244,7 @@ LocationSummary* BoxInt32x4Instr::MakeLocationSummary(bool opt) const {
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3263,14 +3263,14 @@ class BoxInt32x4SlowPath : public SlowPathCode {
const ExternalLabel label(int32x4_class.ToCString(), stub.EntryPoint());
LocationSummary* locs = instruction_->locs();
- locs->live_registers()->Remove(locs->out());
+ locs->live_registers()->Remove(locs->out(0));
compiler->SaveLiveRegisters(locs);
compiler->GenerateCall(Scanner::kNoSourcePos, // No token position.
&label,
PcDescriptors::kOther,
locs);
- __ mov(locs->out().reg(), ShifterOperand(R0));
+ __ mov(locs->out(0).reg(), ShifterOperand(R0));
compiler->RestoreLiveRegisters(locs);
__ b(exit_label());
@@ -3285,7 +3285,7 @@ void BoxInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
BoxInt32x4SlowPath* slow_path = new BoxInt32x4SlowPath(this);
compiler->AddSlowPathCode(slow_path);
- Register out_reg = locs()->out().reg();
+ Register out_reg = locs()->out(0).reg();
QRegister value = locs()->in(0).fpu_reg();
DRegister value_even = EvenDRegisterOf(value);
DRegister value_odd = OddDRegisterOf(value);
@@ -3313,7 +3313,7 @@ LocationSummary* UnboxInt32x4Instr::MakeLocationSummary(bool opt) const {
ASSERT(kNumTemps == 1);
summary->set_temp(0, Location::RequiresRegister());
}
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3321,7 +3321,7 @@ LocationSummary* UnboxInt32x4Instr::MakeLocationSummary(bool opt) const {
void UnboxInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
const intptr_t value_cid = value()->Type()->ToCid();
const Register value = locs()->in(0).reg();
- const QRegister result = locs()->out().fpu_reg();
+ const QRegister result = locs()->out(0).fpu_reg();
if (value_cid != kInt32x4Cid) {
const Register temp = locs()->temp(0).reg();
@@ -3349,7 +3349,7 @@ LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3357,7 +3357,7 @@ LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary(bool opt) const {
void BinaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
DRegister left = EvenDRegisterOf(locs()->in(0).fpu_reg());
DRegister right = EvenDRegisterOf(locs()->in(1).fpu_reg());
- DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
+ DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
switch (op_kind()) {
case Token::kADD: __ vaddd(result, left, right); break;
case Token::kSUB: __ vsubd(result, left, right); break;
@@ -3375,7 +3375,7 @@ LocationSummary* BinaryFloat32x4OpInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3383,7 +3383,7 @@ LocationSummary* BinaryFloat32x4OpInstr::MakeLocationSummary(bool opt) const {
void BinaryFloat32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
QRegister right = locs()->in(1).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
switch (op_kind()) {
case Token::kADD: __ vaddqs(result, left, right); break;
@@ -3402,7 +3402,7 @@ LocationSummary* BinaryFloat64x2OpInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3410,7 +3410,7 @@ LocationSummary* BinaryFloat64x2OpInstr::MakeLocationSummary(bool opt) const {
void BinaryFloat64x2OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
QRegister right = locs()->in(1).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister left0 = EvenDRegisterOf(left);
DRegister left1 = OddDRegisterOf(left);
@@ -3450,14 +3450,14 @@ LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
// Low (< Q7) Q registers are needed for the vcvtds and vmovs instructions.
summary->set_in(0, Location::FpuRegisterLocation(Q5));
- summary->set_out(Location::FpuRegisterLocation(Q6));
+ summary->set_out(0, Location::FpuRegisterLocation(Q6));
return summary;
}
void Simd32x4ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister value = locs()->in(0).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dresult0 = EvenDRegisterOf(result);
DRegister dresult1 = OddDRegisterOf(result);
SRegister sresult0 = EvenSRegisterOf(dresult0);
@@ -3531,7 +3531,7 @@ LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(bool opt) const {
// Low (< Q7) Q registers are needed for the vcvtds and vmovs instructions.
summary->set_in(0, Location::FpuRegisterLocation(Q4));
summary->set_in(1, Location::FpuRegisterLocation(Q5));
- summary->set_out(Location::FpuRegisterLocation(Q6));
+ summary->set_out(0, Location::FpuRegisterLocation(Q6));
return summary;
}
@@ -3539,7 +3539,7 @@ LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(bool opt) const {
void Simd32x4ShuffleMixInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
QRegister right = locs()->in(1).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dresult0 = EvenDRegisterOf(result);
DRegister dresult1 = OddDRegisterOf(result);
@@ -3586,7 +3586,7 @@ LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::FpuRegisterLocation(Q5));
summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3596,7 +3596,7 @@ void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
DRegister dvalue0 = EvenDRegisterOf(value);
DRegister dvalue1 = OddDRegisterOf(value);
- Register out = locs()->out().reg();
+ Register out = locs()->out(0).reg();
Register temp = locs()->temp(0).reg();
// X lane.
@@ -3630,7 +3630,7 @@ LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary(
summary->set_in(2, Location::RequiresFpuRegister());
summary->set_in(3, Location::RequiresFpuRegister());
// Low (< 7) Q registers are needed for the vcvtsd instruction.
- summary->set_out(Location::FpuRegisterLocation(Q6));
+ summary->set_out(0, Location::FpuRegisterLocation(Q6));
return summary;
}
@@ -3640,7 +3640,7 @@ void Float32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister q1 = locs()->in(1).fpu_reg();
QRegister q2 = locs()->in(2).fpu_reg();
QRegister q3 = locs()->in(3).fpu_reg();
- QRegister r = locs()->out().fpu_reg();
+ QRegister r = locs()->out(0).fpu_reg();
DRegister dr0 = EvenDRegisterOf(r);
DRegister dr1 = OddDRegisterOf(r);
@@ -3657,13 +3657,13 @@ LocationSummary* Float32x4ZeroInstr::MakeLocationSummary(bool opt) const {
const intptr_t kNumTemps = 0;
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
void Float32x4ZeroInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- QRegister q = locs()->out().fpu_reg();
+ QRegister q = locs()->out(0).fpu_reg();
__ veorq(q, q, q);
}
@@ -3674,14 +3674,14 @@ LocationSummary* Float32x4SplatInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
void Float32x4SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister value = locs()->in(0).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dvalue0 = EvenDRegisterOf(value);
@@ -3700,7 +3700,7 @@ LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3708,7 +3708,7 @@ LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(bool opt) const {
void Float32x4ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
QRegister right = locs()->in(1).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Equal:
@@ -3745,7 +3745,7 @@ LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3753,7 +3753,7 @@ LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(bool opt) const {
void Float32x4MinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
QRegister right = locs()->in(1).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Min:
@@ -3773,7 +3773,7 @@ LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
summary->set_temp(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3781,7 +3781,7 @@ LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(bool opt) const {
void Float32x4SqrtInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
QRegister temp = locs()->temp(0).fpu_reg();
switch (op_kind()) {
@@ -3806,7 +3806,7 @@ LocationSummary* Float32x4ScaleInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3814,7 +3814,7 @@ LocationSummary* Float32x4ScaleInstr::MakeLocationSummary(bool opt) const {
void Float32x4ScaleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
QRegister right = locs()->in(1).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Scale:
@@ -3833,14 +3833,14 @@ LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
void Float32x4ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Negate:
@@ -3862,7 +3862,7 @@ LocationSummary* Float32x4ClampInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
summary->set_in(2, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3871,7 +3871,7 @@ void Float32x4ClampInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
QRegister lower = locs()->in(1).fpu_reg();
QRegister upper = locs()->in(2).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
__ vminqs(result, left, upper);
__ vmaxqs(result, result, lower);
}
@@ -3885,7 +3885,7 @@ LocationSummary* Float32x4WithInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
// Low (< 7) Q registers are needed for the vmovs instruction.
- summary->set_out(Location::FpuRegisterLocation(Q6));
+ summary->set_out(0, Location::FpuRegisterLocation(Q6));
return summary;
}
@@ -3893,7 +3893,7 @@ LocationSummary* Float32x4WithInstr::MakeLocationSummary(bool opt) const {
void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister replacement = locs()->in(0).fpu_reg();
QRegister value = locs()->in(1).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dresult0 = EvenDRegisterOf(result);
DRegister dresult1 = OddDRegisterOf(result);
@@ -3931,14 +3931,14 @@ LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
void Float32x4ToInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister value = locs()->in(0).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
if (value != result) {
__ vmovq(result, value);
@@ -3952,7 +3952,7 @@ LocationSummary* Simd64x2ShuffleInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3963,7 +3963,7 @@ void Simd64x2ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
DRegister dvalue0 = EvenDRegisterOf(value);
DRegister dvalue1 = OddDRegisterOf(value);
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dresult0 = EvenDRegisterOf(result);
@@ -3984,13 +3984,13 @@ LocationSummary* Float64x2ZeroInstr::MakeLocationSummary(bool opt) const {
const intptr_t kNumTemps = 0;
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
void Float64x2ZeroInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- QRegister q = locs()->out().fpu_reg();
+ QRegister q = locs()->out(0).fpu_reg();
__ veorq(q, q, q);
}
@@ -4001,7 +4001,7 @@ LocationSummary* Float64x2SplatInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -4011,7 +4011,7 @@ void Float64x2SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
DRegister dvalue = EvenDRegisterOf(value);
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dresult0 = EvenDRegisterOf(result);
DRegister dresult1 = OddDRegisterOf(result);
@@ -4030,7 +4030,7 @@ LocationSummary* Float64x2ConstructorInstr::MakeLocationSummary(
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -4038,7 +4038,7 @@ LocationSummary* Float64x2ConstructorInstr::MakeLocationSummary(
void Float64x2ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister q0 = locs()->in(0).fpu_reg();
QRegister q1 = locs()->in(1).fpu_reg();
- QRegister r = locs()->out().fpu_reg();
+ QRegister r = locs()->out(0).fpu_reg();
DRegister d0 = EvenDRegisterOf(q0);
DRegister d1 = EvenDRegisterOf(q1);
@@ -4059,14 +4059,14 @@ LocationSummary* Float64x2ToFloat32x4Instr::MakeLocationSummary(
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
// Low (< 7) Q registers are needed for the vcvtsd instruction.
- summary->set_out(Location::FpuRegisterLocation(Q6));
+ summary->set_out(0, Location::FpuRegisterLocation(Q6));
return summary;
}
void Float64x2ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister q = locs()->in(0).fpu_reg();
- QRegister r = locs()->out().fpu_reg();
+ QRegister r = locs()->out(0).fpu_reg();
DRegister dq0 = EvenDRegisterOf(q);
DRegister dq1 = OddDRegisterOf(q);
@@ -4090,14 +4090,14 @@ LocationSummary* Float32x4ToFloat64x2Instr::MakeLocationSummary(
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
// Low (< 7) Q registers are needed for the vcvtsd instruction.
- summary->set_out(Location::FpuRegisterLocation(Q6));
+ summary->set_out(0, Location::FpuRegisterLocation(Q6));
return summary;
}
void Float32x4ToFloat64x2Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister q = locs()->in(0).fpu_reg();
- QRegister r = locs()->out().fpu_reg();
+ QRegister r = locs()->out(0).fpu_reg();
DRegister dq0 = EvenDRegisterOf(q);
@@ -4121,11 +4121,11 @@ LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(bool opt) const {
ASSERT(op_kind() == MethodRecognizer::kFloat64x2GetSignMask);
// Grabbing the S components means we need a low (< 7) Q.
summary->set_in(0, Location::FpuRegisterLocation(Q6));
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
summary->AddTemp(Location::RequiresRegister());
} else {
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
}
return summary;
}
@@ -4138,7 +4138,7 @@ void Float64x2ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
DRegister dvalue0 = EvenDRegisterOf(q);
DRegister dvalue1 = OddDRegisterOf(q);
- Register out = locs()->out().reg();
+ Register out = locs()->out(0).reg();
Register temp = locs()->temp(0).reg();
// Upper 32-bits of X lane.
@@ -4153,7 +4153,7 @@ void Float64x2ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
return;
}
ASSERT(representation() == kUnboxedFloat64x2);
- QRegister r = locs()->out().fpu_reg();
+ QRegister r = locs()->out(0).fpu_reg();
DRegister dvalue0 = EvenDRegisterOf(q);
DRegister dvalue1 = OddDRegisterOf(q);
@@ -4185,7 +4185,7 @@ LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -4197,7 +4197,7 @@ void Float64x2OneArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister right = locs()->in(1).fpu_reg();
DRegister right0 = EvenDRegisterOf(right);
DRegister right1 = OddDRegisterOf(right);
- QRegister out = locs()->out().fpu_reg();
+ QRegister out = locs()->out(0).fpu_reg();
ASSERT(left == out);
switch (op_kind()) {
@@ -4262,7 +4262,7 @@ LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary(
summary->set_in(3, Location::RequiresRegister());
summary->set_temp(0, Location::RequiresRegister());
// Low (< 7) Q register needed for the vmovsr instruction.
- summary->set_out(Location::FpuRegisterLocation(Q6));
+ summary->set_out(0, Location::FpuRegisterLocation(Q6));
return summary;
}
@@ -4273,7 +4273,7 @@ void Int32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register v2 = locs()->in(2).reg();
Register v3 = locs()->in(3).reg();
Register temp = locs()->temp(0).reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dresult0 = EvenDRegisterOf(result);
DRegister dresult1 = OddDRegisterOf(result);
SRegister sresult0 = EvenSRegisterOf(dresult0);
@@ -4305,14 +4305,14 @@ LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
// Low (< 7) Q registers are needed for the vmovrs instruction.
summary->set_in(0, Location::FpuRegisterLocation(Q6));
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
void Int32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister value = locs()->in(0).fpu_reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
DRegister dvalue0 = EvenDRegisterOf(value);
DRegister dvalue1 = OddDRegisterOf(value);
@@ -4352,7 +4352,7 @@ LocationSummary* Int32x4SelectInstr::MakeLocationSummary(bool opt) const {
summary->set_in(1, Location::RequiresFpuRegister());
summary->set_in(2, Location::RequiresFpuRegister());
summary->set_temp(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -4361,7 +4361,7 @@ void Int32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister mask = locs()->in(0).fpu_reg();
QRegister trueValue = locs()->in(1).fpu_reg();
QRegister falseValue = locs()->in(2).fpu_reg();
- QRegister out = locs()->out().fpu_reg();
+ QRegister out = locs()->out(0).fpu_reg();
QRegister temp = locs()->temp(0).fpu_reg();
// Copy mask.
@@ -4386,7 +4386,7 @@ LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresRegister());
// Low (< 7) Q register needed for the vmovsr instruction.
- summary->set_out(Location::FpuRegisterLocation(Q6));
+ summary->set_out(0, Location::FpuRegisterLocation(Q6));
return summary;
}
@@ -4394,7 +4394,7 @@ LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(bool opt) const {
void Int32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister mask = locs()->in(0).fpu_reg();
Register flag = locs()->in(1).reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
DRegister dresult0 = EvenDRegisterOf(result);
DRegister dresult1 = OddDRegisterOf(result);
@@ -4434,14 +4434,14 @@ LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
void Int32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister value = locs()->in(0).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
if (value != result) {
__ vmovq(result, value);
@@ -4456,7 +4456,7 @@ LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -4464,7 +4464,7 @@ LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(bool opt) const {
void BinaryInt32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
QRegister left = locs()->in(0).fpu_reg();
QRegister right = locs()->in(1).fpu_reg();
- QRegister result = locs()->out().fpu_reg();
+ QRegister result = locs()->out(0).fpu_reg();
switch (op_kind()) {
case Token::kBIT_AND: {
__ vandq(result, left, right);
@@ -4497,7 +4497,7 @@ LocationSummary* MathUnaryInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
summary->set_in(0, Location::FpuRegisterLocation(Q0));
- summary->set_out(Location::FpuRegisterLocation(Q0));
+ summary->set_out(0, Location::FpuRegisterLocation(Q0));
#if !defined(ARM_FLOAT_ABI_HARD)
summary->AddTemp(Location::RegisterLocation(R0));
summary->AddTemp(Location::RegisterLocation(R1));
@@ -4512,7 +4512,7 @@ LocationSummary* MathUnaryInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -4520,7 +4520,7 @@ LocationSummary* MathUnaryInstr::MakeLocationSummary(bool opt) const {
void MathUnaryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
if (kind() == MethodRecognizer::kMathSqrt) {
DRegister val = EvenDRegisterOf(locs()->in(0).fpu_reg());
- DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
+ DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
__ vsqrtd(result, val);
} else {
#if defined(ARM_FLOAT_ABI_HARD)
@@ -4548,7 +4548,7 @@ LocationSummary* MathMinMaxInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresFpuRegister());
// Reuse the left register so that code can be made shorter.
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
summary->set_temp(0, Location::RequiresRegister());
return summary;
}
@@ -4560,7 +4560,7 @@ LocationSummary* MathMinMaxInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RequiresRegister());
summary->set_in(1, Location::RequiresRegister());
// Reuse the left register so that code can be made shorter.
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -4573,7 +4573,7 @@ void MathMinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Label done, returns_nan, are_equal;
DRegister left = EvenDRegisterOf(locs()->in(0).fpu_reg());
DRegister right = EvenDRegisterOf(locs()->in(1).fpu_reg());
- DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
+ DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
Register temp = locs()->temp(0).reg();
__ vcmpd(left, right);
__ vmstat();
@@ -4613,7 +4613,7 @@ void MathMinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
ASSERT(result_cid() == kSmiCid);
Register left = locs()->in(0).reg();
Register right = locs()->in(1).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ cmp(left, ShifterOperand(right));
ASSERT(result == left);
if (is_min) {
@@ -4632,14 +4632,14 @@ LocationSummary* UnarySmiOpInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RequiresRegister());
// We make use of 3-operand instructions by not requiring result register
// to be identical to first input register as on Intel.
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
void UnarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register value = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
switch (op_kind()) {
case Token::kNEGATE: {
Label* deopt = compiler->AddDeoptStub(deopt_id(),
@@ -4665,13 +4665,13 @@ LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
void UnaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
+ DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg());
__ vnegd(result, value);
}
@@ -4683,14 +4683,14 @@ LocationSummary* SmiToDoubleInstr::MakeLocationSummary(bool opt) const {
LocationSummary* result =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
result->set_in(0, Location::WritableRegister());
- result->set_out(Location::RequiresFpuRegister());
+ result->set_out(0, Location::RequiresFpuRegister());
return result;
}
void SmiToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register value = locs()->in(0).reg();
- DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
+ DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
__ SmiUntag(value);
__ vmovsr(STMP, value);
__ vcvtdi(result, STMP);
@@ -4703,13 +4703,13 @@ LocationSummary* DoubleToIntegerInstr::MakeLocationSummary(bool opt) const {
LocationSummary* result =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
result->set_in(0, Location::RegisterLocation(R1));
- result->set_out(Location::RegisterLocation(R0));
+ result->set_out(0, Location::RegisterLocation(R0));
return result;
}
void DoubleToIntegerInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
Register value_obj = locs()->in(0).reg();
ASSERT(result == R0);
ASSERT(result != value_obj);
@@ -4755,14 +4755,14 @@ LocationSummary* DoubleToSmiInstr::MakeLocationSummary(bool opt) const {
LocationSummary* result = new LocationSummary(
kNumInputs, kNumTemps, LocationSummary::kNoCall);
result->set_in(0, Location::RequiresFpuRegister());
- result->set_out(Location::RequiresRegister());
+ result->set_out(0, Location::RequiresRegister());
return result;
}
void DoubleToSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Label* deopt = compiler->AddDeoptStub(deopt_id(), kDeoptDoubleToSmi);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg());
// First check for NaN. Checking for minint after the conversion doesn't work
// on ARM because vcvtid gives 0 for NaN.
@@ -4797,14 +4797,14 @@ LocationSummary* DoubleToFloatInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
// Low (<= Q7) Q registers are needed for the conversion instructions.
result->set_in(0, Location::RequiresFpuRegister());
- result->set_out(Location::FpuRegisterLocation(Q7));
+ result->set_out(0, Location::FpuRegisterLocation(Q7));
return result;
}
void DoubleToFloatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg());
- SRegister result = EvenSRegisterOf(EvenDRegisterOf(locs()->out().fpu_reg()));
+ SRegister result = EvenSRegisterOf(EvenDRegisterOf(locs()->out(0).fpu_reg()));
__ vcvtsd(result, value);
}
@@ -4816,14 +4816,14 @@ LocationSummary* FloatToDoubleInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
// Low (<= Q7) Q registers are needed for the conversion instructions.
result->set_in(0, Location::FpuRegisterLocation(Q7));
- result->set_out(Location::RequiresFpuRegister());
+ result->set_out(0, Location::RequiresFpuRegister());
return result;
}
void FloatToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
SRegister value = EvenSRegisterOf(EvenDRegisterOf(locs()->in(0).fpu_reg()));
- DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
+ DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
__ vcvtds(result, value);
}
@@ -4850,7 +4850,7 @@ LocationSummary* InvokeMathCFunctionInstr::MakeLocationSummary(bool opt) const {
}
result->AddTemp(Location::RegisterLocation(R3));
#endif
- result->set_out(Location::FpuRegisterLocation(Q0));
+ result->set_out(0, Location::FpuRegisterLocation(Q0));
return result;
}
@@ -4867,7 +4867,7 @@ void InvokeMathCFunctionInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
// }
DRegister base = EvenDRegisterOf(locs()->in(0).fpu_reg());
DRegister exp = EvenDRegisterOf(locs()->in(1).fpu_reg());
- DRegister result = EvenDRegisterOf(locs()->out().fpu_reg());
+ DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg());
Register temp = locs()->temp(0).reg();
DRegister saved_base = EvenDRegisterOf(locs()->temp(1).fpu_reg());
ASSERT((base == result) && (result != saved_base));
@@ -4924,7 +4924,7 @@ LocationSummary* MergedMathInstr::MakeLocationSummary(bool opt) const {
summary->set_temp(1, Location::RequiresFpuRegister());
summary->set_temp(2, Location::RequiresRegister()); // result_div.
summary->set_temp(3, Location::RequiresRegister()); // result_mod.
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
UNIMPLEMENTED();
@@ -4940,7 +4940,7 @@ void MergedMathInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
if (kind() == MergedMathInstr::kTruncDivMod) {
Register left = locs()->in(0).reg();
Register right = locs()->in(1).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
Range* right_range = InputAt(1)->definition()->range();
if ((right_range == NULL) || right_range->Overlaps(0, 0)) {
// Handle divide by zero in runtime.
@@ -5048,7 +5048,7 @@ void PolymorphicInstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
LocationSummary* BranchInstr::MakeLocationSummary(bool opt) const {
comparison()->InitializeLocationSummary(opt);
// Branches don't produce a result.
- comparison()->locs()->set_out(Location::NoLocation());
+ comparison()->locs()->set_out(0, Location::NoLocation());
return comparison()->locs();
}
@@ -5332,7 +5332,7 @@ LocationSummary* CurrentContextInstr::MakeLocationSummary(bool opt) const {
void CurrentContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- __ mov(locs()->out().reg(), ShifterOperand(CTX));
+ __ mov(locs()->out(0).reg(), ShifterOperand(CTX));
}
@@ -5344,7 +5344,7 @@ LocationSummary* StrictCompareInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(R0));
locs->set_in(1, Location::RegisterLocation(R1));
- locs->set_out(Location::RegisterLocation(R0));
+ locs->set_out(0, Location::RegisterLocation(R0));
return locs;
}
LocationSummary* locs =
@@ -5355,7 +5355,7 @@ LocationSummary* StrictCompareInstr::MakeLocationSummary(bool opt) const {
locs->set_in(1, locs->in(0).IsConstant()
? Location::RequiresRegister()
: Location::RegisterOrConstant(right()));
- locs->set_out(Location::RequiresRegister());
+ locs->set_out(0, Location::RequiresRegister());
return locs;
}
@@ -5393,7 +5393,7 @@ void StrictCompareInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
BranchLabels labels = { NULL, NULL, NULL };
Condition true_condition = EmitComparisonCode(compiler, labels);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ LoadObject(result, Bool::True(), true_condition);
__ LoadObject(result, Bool::False(), NegateCondition(true_condition));
}
@@ -5418,7 +5418,7 @@ LocationSummary* BooleanNegateInstr::MakeLocationSummary(bool opt) const {
void BooleanNegateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register value = locs()->in(0).reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
__ LoadObject(result, Bool::True());
__ cmp(result, ShifterOperand(value));
« no previous file with comments | « runtime/vm/intermediate_language.cc ('k') | runtime/vm/intermediate_language_ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698