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

Unified Diff: runtime/vm/intermediate_language_x64.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_mips.cc ('k') | runtime/vm/locations.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language_x64.cc
diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
index 20e8c490cfe8fe4f6658a3394955d2d6037c3de0..e36e0345e1050ea3f7ec57d3e7f5a4e01f8ce3b2 100644
--- a/runtime/vm/intermediate_language_x64.cc
+++ b/runtime/vm/intermediate_language_x64.cc
@@ -29,7 +29,7 @@ DECLARE_FLAG(bool, use_osr);
// on the stack and return the result in a fixed register RAX.
LocationSummary* Instruction::MakeCallSummary() {
LocationSummary* result = new LocationSummary(0, 0, LocationSummary::kCall);
- result->set_out(Location::RegisterLocation(RAX));
+ result->set_out(0, Location::RegisterLocation(RAX));
return result;
}
@@ -124,13 +124,13 @@ static bool IsPowerOfTwoKind(intptr_t v1, intptr_t v2) {
LocationSummary* IfThenElseInstr::MakeLocationSummary(bool opt) const {
comparison()->InitializeLocationSummary(opt);
// TODO(vegorov): support byte register constraints in the register allocator.
- comparison()->locs()->set_out(Location::RegisterLocation(RDX));
+ comparison()->locs()->set_out(0, Location::RegisterLocation(RDX));
return comparison()->locs();
}
void IfThenElseInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- ASSERT(locs()->out().reg() == RDX);
+ ASSERT(locs()->out(0).reg() == RDX);
// Clear upper part of the out register. We are going to use setcc on it
// which is a byte move.
@@ -205,7 +205,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.
__ movq(Address(RBP, local().index() * kWordSize), value);
}
@@ -221,8 +221,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(), PP);
}
}
@@ -236,7 +236,7 @@ LocationSummary* AssertAssignableInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RegisterLocation(RAX)); // Value.
summary->set_in(1, Location::RegisterLocation(RCX)); // Instantiator.
summary->set_in(2, Location::RegisterLocation(RDX)); // Type arguments.
- summary->set_out(Location::RegisterLocation(RAX));
+ summary->set_out(0, Location::RegisterLocation(RAX));
return summary;
}
@@ -247,7 +247,7 @@ LocationSummary* AssertBooleanInstr::MakeLocationSummary(bool opt) const {
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(RAX));
- locs->set_out(Location::RegisterLocation(RAX));
+ locs->set_out(0, Location::RegisterLocation(RAX));
return locs;
}
@@ -280,7 +280,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);
@@ -310,7 +310,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) {
@@ -324,7 +324,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();
@@ -464,7 +464,7 @@ void EqualityCompareInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Condition true_condition = EmitComparisonCode(compiler, labels);
EmitBranchOnCondition(compiler, true_condition, labels);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
Label done;
__ Bind(&is_false);
__ LoadObject(result, Bool::False(), PP);
@@ -537,7 +537,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);
@@ -549,7 +549,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;
}
@@ -571,7 +571,7 @@ void RelationalOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Condition true_condition = EmitComparisonCode(compiler, labels);
EmitBranchOnCondition(compiler, true_condition, labels);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
Label done;
__ Bind(&is_false);
__ LoadObject(result, Bool::False(), PP);
@@ -598,7 +598,7 @@ LocationSummary* NativeCallInstr::MakeLocationSummary(bool opt) const {
locs->set_temp(0, Location::RegisterLocation(RAX));
locs->set_temp(1, Location::RegisterLocation(RBX));
locs->set_temp(2, Location::RegisterLocation(R10));
- locs->set_out(Location::RegisterLocation(RAX));
+ locs->set_out(0, Location::RegisterLocation(RAX));
return locs;
}
@@ -607,7 +607,7 @@ void NativeCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
ASSERT(locs()->temp(0).reg() == RAX);
ASSERT(locs()->temp(1).reg() == RBX);
ASSERT(locs()->temp(2).reg() == R10);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
// Push the result place holder initialized to NULL.
__ PushObject(Object::ZoneHandle(), PP);
@@ -657,7 +657,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,
Immediate(reinterpret_cast<uword>(Symbols::PredefinedAddress())), PP);
__ movq(result, Address(result,
@@ -678,7 +678,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();
Label is_one, done;
__ movq(result, FieldAddress(str, String::length_offset()));
__ cmpq(result, Immediate(Smi::RawValue(1)));
@@ -698,7 +698,7 @@ LocationSummary* StringInterpolateInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
summary->set_in(0, Location::RegisterLocation(RAX));
- summary->set_out(Location::RegisterLocation(RAX));
+ summary->set_out(0, Location::RegisterLocation(RAX));
return summary;
}
@@ -714,7 +714,7 @@ void StringInterpolateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
kNumberOfArguments,
kNoArgumentNames,
locs());
- ASSERT(locs()->out().reg() == RAX);
+ ASSERT(locs()->out(0).reg() == RAX);
}
@@ -728,7 +728,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();
__ movq(result, FieldAddress(object, offset()));
}
@@ -743,7 +743,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;
__ testq(object, Immediate(kSmiTagMask));
__ j(NOT_ZERO, &load, Assembler::kNearJump);
@@ -847,9 +847,9 @@ LocationSummary* LoadIndexedInstr::MakeLocationSummary(bool opt) const {
(representation() == kUnboxedFloat32x4) ||
(representation() == kUnboxedInt32x4) ||
(representation() == kUnboxedFloat64x2)) {
- 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;
}
@@ -887,7 +887,7 @@ void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ SmiUntag(index.reg());
}
- XmmRegister result = locs()->out().fpu_reg();
+ XmmRegister result = locs()->out(0).fpu_reg();
if (class_id() == kTypedDataFloat32ArrayCid) {
// Load single precision float.
__ movss(result, element_address);
@@ -905,7 +905,7 @@ void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
if ((index_scale() == 1) && index.IsRegister()) {
__ SmiUntag(index.reg());
}
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
switch (class_id()) {
case kTypedDataInt8ArrayCid:
__ movsxb(result, element_address);
@@ -1507,7 +1507,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.
@@ -1776,7 +1776,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;
}
@@ -1788,7 +1788,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();
__ movq(result, FieldAddress(field, Field::value_offset()));
}
@@ -1825,7 +1825,7 @@ LocationSummary* InstanceOfInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RegisterLocation(RAX));
summary->set_in(1, Location::RegisterLocation(RCX));
summary->set_in(2, Location::RegisterLocation(RDX));
- summary->set_out(Location::RegisterLocation(RAX));
+ summary->set_out(0, Location::RegisterLocation(RAX));
return summary;
}
@@ -1840,7 +1840,7 @@ void InstanceOfInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
type(),
negate_result(),
locs());
- ASSERT(locs()->out().reg() == RAX);
+ ASSERT(locs()->out(0).reg() == RAX);
}
@@ -1851,7 +1851,7 @@ LocationSummary* CreateArrayInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(RBX));
locs->set_in(1, Location::RegisterLocation(R10));
- locs->set_out(Location::RegisterLocation(RAX));
+ locs->set_out(0, Location::RegisterLocation(RAX));
return locs;
}
@@ -1864,7 +1864,7 @@ void CreateArrayInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
&StubCode::AllocateArrayLabel(),
PcDescriptors::kOther,
locs());
- ASSERT(locs()->out().reg() == RAX);
+ ASSERT(locs()->out(0).reg() == RAX);
}
@@ -1882,14 +1882,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(), RAX);
+ __ MoveRegister(locs->out(0).reg(), RAX);
compiler->RestoreLiveRegisters(locs);
__ jmp(exit_label());
@@ -1914,14 +1914,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);
- __ MoveRegister(locs->out().reg(), RAX);
+ __ MoveRegister(locs->out(0).reg(), RAX);
compiler->RestoreLiveRegisters(locs);
__ jmp(exit_label());
@@ -1946,14 +1946,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);
- __ MoveRegister(locs->out().reg(), RAX);
+ __ MoveRegister(locs->out(0).reg(), RAX);
compiler->RestoreLiveRegisters(locs);
__ jmp(exit_label());
@@ -1983,7 +1983,7 @@ LocationSummary* LoadFieldInstr::MakeLocationSummary(bool opt) const {
: Location::FpuRegisterLocation(XMM1));
locs->AddTemp(Location::RequiresRegister());
}
- locs->set_out(Location::RequiresRegister());
+ locs->set_out(0, Location::RequiresRegister());
return locs;
}
@@ -1991,7 +1991,7 @@ LocationSummary* LoadFieldInstr::MakeLocationSummary(bool opt) const {
void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register instance_reg = locs()->in(0).reg();
if (IsUnboxedLoad() && compiler->is_optimizing()) {
- XmmRegister result = locs()->out().fpu_reg();
+ XmmRegister result = locs()->out(0).fpu_reg();
Register temp = locs()->temp(0).reg();
__ movq(temp, FieldAddress(instance_reg, offset_in_bytes()));
intptr_t cid = field()->UnboxedFieldCid();
@@ -2015,7 +2015,7 @@ void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
}
Label done;
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
if (IsPotentialUnboxedLoad()) {
Register temp = locs()->temp(1).reg();
XmmRegister value = locs()->temp(0).fpu_reg();
@@ -2113,14 +2113,14 @@ LocationSummary* InstantiateTypeInstr::MakeLocationSummary(bool opt) const {
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(RAX));
- locs->set_out(Location::RegisterLocation(RAX));
+ locs->set_out(0, Location::RegisterLocation(RAX));
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.
@@ -2145,7 +2145,7 @@ LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary(
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(RAX));
- locs->set_out(Location::RegisterLocation(RAX));
+ locs->set_out(0, Location::RegisterLocation(RAX));
return locs;
}
@@ -2153,7 +2153,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 == RAX);
ASSERT(instantiator_reg == result_reg);
@@ -2216,14 +2216,14 @@ LocationSummary* AllocateContextInstr::MakeLocationSummary(bool opt) const {
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_temp(0, Location::RegisterLocation(R10));
- locs->set_out(Location::RegisterLocation(RAX));
+ locs->set_out(0, Location::RegisterLocation(RAX));
return locs;
}
void AllocateContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
ASSERT(locs()->temp(0).reg() == R10);
- ASSERT(locs()->out().reg() == RAX);
+ ASSERT(locs()->out(0).reg() == RAX);
__ LoadImmediate(R10, Immediate(num_context_variables()), PP);
const ExternalLabel label("alloc_context",
@@ -2241,14 +2241,14 @@ LocationSummary* CloneContextInstr::MakeLocationSummary(bool opt) const {
LocationSummary* locs =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(RAX));
- locs->set_out(Location::RegisterLocation(RAX));
+ locs->set_out(0, Location::RegisterLocation(RAX));
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(), PP); // Make room for the result.
__ pushq(context_value);
@@ -2391,7 +2391,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();
ASSERT(left == result);
Label* deopt = shift_left->CanDeoptimize() ?
compiler->AddDeoptStub(shift_left->deopt_id(), kDeoptBinarySmiOp) : NULL;
@@ -2537,7 +2537,7 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
summary->set_in(1, Location::Constant(right_constant->value()));
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -2550,12 +2550,12 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
ConstantInstr* right_constant = right()->definition()->AsConstant();
summary->set_in(1, Location::Constant(right_constant->value()));
summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
} else {
// Both inputs must be writable because they will be untagged.
summary->set_in(0, Location::RegisterLocation(RAX));
summary->set_in(1, Location::WritableRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
// Will be used for sign extension and division.
summary->set_temp(0, Location::RegisterLocation(RDX));
}
@@ -2567,7 +2567,7 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
// Both inputs must be writable because they will be untagged.
summary->set_in(0, Location::RegisterLocation(RDX));
summary->set_in(1, Location::WritableRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
// Will be used for sign extension and division.
summary->set_temp(0, Location::RegisterLocation(RAX));
return summary;
@@ -2577,7 +2577,7 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
summary->set_in(1, Location::FixedRegisterOrSmiConstant(right(), RCX));
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
} else if (op_kind() == Token::kSHL) {
const intptr_t kNumTemps = 0;
@@ -2588,7 +2588,7 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
if (!is_truncating()) {
summary->AddTemp(Location::RequiresRegister());
}
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
} else {
const intptr_t kNumTemps = 0;
@@ -2601,7 +2601,7 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const {
} else {
summary->set_in(1, Location::PrefersRegister());
}
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
}
@@ -2614,7 +2614,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();
ASSERT(left == result);
Label* deopt = NULL;
if (CanDeoptimize()) {
@@ -3017,7 +3017,7 @@ LocationSummary* BoxDoubleInstr::MakeLocationSummary(bool opt) const {
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3026,7 +3026,7 @@ void BoxDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
BoxDoubleSlowPath* slow_path = new BoxDoubleSlowPath(this);
compiler->AddSlowPathCode(slow_path);
- Register out_reg = locs()->out().reg();
+ Register out_reg = locs()->out(0).reg();
XmmRegister value = locs()->in(0).fpu_reg();
__ TryAllocate(compiler->double_class(),
@@ -3048,7 +3048,7 @@ LocationSummary* UnboxDoubleInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, needs_writable_input
? Location::WritableRegister()
: Location::RequiresRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3056,7 +3056,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 XmmRegister result = locs()->out().fpu_reg();
+ const XmmRegister result = locs()->out(0).fpu_reg();
if (value_cid == kDoubleCid) {
__ movsd(result, FieldAddress(value, Double::value_offset()));
@@ -3088,7 +3088,7 @@ LocationSummary* BoxFloat32x4Instr::MakeLocationSummary(bool opt) const {
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3097,7 +3097,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();
XmmRegister value = locs()->in(0).fpu_reg();
__ TryAllocate(compiler->float32x4_class(),
@@ -3121,7 +3121,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 XmmRegister result = locs()->out().fpu_reg();
+ const XmmRegister result = locs()->out(0).fpu_reg();
if (value_cid != kFloat32x4Cid) {
Label* deopt = compiler->AddDeoptStub(deopt_id_, kDeoptCheckClass);
@@ -3142,7 +3142,7 @@ LocationSummary* BoxFloat64x2Instr::MakeLocationSummary(bool opt) const {
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3151,7 +3151,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();
XmmRegister value = locs()->in(0).fpu_reg();
__ TryAllocate(compiler->float64x2_class(),
@@ -3171,7 +3171,7 @@ LocationSummary* UnboxFloat64x2Instr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3179,7 +3179,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 XmmRegister result = locs()->out().fpu_reg();
+ const XmmRegister result = locs()->out(0).fpu_reg();
if (value_cid != kFloat64x2Cid) {
Label* deopt = compiler->AddDeoptStub(deopt_id_, kDeoptCheckClass);
@@ -3200,7 +3200,7 @@ LocationSummary* BoxInt32x4Instr::MakeLocationSummary(bool opt) const {
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
@@ -3219,14 +3219,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);
- __ MoveRegister(locs->out().reg(), RAX);
+ __ MoveRegister(locs->out(0).reg(), RAX);
compiler->RestoreLiveRegisters(locs);
__ jmp(exit_label());
@@ -3241,7 +3241,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();
XmmRegister value = locs()->in(0).fpu_reg();
__ TryAllocate(compiler->int32x4_class(),
@@ -3260,7 +3260,7 @@ LocationSummary* UnboxInt32x4Instr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -3268,7 +3268,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 XmmRegister result = locs()->out().fpu_reg();
+ const XmmRegister result = locs()->out(0).fpu_reg();
if (value_cid != kInt32x4Cid) {
Label* deopt = compiler->AddDeoptStub(deopt_id_, kDeoptCheckClass);
@@ -3288,7 +3288,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3297,7 +3297,7 @@ void BinaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case Token::kADD: __ addsd(left, right); break;
@@ -3316,7 +3316,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3325,7 +3325,7 @@ void BinaryFloat32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case Token::kADD: __ addps(left, right); break;
@@ -3344,7 +3344,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3353,7 +3353,7 @@ void BinaryFloat64x2OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case Token::kADD: __ addpd(left, right); break;
@@ -3371,7 +3371,7 @@ LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3379,7 +3379,7 @@ LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(bool opt) const {
void Simd32x4ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister value = locs()->in(0).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == value);
+ ASSERT(locs()->out(0).fpu_reg() == value);
switch (op_kind()) {
case MethodRecognizer::kFloat32x4ShuffleX:
@@ -3414,7 +3414,7 @@ LocationSummary* Simd32x4ShuffleMixInstr::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;
}
@@ -3423,7 +3423,7 @@ void Simd32x4ShuffleMixInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case MethodRecognizer::kFloat32x4ShuffleMix:
case MethodRecognizer::kInt32x4ShuffleMix:
@@ -3440,14 +3440,14 @@ LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister value = locs()->in(0).fpu_reg();
- Register out = locs()->out().reg();
+ Register out = locs()->out(0).reg();
__ movmskps(out, value);
__ SmiTag(out);
@@ -3464,7 +3464,7 @@ LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary(
summary->set_in(1, Location::RequiresFpuRegister());
summary->set_in(2, Location::RequiresFpuRegister());
summary->set_in(3, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3474,7 +3474,7 @@ void Float32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister v1 = locs()->in(1).fpu_reg();
XmmRegister v2 = locs()->in(2).fpu_reg();
XmmRegister v3 = locs()->in(3).fpu_reg();
- ASSERT(v0 == locs()->out().fpu_reg());
+ ASSERT(v0 == locs()->out(0).fpu_reg());
__ AddImmediate(RSP, Immediate(-16), PP);
__ cvtsd2ss(v0, v0);
__ movss(Address(RSP, 0), v0);
@@ -3497,13 +3497,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) {
- XmmRegister value = locs()->out().fpu_reg();
+ XmmRegister value = locs()->out(0).fpu_reg();
__ xorps(value, value);
}
@@ -3514,14 +3514,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
void Float32x4SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- XmmRegister value = locs()->out().fpu_reg();
- ASSERT(locs()->in(0).fpu_reg() == locs()->out().fpu_reg());
+ XmmRegister value = locs()->out(0).fpu_reg();
+ ASSERT(locs()->in(0).fpu_reg() == locs()->out(0).fpu_reg());
// Convert to Float32.
__ cvtsd2ss(value, value);
// Splat across all lanes.
@@ -3536,7 +3536,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3545,7 +3545,7 @@ void Float32x4ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Equal:
@@ -3579,7 +3579,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3588,7 +3588,7 @@ void Float32x4MinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Min:
@@ -3609,7 +3609,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3618,7 +3618,7 @@ void Float32x4ScaleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Scale:
@@ -3637,7 +3637,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3645,7 +3645,7 @@ LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(bool opt) const {
void Float32x4SqrtInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Sqrt:
@@ -3668,7 +3668,7 @@ LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3676,7 +3676,7 @@ LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(bool opt) const {
void Float32x4ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
switch (op_kind()) {
case MethodRecognizer::kFloat32x4Negate:
__ negateps(left);
@@ -3697,7 +3697,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3706,7 +3706,7 @@ void Float32x4ClampInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister lower = locs()->in(1).fpu_reg();
XmmRegister upper = locs()->in(2).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == left);
+ ASSERT(locs()->out(0).fpu_reg() == left);
__ minps(left, upper);
__ maxps(left, lower);
}
@@ -3719,7 +3719,7 @@ LocationSummary* Float32x4WithInstr::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;
}
@@ -3728,7 +3728,7 @@ void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister replacement = locs()->in(0).fpu_reg();
XmmRegister value = locs()->in(1).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == replacement);
+ ASSERT(locs()->out(0).fpu_reg() == replacement);
switch (op_kind()) {
case MethodRecognizer::kFloat32x4WithX:
@@ -3786,7 +3786,7 @@ LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3802,7 +3802,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3810,7 +3810,7 @@ LocationSummary* Simd64x2ShuffleInstr::MakeLocationSummary(bool opt) const {
void Simd64x2ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister value = locs()->in(0).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == value);
+ ASSERT(locs()->out(0).fpu_reg() == value);
switch (op_kind()) {
case MethodRecognizer::kFloat64x2GetX:
// nop.
@@ -3828,13 +3828,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) {
- XmmRegister value = locs()->out().fpu_reg();
+ XmmRegister value = locs()->out(0).fpu_reg();
__ xorpd(value, value);
}
@@ -3845,13 +3845,13 @@ LocationSummary* Float64x2SplatInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
void Float64x2SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- XmmRegister value = locs()->out().fpu_reg();
+ XmmRegister value = locs()->out(0).fpu_reg();
__ shufpd(value, value, Immediate(0x0));
}
@@ -3864,7 +3864,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -3872,7 +3872,7 @@ LocationSummary* Float64x2ConstructorInstr::MakeLocationSummary(
void Float64x2ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister v0 = locs()->in(0).fpu_reg();
XmmRegister v1 = locs()->in(1).fpu_reg();
- ASSERT(v0 == locs()->out().fpu_reg());
+ ASSERT(v0 == locs()->out(0).fpu_reg());
__ AddImmediate(RSP, Immediate(-16), PP);
__ movsd(Address(RSP, 0), v0);
__ movsd(Address(RSP, 8), v1);
@@ -3888,13 +3888,13 @@ LocationSummary* Float64x2ToFloat32x4Instr::MakeLocationSummary(
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
void Float64x2ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
- XmmRegister value = locs()->out().fpu_reg();
+ XmmRegister value = locs()->out(0).fpu_reg();
__ cvtpd2ps(value, value);
}
@@ -3906,13 +3906,13 @@ LocationSummary* Float32x4ToFloat64x2Instr::MakeLocationSummary(
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
void Float32x4ToFloat64x2Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
- XmmRegister value = locs()->out().fpu_reg();
+ XmmRegister value = locs()->out(0).fpu_reg();
__ cvtps2pd(value, value);
}
@@ -3925,10 +3925,10 @@ LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RequiresFpuRegister());
if (representation() == kTagged) {
ASSERT(op_kind() == MethodRecognizer::kFloat64x2GetSignMask);
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
} else {
ASSERT(representation() == kUnboxedFloat64x2);
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
}
return summary;
}
@@ -3938,7 +3938,7 @@ void Float64x2ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
ASSERT((op_kind() == MethodRecognizer::kFloat64x2GetSignMask) ||
- (locs()->out().fpu_reg() == left));
+ (locs()->out(0).fpu_reg() == left));
switch (op_kind()) {
case MethodRecognizer::kFloat64x2Negate:
@@ -3951,8 +3951,8 @@ void Float64x2ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ sqrtpd(left);
break;
case MethodRecognizer::kFloat64x2GetSignMask:
- __ movmskpd(locs()->out().reg(), left);
- __ SmiTag(locs()->out().reg());
+ __ movmskpd(locs()->out(0).reg(), left);
+ __ SmiTag(locs()->out(0).reg());
break;
default: UNREACHABLE();
}
@@ -3966,7 +3966,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;
}
@@ -3974,7 +3974,7 @@ LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(bool opt) const {
void Float64x2OneArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT((locs()->out().fpu_reg() == left));
+ ASSERT((locs()->out(0).fpu_reg() == left));
switch (op_kind()) {
case MethodRecognizer::kFloat64x2Scale:
@@ -4023,7 +4023,7 @@ LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary(
summary->set_in(2, Location::RequiresRegister());
summary->set_in(3, Location::RequiresRegister());
summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::RequiresFpuRegister());
+ summary->set_out(0, Location::RequiresFpuRegister());
return summary;
}
@@ -4034,7 +4034,7 @@ void Int32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register v2 = locs()->in(2).reg();
Register v3 = locs()->in(3).reg();
Register temp = locs()->temp(0).reg();
- XmmRegister result = locs()->out().fpu_reg();
+ XmmRegister result = locs()->out(0).fpu_reg();
Label x_false, x_done;
Label y_false, y_done;
Label z_false, z_done;
@@ -4088,14 +4088,14 @@ LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
return summary;
}
void Int32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister value = locs()->in(0).fpu_reg();
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
Label done;
Label non_zero;
__ AddImmediate(RSP, Immediate(-16), PP);
@@ -4136,7 +4136,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -4145,7 +4145,7 @@ void Int32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister mask = locs()->in(0).fpu_reg();
XmmRegister trueValue = locs()->in(1).fpu_reg();
XmmRegister falseValue = locs()->in(2).fpu_reg();
- XmmRegister out = locs()->out().fpu_reg();
+ XmmRegister out = locs()->out(0).fpu_reg();
XmmRegister temp = locs()->temp(0).fpu_reg();
ASSERT(out == mask);
// Copy mask.
@@ -4169,7 +4169,7 @@ LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(bool opt) const {
summary->set_in(0, Location::RequiresFpuRegister());
summary->set_in(1, Location::RequiresRegister());
summary->set_temp(0, Location::RequiresRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -4178,7 +4178,7 @@ void Int32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister mask = locs()->in(0).fpu_reg();
Register flag = locs()->in(1).reg();
Register temp = locs()->temp(0).reg();
- ASSERT(mask == locs()->out().fpu_reg());
+ ASSERT(mask == locs()->out(0).fpu_reg());
__ AddImmediate(RSP, Immediate(-16), PP);
// Copy mask to stack.
__ movups(Address(RSP, 0), mask);
@@ -4233,7 +4233,7 @@ LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -4250,7 +4250,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::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
@@ -4258,7 +4258,7 @@ LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(bool opt) const {
void BinaryInt32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- ASSERT(left == locs()->out().fpu_reg());
+ ASSERT(left == locs()->out(0).fpu_reg());
switch (op_kind()) {
case Token::kBIT_AND: {
__ andps(left, right);
@@ -4298,7 +4298,7 @@ LocationSummary* MathUnaryInstr::MakeLocationSummary(bool opt) const {
// R13 is chosen because it is callee saved so we do not need to back it
// up before calling into the runtime.
summary->set_temp(0, Location::RegisterLocation(R13));
- summary->set_out(Location::FpuRegisterLocation(XMM1));
+ summary->set_out(0, Location::FpuRegisterLocation(XMM1));
return summary;
}
ASSERT(kind() == MethodRecognizer::kMathSqrt);
@@ -4307,14 +4307,14 @@ 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;
}
void MathUnaryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
if (kind() == MethodRecognizer::kMathSqrt) {
- __ sqrtsd(locs()->out().fpu_reg(), locs()->in(0).fpu_reg());
+ __ sqrtsd(locs()->out(0).fpu_reg(), locs()->in(0).fpu_reg());
} else {
ASSERT((kind() == MethodRecognizer::kMathSin) ||
(kind() == MethodRecognizer::kMathCos));
@@ -4323,7 +4323,7 @@ void MathUnaryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ ReserveAlignedFrameSpace(0);
__ movaps(XMM0, locs()->in(0).fpu_reg());
__ CallRuntime(TargetFunction(), InputCount());
- __ movaps(locs()->out().fpu_reg(), XMM0);
+ __ movaps(locs()->out(0).fpu_reg(), XMM0);
// Restore RSP.
__ movq(RSP, locs()->temp(0).reg());
}
@@ -4340,7 +4340,7 @@ LocationSummary* UnarySmiOpInstr::MakeLocationSummary(bool opt) const {
void UnarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Register value = locs()->in(0).reg();
- ASSERT(value == locs()->out().reg());
+ ASSERT(value == locs()->out(0).reg());
switch (op_kind()) {
case Token::kNEGATE: {
Label* deopt = compiler->AddDeoptStub(deopt_id(),
@@ -4369,14 +4369,14 @@ LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary(bool opt) const {
LocationSummary* summary =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::RequiresFpuRegister());
- summary->set_out(Location::SameAsFirstInput());
+ summary->set_out(0, Location::SameAsFirstInput());
return summary;
}
void UnaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister value = locs()->in(0).fpu_reg();
- ASSERT(locs()->out().fpu_reg() == value);
+ ASSERT(locs()->out(0).fpu_reg() == value);
__ DoubleNegate(value);
}
@@ -4390,7 +4390,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;
}
@@ -4402,7 +4402,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;
}
@@ -4415,7 +4415,7 @@ void MathMinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Label done, returns_nan, are_equal;
XmmRegister left = locs()->in(0).fpu_reg();
XmmRegister right = locs()->in(1).fpu_reg();
- XmmRegister result = locs()->out().fpu_reg();
+ XmmRegister result = locs()->out(0).fpu_reg();
Register temp = locs()->temp(0).reg();
__ comisd(left, right);
__ j(PARITY_EVEN, &returns_nan, Assembler::kNearJump);
@@ -4459,7 +4459,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();
__ cmpq(left, right);
ASSERT(result == left);
if (is_min) {
@@ -4476,14 +4476,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();
- FpuRegister result = locs()->out().fpu_reg();
+ FpuRegister result = locs()->out(0).fpu_reg();
__ SmiUntag(value);
__ cvtsi2sd(result, value);
}
@@ -4495,14 +4495,14 @@ LocationSummary* DoubleToIntegerInstr::MakeLocationSummary(bool opt) const {
LocationSummary* result =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
result->set_in(0, Location::RegisterLocation(RCX));
- result->set_out(Location::RegisterLocation(RAX));
+ result->set_out(0, Location::RegisterLocation(RAX));
result->set_temp(0, Location::RegisterLocation(RBX));
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();
Register temp = locs()->temp(0).reg();
XmmRegister value_double = XMM0;
@@ -4546,7 +4546,7 @@ LocationSummary* DoubleToSmiInstr::MakeLocationSummary(bool opt) const {
LocationSummary* result = new LocationSummary(
kNumInputs, kNumTemps, LocationSummary::kNoCall);
result->set_in(0, Location::RequiresFpuRegister());
- result->set_out(Location:: Location::RequiresRegister());
+ result->set_out(0, Location:: Location::RequiresRegister());
result->set_temp(0, Location::RequiresRegister());
return result;
}
@@ -4554,7 +4554,7 @@ LocationSummary* DoubleToSmiInstr::MakeLocationSummary(bool opt) const {
void DoubleToSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Label* deopt = compiler->AddDeoptStub(deopt_id(), kDeoptDoubleToSmi);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
XmmRegister value = locs()->in(0).fpu_reg();
Register temp = locs()->temp(0).reg();
@@ -4578,14 +4578,14 @@ LocationSummary* DoubleToDoubleInstr::MakeLocationSummary(bool opt) const {
LocationSummary* result =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
result->set_in(0, Location::RequiresFpuRegister());
- result->set_out(Location::RequiresFpuRegister());
+ result->set_out(0, Location::RequiresFpuRegister());
return result;
}
void DoubleToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
XmmRegister value = locs()->in(0).fpu_reg();
- XmmRegister result = locs()->out().fpu_reg();
+ XmmRegister result = locs()->out(0).fpu_reg();
switch (recognized_kind()) {
case MethodRecognizer::kDoubleTruncate:
__ roundsd(result, value, Assembler::kRoundToZero);
@@ -4608,13 +4608,13 @@ LocationSummary* DoubleToFloatInstr::MakeLocationSummary(bool opt) const {
LocationSummary* result =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
result->set_in(0, Location::RequiresFpuRegister());
- result->set_out(Location::SameAsFirstInput());
+ result->set_out(0, Location::SameAsFirstInput());
return result;
}
void DoubleToFloatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- __ cvtsd2ss(locs()->out().fpu_reg(), locs()->in(0).fpu_reg());
+ __ cvtsd2ss(locs()->out(0).fpu_reg(), locs()->in(0).fpu_reg());
}
@@ -4624,13 +4624,13 @@ LocationSummary* FloatToDoubleInstr::MakeLocationSummary(bool opt) const {
LocationSummary* result =
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
result->set_in(0, Location::RequiresFpuRegister());
- result->set_out(Location::SameAsFirstInput());
+ result->set_out(0, Location::SameAsFirstInput());
return result;
}
void FloatToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- __ cvtss2sd(locs()->out().fpu_reg(), locs()->in(0).fpu_reg());
+ __ cvtss2sd(locs()->out(0).fpu_reg(), locs()->in(0).fpu_reg());
}
@@ -4655,7 +4655,7 @@ LocationSummary* InvokeMathCFunctionInstr::MakeLocationSummary(bool opt) const {
// Temp index 2.
result->AddTemp(Location::FpuRegisterLocation(XMM4));
}
- result->set_out(Location::FpuRegisterLocation(XMM3));
+ result->set_out(0, Location::FpuRegisterLocation(XMM3));
return result;
}
@@ -4679,7 +4679,7 @@ void InvokeMathCFunctionInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
// }
XmmRegister base = locs()->in(0).fpu_reg();
XmmRegister exp = locs()->in(1).fpu_reg();
- XmmRegister result = locs()->out().fpu_reg();
+ XmmRegister result = locs()->out(0).fpu_reg();
Register temp = locs()->temp(kObjectTempIndex).reg();
XmmRegister zero_temp = locs()->temp(kDoubleTempIndex).fpu_reg();
@@ -4716,7 +4716,7 @@ void InvokeMathCFunctionInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
}
__ Bind(&do_call);
__ CallRuntime(TargetFunction(), InputCount());
- __ movaps(locs()->out().fpu_reg(), XMM0);
+ __ movaps(locs()->out(0).fpu_reg(), XMM0);
__ Bind(&skip_call);
// Restore RSP.
__ movq(RSP, locs()->temp(kSavedSpTempIndex).reg());
@@ -4732,7 +4732,7 @@ LocationSummary* MergedMathInstr::MakeLocationSummary(bool opt) const {
// Both inputs must be writable because they will be untagged.
summary->set_in(0, Location::RegisterLocation(RAX));
summary->set_in(1, Location::WritableRegister());
- summary->set_out(Location::RequiresRegister());
+ summary->set_out(0, Location::RequiresRegister());
// Will be used for sign extension and division.
summary->set_temp(0, Location::RegisterLocation(RDX));
return summary;
@@ -4746,7 +4746,7 @@ LocationSummary* MergedMathInstr::MakeLocationSummary(bool opt) const {
// R13 is chosen because it is callee saved so we do not need to back it
// up before calling into the runtime.
summary->set_temp(0, Location::RegisterLocation(R13));
- summary->set_out(Location::RegisterLocation(RAX));
+ summary->set_out(0, Location::RegisterLocation(RAX));
return summary;
}
UNIMPLEMENTED();
@@ -4770,7 +4770,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();
Label not_32bit, done;
Register temp = locs()->temp(0).reg();
ASSERT(left == RAX);
@@ -4895,7 +4895,7 @@ void MergedMathInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
// Restore RSP.
__ movq(RSP, locs()->temp(0).reg());
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
const TypedData& res_array = TypedData::ZoneHandle(
TypedData::New(kTypedDataFloat64ArrayCid, 2, Heap::kOld));
__ LoadObject(result, res_array, PP);
@@ -4962,7 +4962,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();
}
@@ -5252,7 +5252,7 @@ LocationSummary* CurrentContextInstr::MakeLocationSummary(bool opt) const {
void CurrentContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- __ MoveRegister(locs()->out().reg(), CTX);
+ __ MoveRegister(locs()->out(0).reg(), CTX);
}
@@ -5264,7 +5264,7 @@ LocationSummary* StrictCompareInstr::MakeLocationSummary(bool opt) const {
new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall);
locs->set_in(0, Location::RegisterLocation(RAX));
locs->set_in(1, Location::RegisterLocation(RCX));
- locs->set_out(Location::RegisterLocation(RAX));
+ locs->set_out(0, Location::RegisterLocation(RAX));
return locs;
}
LocationSummary* locs =
@@ -5275,7 +5275,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;
}
@@ -5316,7 +5316,7 @@ void StrictCompareInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Condition true_condition = EmitComparisonCode(compiler, labels);
EmitBranchOnCondition(compiler, true_condition, labels);
- Register result = locs()->out().reg();
+ Register result = locs()->out(0).reg();
Label done;
__ Bind(&is_false);
__ LoadObject(result, Bool::False(), PP);
@@ -5342,7 +5342,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(RAX));
+ result->set_out(0, Location::RegisterLocation(RAX));
result->set_temp(0, Location::RegisterLocation(R10)); // Arg. descriptor.
return result;
}
@@ -5376,7 +5376,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();
Label done;
__ LoadObject(result, Bool::True(), PP);
« no previous file with comments | « runtime/vm/intermediate_language_mips.cc ('k') | runtime/vm/locations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698