| Index: runtime/vm/intermediate_language_arm64.cc
|
| diff --git a/runtime/vm/intermediate_language_arm64.cc b/runtime/vm/intermediate_language_arm64.cc
|
| index 2e53e4458b22f3b23835da759c79f951bfe8f166..73bf9673b8c1022be90139b85b681485e50d3701 100644
|
| --- a/runtime/vm/intermediate_language_arm64.cc
|
| +++ b/runtime/vm/intermediate_language_arm64.cc
|
| @@ -35,7 +35,6 @@ LocationSummary* Instruction::MakeCallSummary(Zone* zone) {
|
| return result;
|
| }
|
|
|
| -
|
| LocationSummary* PushArgumentInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -46,7 +45,6 @@ LocationSummary* PushArgumentInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void PushArgumentInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // In SSA mode, we need an explicit push. Nothing to do in non-SSA mode
|
| // where PushArgument is handled by BindInstr::EmitNativeCode.
|
| @@ -65,7 +63,6 @@ void PushArgumentInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* ReturnInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| const intptr_t kNumTemps = 0;
|
| @@ -75,7 +72,6 @@ LocationSummary* ReturnInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return locs;
|
| }
|
|
|
| -
|
| // Attempt optimized compilation at return instruction instead of at the entry.
|
| // The entry needs to be patchable, no inlined objects are allowed in the area
|
| // that will be overwritten by the patch instructions: a branch macro sequence.
|
| @@ -109,7 +105,6 @@ void ReturnInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ set_constant_pool_allowed(true);
|
| }
|
|
|
| -
|
| static Condition NegateCondition(Condition condition) {
|
| switch (condition) {
|
| case EQ:
|
| @@ -142,21 +137,18 @@ static Condition NegateCondition(Condition condition) {
|
| }
|
| }
|
|
|
| -
|
| // Detect pattern when one value is zero and another is a power of 2.
|
| static bool IsPowerOfTwoKind(intptr_t v1, intptr_t v2) {
|
| return (Utils::IsPowerOfTwo(v1) && (v2 == 0)) ||
|
| (Utils::IsPowerOfTwo(v2) && (v1 == 0));
|
| }
|
|
|
| -
|
| LocationSummary* IfThenElseInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| comparison()->InitializeLocationSummary(zone, opt);
|
| return comparison()->locs();
|
| }
|
|
|
| -
|
| void IfThenElseInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register result = locs()->out(0).reg();
|
|
|
| @@ -208,7 +200,6 @@ void IfThenElseInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* ClosureCallInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -220,7 +211,6 @@ LocationSummary* ClosureCallInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void ClosureCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // Load arguments descriptor in R4.
|
| const intptr_t argument_count = ArgumentCount(); // Includes type args.
|
| @@ -255,27 +245,23 @@ void ClosureCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Drop(argument_count);
|
| }
|
|
|
| -
|
| LocationSummary* LoadLocalInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| return LocationSummary::Make(zone, 0, Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void LoadLocalInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register result = locs()->out(0).reg();
|
| __ LoadFromOffset(result, FP, local().index() * kWordSize);
|
| }
|
|
|
| -
|
| LocationSummary* StoreLocalInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| return LocationSummary::Make(zone, 1, Location::SameAsFirstInput(),
|
| LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void StoreLocalInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register value = locs()->in(0).reg();
|
| const Register result = locs()->out(0).reg();
|
| @@ -283,14 +269,12 @@ void StoreLocalInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ StoreToOffset(value, FP, local().index() * kWordSize);
|
| }
|
|
|
| -
|
| LocationSummary* ConstantInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| return LocationSummary::Make(zone, 0, Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void ConstantInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // The register allocator drops constant definitions that have no uses.
|
| if (!locs()->out(0).IsInvalid()) {
|
| @@ -299,7 +283,6 @@ void ConstantInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* UnboxedConstantInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 0;
|
| @@ -309,7 +292,6 @@ LocationSummary* UnboxedConstantInstr::MakeLocationSummary(Zone* zone,
|
| return LocationSummary::Make(zone, kNumInputs, out, LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void UnboxedConstantInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| if (!locs()->out(0).IsInvalid()) {
|
| switch (representation_) {
|
| @@ -333,7 +315,6 @@ void UnboxedConstantInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* AssertAssignableInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 3;
|
| @@ -347,7 +328,6 @@ LocationSummary* AssertAssignableInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| LocationSummary* AssertBooleanInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -359,7 +339,6 @@ LocationSummary* AssertBooleanInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| static void EmitAssertBoolean(Register reg,
|
| TokenPosition token_pos,
|
| intptr_t deopt_id,
|
| @@ -389,7 +368,6 @@ static void EmitAssertBoolean(Register reg,
|
| __ Bind(&done);
|
| }
|
|
|
| -
|
| void AssertBooleanInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register obj = locs()->in(0).reg();
|
| const Register result = locs()->out(0).reg();
|
| @@ -398,7 +376,6 @@ void AssertBooleanInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(obj == result);
|
| }
|
|
|
| -
|
| static Condition TokenKindToSmiCondition(Token::Kind kind) {
|
| switch (kind) {
|
| case Token::kEQ:
|
| @@ -419,7 +396,6 @@ static Condition TokenKindToSmiCondition(Token::Kind kind) {
|
| }
|
| }
|
|
|
| -
|
| static Condition FlipCondition(Condition condition) {
|
| switch (condition) {
|
| case EQ:
|
| @@ -448,7 +424,6 @@ static Condition FlipCondition(Condition condition) {
|
| }
|
| }
|
|
|
| -
|
| static void EmitBranchOnCondition(FlowGraphCompiler* compiler,
|
| Condition true_condition,
|
| BranchLabels labels) {
|
| @@ -467,7 +442,6 @@ static void EmitBranchOnCondition(FlowGraphCompiler* compiler,
|
| }
|
| }
|
|
|
| -
|
| static Condition EmitSmiComparisonOp(FlowGraphCompiler* compiler,
|
| LocationSummary* locs,
|
| Token::Kind kind) {
|
| @@ -488,7 +462,6 @@ static Condition EmitSmiComparisonOp(FlowGraphCompiler* compiler,
|
| return true_condition;
|
| }
|
|
|
| -
|
| LocationSummary* EqualityCompareInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -519,7 +492,6 @@ LocationSummary* EqualityCompareInstr::MakeLocationSummary(Zone* zone,
|
| return NULL;
|
| }
|
|
|
| -
|
| static Condition TokenKindToDoubleCondition(Token::Kind kind) {
|
| switch (kind) {
|
| case Token::kEQ:
|
| @@ -540,7 +512,6 @@ static Condition TokenKindToDoubleCondition(Token::Kind kind) {
|
| }
|
| }
|
|
|
| -
|
| static Condition EmitDoubleComparisonOp(FlowGraphCompiler* compiler,
|
| LocationSummary* locs,
|
| BranchLabels labels,
|
| @@ -557,7 +528,6 @@ static Condition EmitDoubleComparisonOp(FlowGraphCompiler* compiler,
|
| return true_condition;
|
| }
|
|
|
| -
|
| Condition EqualityCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| BranchLabels labels) {
|
| if (operation_cid() == kSmiCid) {
|
| @@ -568,7 +538,6 @@ Condition EqualityCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* TestSmiInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| const intptr_t kNumTemps = 0;
|
| @@ -581,7 +550,6 @@ LocationSummary* TestSmiInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return locs;
|
| }
|
|
|
| -
|
| Condition TestSmiInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| BranchLabels labels) {
|
| const Register left = locs()->in(0).reg();
|
| @@ -597,7 +565,6 @@ Condition TestSmiInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| return true_condition;
|
| }
|
|
|
| -
|
| LocationSummary* TestCidsInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -610,18 +577,16 @@ LocationSummary* TestCidsInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| Condition TestCidsInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| BranchLabels labels) {
|
| ASSERT((kind() == Token::kIS) || (kind() == Token::kISNOT));
|
| const Register val_reg = locs()->in(0).reg();
|
| const Register cid_reg = locs()->temp(0).reg();
|
|
|
| - Label* deopt =
|
| - CanDeoptimize()
|
| - ? compiler->AddDeoptStub(deopt_id(), ICData::kDeoptTestCids,
|
| - licm_hoisted_ ? ICData::kHoisted : 0)
|
| - : NULL;
|
| + Label* deopt = CanDeoptimize() ? compiler->AddDeoptStub(
|
| + deopt_id(), ICData::kDeoptTestCids,
|
| + licm_hoisted_ ? ICData::kHoisted : 0)
|
| + : NULL;
|
|
|
| const intptr_t true_result = (kind() == Token::kIS) ? 1 : 0;
|
| const ZoneGrowableArray<intptr_t>& data = cid_results();
|
| @@ -655,7 +620,6 @@ Condition TestCidsInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| return kInvalidCondition;
|
| }
|
|
|
| -
|
| LocationSummary* RelationalOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -681,7 +645,6 @@ LocationSummary* RelationalOpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| Condition RelationalOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| BranchLabels labels) {
|
| if (operation_cid() == kSmiCid) {
|
| @@ -692,13 +655,11 @@ Condition RelationalOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* NativeCallInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| return MakeCallSummary(zone);
|
| }
|
|
|
| -
|
| void NativeCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| SetupNative();
|
| const Register result = locs()->out(0).reg();
|
| @@ -754,7 +715,6 @@ void NativeCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Pop(result);
|
| }
|
|
|
| -
|
| LocationSummary* OneByteStringFromCharCodeInstr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -764,7 +724,6 @@ LocationSummary* OneByteStringFromCharCodeInstr::MakeLocationSummary(
|
| LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void OneByteStringFromCharCodeInstr::EmitNativeCode(
|
| FlowGraphCompiler* compiler) {
|
| ASSERT(compiler->is_optimizing());
|
| @@ -777,7 +736,6 @@ void OneByteStringFromCharCodeInstr::EmitNativeCode(
|
| __ ldr(result, Address(result, TMP, UXTX, Address::Scaled));
|
| }
|
|
|
| -
|
| LocationSummary* StringToCharCodeInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -785,7 +743,6 @@ LocationSummary* StringToCharCodeInstr::MakeLocationSummary(Zone* zone,
|
| LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void StringToCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(cid_ == kOneByteStringCid);
|
| const Register str = locs()->in(0).reg();
|
| @@ -798,7 +755,6 @@ void StringToCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ SmiTag(result);
|
| }
|
|
|
| -
|
| LocationSummary* StringInterpolateInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -810,7 +766,6 @@ LocationSummary* StringInterpolateInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void StringInterpolateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register array = locs()->in(0).reg();
|
| __ Push(array);
|
| @@ -823,7 +778,6 @@ void StringInterpolateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(locs()->out(0).reg() == R0);
|
| }
|
|
|
| -
|
| LocationSummary* LoadUntaggedInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -831,7 +785,6 @@ LocationSummary* LoadUntaggedInstr::MakeLocationSummary(Zone* zone,
|
| LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void LoadUntaggedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register obj = locs()->in(0).reg();
|
| const Register result = locs()->out(0).reg();
|
| @@ -843,7 +796,6 @@ void LoadUntaggedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* LoadClassIdInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -851,7 +803,6 @@ LocationSummary* LoadClassIdInstr::MakeLocationSummary(Zone* zone,
|
| LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void LoadClassIdInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register object = locs()->in(0).reg();
|
| const Register result = locs()->out(0).reg();
|
| @@ -865,7 +816,6 @@ void LoadClassIdInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| CompileType LoadIndexedInstr::ComputeType() const {
|
| switch (class_id_) {
|
| case kArrayCid:
|
| @@ -903,7 +853,6 @@ CompileType LoadIndexedInstr::ComputeType() const {
|
| }
|
| }
|
|
|
| -
|
| Representation LoadIndexedInstr::representation() const {
|
| switch (class_id_) {
|
| case kArrayCid:
|
| @@ -939,7 +888,6 @@ Representation LoadIndexedInstr::representation() const {
|
| }
|
| }
|
|
|
| -
|
| static bool CanBeImmediateIndex(Value* value, intptr_t cid, bool is_external) {
|
| ConstantInstr* constant = value->definition()->AsConstant();
|
| if ((constant == NULL) || !constant->value().IsSmi()) {
|
| @@ -957,7 +905,6 @@ static bool CanBeImmediateIndex(Value* value, intptr_t cid, bool is_external) {
|
| Address::OperandSizeFor(cid));
|
| }
|
|
|
| -
|
| LocationSummary* LoadIndexedInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -984,7 +931,6 @@ LocationSummary* LoadIndexedInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // The array register points to the backing store for external arrays.
|
| const Register array = locs()->in(0).reg();
|
| @@ -1122,7 +1068,6 @@ void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* LoadCodeUnitsInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -1135,7 +1080,6 @@ LocationSummary* LoadCodeUnitsInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void LoadCodeUnitsInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // The string register points to the backing store for external strings.
|
| const Register str = locs()->in(0).reg();
|
| @@ -1184,7 +1128,6 @@ void LoadCodeUnitsInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| Representation StoreIndexedInstr::RequiredInputRepresentation(
|
| intptr_t idx) const {
|
| // Array can be a Dart object or a pointer to external data.
|
| @@ -1221,7 +1164,6 @@ Representation StoreIndexedInstr::RequiredInputRepresentation(
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* StoreIndexedInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 3;
|
| @@ -1272,7 +1214,6 @@ LocationSummary* StoreIndexedInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void StoreIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // The array register points to the backing store for external arrays.
|
| const Register array = locs()->in(0).reg();
|
| @@ -1412,7 +1353,6 @@ void StoreIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| static void LoadValueCid(FlowGraphCompiler* compiler,
|
| Register value_cid_reg,
|
| Register value_reg,
|
| @@ -1431,7 +1371,6 @@ static void LoadValueCid(FlowGraphCompiler* compiler,
|
| __ Bind(&done);
|
| }
|
|
|
| -
|
| LocationSummary* GuardFieldClassInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -1465,7 +1404,6 @@ LocationSummary* GuardFieldClassInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(sizeof(classid_t) == kInt16Size);
|
| const intptr_t value_cid = value()->Type()->ToCid();
|
| @@ -1607,7 +1545,6 @@ void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(&ok);
|
| }
|
|
|
| -
|
| LocationSummary* GuardFieldLengthInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -1630,7 +1567,6 @@ LocationSummary* GuardFieldLengthInstr::MakeLocationSummary(Zone* zone,
|
| UNREACHABLE();
|
| }
|
|
|
| -
|
| void GuardFieldLengthInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| if (field().guarded_list_length() == Field::kNoFixedLength) {
|
| if (Compiler::IsBackgroundCompilation()) {
|
| @@ -1702,7 +1638,6 @@ void GuardFieldLengthInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| class BoxAllocationSlowPath : public SlowPathCode {
|
| public:
|
| BoxAllocationSlowPath(Instruction* instruction,
|
| @@ -1756,7 +1691,6 @@ class BoxAllocationSlowPath : public SlowPathCode {
|
| const Register result_;
|
| };
|
|
|
| -
|
| static void EnsureMutableBox(FlowGraphCompiler* compiler,
|
| StoreInstanceFieldInstr* instruction,
|
| Register box_reg,
|
| @@ -1774,7 +1708,6 @@ static void EnsureMutableBox(FlowGraphCompiler* compiler,
|
| __ Bind(&done);
|
| }
|
|
|
| -
|
| LocationSummary* StoreInstanceFieldInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -1805,7 +1738,6 @@ LocationSummary* StoreInstanceFieldInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(sizeof(classid_t) == kInt16Size);
|
| Label skip_store;
|
| @@ -1958,7 +1890,6 @@ void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(&skip_store);
|
| }
|
|
|
| -
|
| LocationSummary* LoadStaticFieldInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -1970,7 +1901,6 @@ LocationSummary* LoadStaticFieldInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| // When the parser is building an implicit static getter for optimization,
|
| // it can generate a function body where deoptimization ids do not line up
|
| // with the unoptimized code.
|
| @@ -1982,7 +1912,6 @@ void LoadStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ LoadFieldFromOffset(result, field, Field::static_value_offset());
|
| }
|
|
|
| -
|
| LocationSummary* StoreStaticFieldInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| LocationSummary* locs =
|
| @@ -1993,7 +1922,6 @@ LocationSummary* StoreStaticFieldInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void StoreStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register value = locs()->in(0).reg();
|
| const Register temp = locs()->temp(0).reg();
|
| @@ -2008,7 +1936,6 @@ void StoreStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* InstanceOfInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 3;
|
| @@ -2022,7 +1949,6 @@ LocationSummary* InstanceOfInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void InstanceOfInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(locs()->in(0).reg() == R0); // Value.
|
| ASSERT(locs()->in(1).reg() == R1); // Instantiator type arguments.
|
| @@ -2032,7 +1958,6 @@ void InstanceOfInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(locs()->out(0).reg() == R0);
|
| }
|
|
|
| -
|
| LocationSummary* CreateArrayInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -2045,7 +1970,6 @@ LocationSummary* CreateArrayInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| // Inlines array allocation for known constant values.
|
| static void InlineArrayAllocation(FlowGraphCompiler* compiler,
|
| intptr_t num_elements,
|
| @@ -2102,7 +2026,6 @@ static void InlineArrayAllocation(FlowGraphCompiler* compiler,
|
| __ b(done);
|
| }
|
|
|
| -
|
| void CreateArrayInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register kLengthReg = R2;
|
| const Register kElemTypeReg = R1;
|
| @@ -2139,16 +2062,15 @@ void CreateArrayInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(locs()->out(0).reg() == kResultReg);
|
| }
|
|
|
| -
|
| LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| const intptr_t kNumTemps =
|
| (IsUnboxedLoad() && opt) ? 1 : ((IsPotentialUnboxedLoad()) ? 1 : 0);
|
| LocationSummary* locs = new (zone) LocationSummary(
|
| - zone, kNumInputs, kNumTemps, (opt && !IsPotentialUnboxedLoad())
|
| - ? LocationSummary::kNoCall
|
| - : LocationSummary::kCallOnSlowPath);
|
| + zone, kNumInputs, kNumTemps,
|
| + (opt && !IsPotentialUnboxedLoad()) ? LocationSummary::kNoCall
|
| + : LocationSummary::kCallOnSlowPath);
|
|
|
| locs->set_in(0, Location::RequiresRegister());
|
|
|
| @@ -2161,7 +2083,6 @@ LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(sizeof(classid_t) == kInt16Size);
|
| const Register instance_reg = locs()->in(0).reg();
|
| @@ -2263,7 +2184,6 @@ void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(&done);
|
| }
|
|
|
| -
|
| LocationSummary* InstantiateTypeInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -2276,7 +2196,6 @@ LocationSummary* InstantiateTypeInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void InstantiateTypeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register instantiator_type_args_reg = locs()->in(0).reg();
|
| const Register function_type_args_reg = locs()->in(1).reg();
|
| @@ -2295,7 +2214,6 @@ void InstantiateTypeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(instantiator_type_args_reg == result_reg);
|
| }
|
|
|
| -
|
| LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -2309,7 +2227,6 @@ LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary(
|
| return locs;
|
| }
|
|
|
| -
|
| void InstantiateTypeArgumentsInstr::EmitNativeCode(
|
| FlowGraphCompiler* compiler) {
|
| const Register instantiator_type_args_reg = locs()->in(0).reg();
|
| @@ -2376,7 +2293,6 @@ void InstantiateTypeArgumentsInstr::EmitNativeCode(
|
| __ Bind(&type_arguments_instantiated);
|
| }
|
|
|
| -
|
| LocationSummary* AllocateUninitializedContextInstr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -2392,7 +2308,6 @@ LocationSummary* AllocateUninitializedContextInstr::MakeLocationSummary(
|
| return locs;
|
| }
|
|
|
| -
|
| class AllocateContextSlowPath : public SlowPathCode {
|
| public:
|
| explicit AllocateContextSlowPath(
|
| @@ -2424,7 +2339,6 @@ class AllocateContextSlowPath : public SlowPathCode {
|
| AllocateUninitializedContextInstr* instruction_;
|
| };
|
|
|
| -
|
| void AllocateUninitializedContextInstr::EmitNativeCode(
|
| FlowGraphCompiler* compiler) {
|
| Register temp0 = locs()->temp(0).reg();
|
| @@ -2447,7 +2361,6 @@ void AllocateUninitializedContextInstr::EmitNativeCode(
|
| __ Bind(slow_path->exit_label());
|
| }
|
|
|
| -
|
| LocationSummary* AllocateContextInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 0;
|
| @@ -2459,7 +2372,6 @@ LocationSummary* AllocateContextInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void AllocateContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(locs()->temp(0).reg() == R1);
|
| ASSERT(locs()->out(0).reg() == R0);
|
| @@ -2480,7 +2392,6 @@ LocationSummary* InitStaticFieldInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void InitStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Register field = locs()->in(0).reg();
|
| Register temp = locs()->temp(0).reg();
|
| @@ -2502,7 +2413,6 @@ void InitStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(&no_call);
|
| }
|
|
|
| -
|
| LocationSummary* CloneContextInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -2514,7 +2424,6 @@ LocationSummary* CloneContextInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void CloneContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register context_value = locs()->in(0).reg();
|
| const Register result = locs()->out(0).reg();
|
| @@ -2527,14 +2436,12 @@ void CloneContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Pop(result); // Get result (cloned context).
|
| }
|
|
|
| -
|
| LocationSummary* CatchBlockEntryInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| UNREACHABLE();
|
| return NULL;
|
| }
|
|
|
| -
|
| void CatchBlockEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(compiler->GetJumpLabel(this));
|
| compiler->AddExceptionHandler(catch_try_index(), try_index(),
|
| @@ -2598,7 +2505,6 @@ void CatchBlockEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* CheckStackOverflowInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 0;
|
| @@ -2609,7 +2515,6 @@ LocationSummary* CheckStackOverflowInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| class CheckStackOverflowSlowPath : public SlowPathCode {
|
| public:
|
| explicit CheckStackOverflowSlowPath(CheckStackOverflowInstr* instruction)
|
| @@ -2657,7 +2562,6 @@ class CheckStackOverflowSlowPath : public SlowPathCode {
|
| Label osr_entry_label_;
|
| };
|
|
|
| -
|
| void CheckStackOverflowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| CheckStackOverflowSlowPath* slow_path = new CheckStackOverflowSlowPath(this);
|
| compiler->AddSlowPathCode(slow_path);
|
| @@ -2685,7 +2589,6 @@ void CheckStackOverflowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(slow_path->exit_label());
|
| }
|
|
|
| -
|
| static void EmitSmiShiftLeft(FlowGraphCompiler* compiler,
|
| BinarySmiOpInstr* shift_left) {
|
| const LocationSummary& locs = *shift_left->locs();
|
| @@ -2783,7 +2686,6 @@ static void EmitSmiShiftLeft(FlowGraphCompiler* compiler,
|
| }
|
| }
|
|
|
| -
|
| class CheckedSmiSlowPath : public SlowPathCode {
|
| public:
|
| CheckedSmiSlowPath(CheckedSmiOpInstr* instruction, intptr_t try_index)
|
| @@ -2825,7 +2727,6 @@ class CheckedSmiSlowPath : public SlowPathCode {
|
| intptr_t try_index_;
|
| };
|
|
|
| -
|
| LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -2838,7 +2739,6 @@ LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| CheckedSmiSlowPath* slow_path =
|
| new CheckedSmiSlowPath(this, compiler->CurrentTryIndex());
|
| @@ -2923,7 +2823,6 @@ void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(slow_path->exit_label());
|
| }
|
|
|
| -
|
| class CheckedSmiComparisonSlowPath : public SlowPathCode {
|
| public:
|
| CheckedSmiComparisonSlowPath(CheckedSmiComparisonInstr* instruction,
|
| @@ -2982,7 +2881,6 @@ class CheckedSmiComparisonSlowPath : public SlowPathCode {
|
| bool merged_;
|
| };
|
|
|
| -
|
| LocationSummary* CheckedSmiComparisonInstr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -2997,14 +2895,12 @@ LocationSummary* CheckedSmiComparisonInstr::MakeLocationSummary(
|
| return summary;
|
| }
|
|
|
| -
|
| Condition CheckedSmiComparisonInstr::EmitComparisonCode(
|
| FlowGraphCompiler* compiler,
|
| BranchLabels labels) {
|
| return EmitSmiComparisonOp(compiler, locs(), kind());
|
| }
|
|
|
| -
|
| #define EMIT_SMI_CHECK \
|
| Register left = locs()->in(0).reg(); \
|
| Register right = locs()->in(1).reg(); \
|
| @@ -3023,7 +2919,6 @@ Condition CheckedSmiComparisonInstr::EmitComparisonCode(
|
| } \
|
| __ b(slow_path->entry_label(), NE)
|
|
|
| -
|
| void CheckedSmiComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler,
|
| BranchInstr* branch) {
|
| BranchLabels labels = compiler->CreateBranchLabels(branch);
|
| @@ -3038,7 +2933,6 @@ void CheckedSmiComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler,
|
| __ Bind(slow_path->exit_label());
|
| }
|
|
|
| -
|
| void CheckedSmiComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Label true_label, false_label, done;
|
| BranchLabels labels = {&true_label, &false_label, &false_label};
|
| @@ -3060,7 +2954,6 @@ void CheckedSmiComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(slow_path->exit_label());
|
| }
|
|
|
| -
|
| LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -3099,7 +2992,6 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void BinarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| if (op_kind() == Token::kSHL) {
|
| EmitSmiShiftLeft(compiler, this);
|
| @@ -3336,7 +3228,6 @@ void BinarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* CheckEitherNonSmiInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| intptr_t left_cid = left()->Type()->ToCid();
|
| @@ -3351,7 +3242,6 @@ LocationSummary* CheckEitherNonSmiInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void CheckEitherNonSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Label* deopt =
|
| compiler->AddDeoptStub(deopt_id(), ICData::kDeoptBinaryDoubleOp,
|
| @@ -3373,7 +3263,6 @@ void CheckEitherNonSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ b(deopt, EQ);
|
| }
|
|
|
| -
|
| LocationSummary* BoxInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| const intptr_t kNumTemps = 1;
|
| @@ -3385,7 +3274,6 @@ LocationSummary* BoxInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return summary;
|
| }
|
|
|
| -
|
| void BoxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register out_reg = locs()->out(0).reg();
|
| const Register temp_reg = locs()->temp(0).reg();
|
| @@ -3410,7 +3298,6 @@ void BoxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* UnboxInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| const intptr_t kNumTemps = 0;
|
| @@ -3421,7 +3308,6 @@ LocationSummary* UnboxInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return summary;
|
| }
|
|
|
| -
|
| void UnboxInstr::EmitLoadFromBox(FlowGraphCompiler* compiler) {
|
| const Register box = locs()->in(0).reg();
|
|
|
| @@ -3451,7 +3337,6 @@ void UnboxInstr::EmitLoadFromBox(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| void UnboxInstr::EmitSmiConversion(FlowGraphCompiler* compiler) {
|
| const Register box = locs()->in(0).reg();
|
|
|
| @@ -3474,7 +3359,6 @@ void UnboxInstr::EmitSmiConversion(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| void UnboxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const intptr_t value_cid = value()->Type()->ToCid();
|
| const intptr_t box_cid = BoxCid();
|
| @@ -3512,7 +3396,6 @@ void UnboxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* BoxInteger32Instr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| ASSERT((from_representation() == kUnboxedInt32) ||
|
| @@ -3526,7 +3409,6 @@ LocationSummary* BoxInteger32Instr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void BoxInteger32Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Register value = locs()->in(0).reg();
|
| Register out = locs()->out(0).reg();
|
| @@ -3543,10 +3425,8 @@ void BoxInteger32Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| DEFINE_UNIMPLEMENTED_INSTRUCTION(BoxInt64Instr)
|
|
|
| -
|
| LocationSummary* UnboxInteger32Instr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -3558,15 +3438,13 @@ LocationSummary* UnboxInteger32Instr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void UnboxInteger32Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const intptr_t value_cid = value()->Type()->ToCid();
|
| const Register out = locs()->out(0).reg();
|
| const Register value = locs()->in(0).reg();
|
| - Label* deopt =
|
| - CanDeoptimize()
|
| - ? compiler->AddDeoptStub(GetDeoptId(), ICData::kDeoptUnboxInteger)
|
| - : NULL;
|
| + Label* deopt = CanDeoptimize() ? compiler->AddDeoptStub(
|
| + GetDeoptId(), ICData::kDeoptUnboxInteger)
|
| + : NULL;
|
|
|
| if (value_cid == kSmiCid) {
|
| __ SmiUntag(out, value);
|
| @@ -3603,7 +3481,6 @@ void UnboxInteger32Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -3616,7 +3493,6 @@ LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void BinaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -3639,7 +3515,6 @@ void BinaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* DoubleTestOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -3655,7 +3530,6 @@ LocationSummary* DoubleTestOpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| Condition DoubleTestOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| BranchLabels labels) {
|
| ASSERT(compiler->is_optimizing());
|
| @@ -3676,7 +3550,6 @@ Condition DoubleTestOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* BinaryFloat32x4OpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -3689,7 +3562,6 @@ LocationSummary* BinaryFloat32x4OpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void BinaryFloat32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -3713,7 +3585,6 @@ void BinaryFloat32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* BinaryFloat64x2OpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -3726,7 +3597,6 @@ LocationSummary* BinaryFloat64x2OpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void BinaryFloat64x2OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -3750,7 +3620,6 @@ void BinaryFloat64x2OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -3762,7 +3631,6 @@ LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Simd32x4ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| @@ -3806,7 +3674,6 @@ void Simd32x4ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -3819,7 +3686,6 @@ LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Simd32x4ShuffleMixInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -3838,7 +3704,6 @@ void Simd32x4ShuffleMixInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -3851,7 +3716,6 @@ LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const Register out = locs()->out(0).reg();
|
| @@ -3876,7 +3740,6 @@ void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ SmiTag(out);
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -3892,7 +3755,6 @@ LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary(
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister v0 = locs()->in(0).fpu_reg();
|
| const VRegister v1 = locs()->in(1).fpu_reg();
|
| @@ -3910,7 +3772,6 @@ void Float32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vinss(r, 3, VTMP, 0);
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4ZeroInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 0;
|
| @@ -3921,13 +3782,11 @@ LocationSummary* Float32x4ZeroInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4ZeroInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister v = locs()->out(0).fpu_reg();
|
| __ veor(v, v, v);
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4SplatInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -3939,7 +3798,6 @@ LocationSummary* Float32x4SplatInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| @@ -3951,7 +3809,6 @@ void Float32x4SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vdups(result, VTMP, 0);
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -3964,7 +3821,6 @@ LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -3997,7 +3853,6 @@ void Float32x4ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -4010,7 +3865,6 @@ LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4MinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -4028,7 +3882,6 @@ void Float32x4MinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4040,7 +3893,6 @@ LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4SqrtInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| @@ -4060,7 +3912,6 @@ void Float32x4SqrtInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4ScaleInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -4073,7 +3924,6 @@ LocationSummary* Float32x4ScaleInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4ScaleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -4090,7 +3940,6 @@ void Float32x4ScaleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4102,7 +3951,6 @@ LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| @@ -4119,7 +3967,6 @@ void Float32x4ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4ClampInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 3;
|
| @@ -4133,7 +3980,6 @@ LocationSummary* Float32x4ClampInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4ClampInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister lower = locs()->in(1).fpu_reg();
|
| @@ -4143,7 +3989,6 @@ void Float32x4ClampInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vmaxs(result, result, lower);
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4WithInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -4156,7 +4001,6 @@ LocationSummary* Float32x4WithInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister replacement = locs()->in(0).fpu_reg();
|
| const VRegister value = locs()->in(1).fpu_reg();
|
| @@ -4185,7 +4029,6 @@ void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4197,7 +4040,6 @@ LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4ToInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| @@ -4207,7 +4049,6 @@ void Float32x4ToInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Simd64x2ShuffleInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4219,7 +4060,6 @@ LocationSummary* Simd64x2ShuffleInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Simd64x2ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| @@ -4236,7 +4076,6 @@ void Simd64x2ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Float64x2ZeroInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 0;
|
| @@ -4247,13 +4086,11 @@ LocationSummary* Float64x2ZeroInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float64x2ZeroInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister v = locs()->out(0).fpu_reg();
|
| __ veor(v, v, v);
|
| }
|
|
|
| -
|
| LocationSummary* Float64x2SplatInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4265,14 +4102,12 @@ LocationSummary* Float64x2SplatInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float64x2SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| __ vdupd(result, value, 0);
|
| }
|
|
|
| -
|
| LocationSummary* Float64x2ConstructorInstr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -4286,7 +4121,6 @@ LocationSummary* Float64x2ConstructorInstr::MakeLocationSummary(
|
| return summary;
|
| }
|
|
|
| -
|
| void Float64x2ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister v0 = locs()->in(0).fpu_reg();
|
| const VRegister v1 = locs()->in(1).fpu_reg();
|
| @@ -4295,7 +4129,6 @@ void Float64x2ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vinsd(r, 1, v1, 0);
|
| }
|
|
|
| -
|
| LocationSummary* Float64x2ToFloat32x4Instr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -4308,7 +4141,6 @@ LocationSummary* Float64x2ToFloat32x4Instr::MakeLocationSummary(
|
| return summary;
|
| }
|
|
|
| -
|
| void Float64x2ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister q = locs()->in(0).fpu_reg();
|
| const VRegister r = locs()->out(0).fpu_reg();
|
| @@ -4325,7 +4157,6 @@ void Float64x2ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vinss(r, 1, VTMP, 0);
|
| }
|
|
|
| -
|
| LocationSummary* Float32x4ToFloat64x2Instr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -4338,7 +4169,6 @@ LocationSummary* Float32x4ToFloat64x2Instr::MakeLocationSummary(
|
| return summary;
|
| }
|
|
|
| -
|
| void Float32x4ToFloat64x2Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister q = locs()->in(0).fpu_reg();
|
| const VRegister r = locs()->out(0).fpu_reg();
|
| @@ -4353,7 +4183,6 @@ void Float32x4ToFloat64x2Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vinsd(r, 1, VTMP, 0);
|
| }
|
|
|
| -
|
| LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4372,7 +4201,6 @@ LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float64x2ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
|
|
| @@ -4408,7 +4236,6 @@ void Float64x2ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -4421,7 +4248,6 @@ LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Float64x2OneArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -4450,7 +4276,6 @@ void Float64x2OneArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Int32x4ConstructorInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 4;
|
| @@ -4465,7 +4290,6 @@ LocationSummary* Int32x4ConstructorInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Int32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register v0 = locs()->in(0).reg();
|
| const Register v1 = locs()->in(1).reg();
|
| @@ -4479,7 +4303,6 @@ void Int32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vinsw(result, 3, v3);
|
| }
|
|
|
| -
|
| LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -4496,7 +4319,6 @@ LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary(
|
| return summary;
|
| }
|
|
|
| -
|
| void Int32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register v0 = locs()->in(0).reg();
|
| const Register v1 = locs()->in(1).reg();
|
| @@ -4530,7 +4352,6 @@ void Int32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vinsw(result, 3, TMP);
|
| }
|
|
|
| -
|
| LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4542,7 +4363,6 @@ LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Int32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const Register result = locs()->out(0).reg();
|
| @@ -4570,7 +4390,6 @@ void Int32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ csel(result, TMP, result, EQ);
|
| }
|
|
|
| -
|
| LocationSummary* Int32x4SelectInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 3;
|
| @@ -4585,7 +4404,6 @@ LocationSummary* Int32x4SelectInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Int32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister mask = locs()->in(0).fpu_reg();
|
| const VRegister trueValue = locs()->in(1).fpu_reg();
|
| @@ -4605,7 +4423,6 @@ void Int32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ vorr(out, mask, temp);
|
| }
|
|
|
| -
|
| LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -4618,7 +4435,6 @@ LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Int32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister mask = locs()->in(0).fpu_reg();
|
| const Register flag = locs()->in(1).reg();
|
| @@ -4649,7 +4465,6 @@ void Int32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4661,7 +4476,6 @@ LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void Int32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| @@ -4671,7 +4485,6 @@ void Int32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -4684,7 +4497,6 @@ LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void BinaryInt32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister left = locs()->in(0).fpu_reg();
|
| const VRegister right = locs()->in(1).fpu_reg();
|
| @@ -4710,7 +4522,6 @@ void BinaryInt32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* MathUnaryInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| ASSERT((kind() == MathUnaryInstr::kSqrt) ||
|
| @@ -4724,7 +4535,6 @@ LocationSummary* MathUnaryInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void MathUnaryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| if (kind() == MathUnaryInstr::kSqrt) {
|
| const VRegister val = locs()->in(0).fpu_reg();
|
| @@ -4739,7 +4549,6 @@ void MathUnaryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* CaseInsensitiveCompareUC16Instr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| @@ -4754,14 +4563,12 @@ LocationSummary* CaseInsensitiveCompareUC16Instr::MakeLocationSummary(
|
| return summary;
|
| }
|
|
|
| -
|
| void CaseInsensitiveCompareUC16Instr::EmitNativeCode(
|
| FlowGraphCompiler* compiler) {
|
| // Call the function.
|
| __ CallRuntime(TargetFunction(), TargetFunction().argument_count());
|
| }
|
|
|
| -
|
| LocationSummary* MathMinMaxInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| if (result_cid() == kDoubleCid) {
|
| @@ -4787,7 +4594,6 @@ LocationSummary* MathMinMaxInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void MathMinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT((op_kind() == MethodRecognizer::kMathMin) ||
|
| (op_kind() == MethodRecognizer::kMathMax));
|
| @@ -4847,7 +4653,6 @@ void MathMinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* UnarySmiOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4861,7 +4666,6 @@ LocationSummary* UnarySmiOpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void UnarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register value = locs()->in(0).reg();
|
| const Register result = locs()->out(0).reg();
|
| @@ -4882,7 +4686,6 @@ void UnarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4894,14 +4697,12 @@ LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void UnaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| __ fnegd(result, value);
|
| }
|
|
|
| -
|
| LocationSummary* Int32ToDoubleInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4913,14 +4714,12 @@ LocationSummary* Int32ToDoubleInstr::MakeLocationSummary(Zone* zone,
|
| return result;
|
| }
|
|
|
| -
|
| void Int32ToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register value = locs()->in(0).reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| __ scvtfdw(result, value);
|
| }
|
|
|
| -
|
| LocationSummary* SmiToDoubleInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4932,7 +4731,6 @@ LocationSummary* SmiToDoubleInstr::MakeLocationSummary(Zone* zone,
|
| return result;
|
| }
|
|
|
| -
|
| void SmiToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register value = locs()->in(0).reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| @@ -4940,19 +4738,16 @@ void SmiToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ scvtfdx(result, TMP);
|
| }
|
|
|
| -
|
| LocationSummary* MintToDoubleInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| UNIMPLEMENTED();
|
| return NULL;
|
| }
|
|
|
| -
|
| void MintToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| UNIMPLEMENTED();
|
| }
|
|
|
| -
|
| LocationSummary* DoubleToIntegerInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -4964,7 +4759,6 @@ LocationSummary* DoubleToIntegerInstr::MakeLocationSummary(Zone* zone,
|
| return result;
|
| }
|
|
|
| -
|
| void DoubleToIntegerInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register result = locs()->out(0).reg();
|
| const Register value_obj = locs()->in(0).reg();
|
| @@ -5001,7 +4795,6 @@ void DoubleToIntegerInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(&done);
|
| }
|
|
|
| -
|
| LocationSummary* DoubleToSmiInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -5013,7 +4806,6 @@ LocationSummary* DoubleToSmiInstr::MakeLocationSummary(Zone* zone,
|
| return result;
|
| }
|
|
|
| -
|
| void DoubleToSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptDoubleToSmi);
|
| const Register result = locs()->out(0).reg();
|
| @@ -5031,19 +4823,16 @@ void DoubleToSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ SmiTag(result);
|
| }
|
|
|
| -
|
| LocationSummary* DoubleToDoubleInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| UNIMPLEMENTED();
|
| return NULL;
|
| }
|
|
|
| -
|
| void DoubleToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| UNIMPLEMENTED();
|
| }
|
|
|
| -
|
| LocationSummary* DoubleToFloatInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -5055,14 +4844,12 @@ LocationSummary* DoubleToFloatInstr::MakeLocationSummary(Zone* zone,
|
| return result;
|
| }
|
|
|
| -
|
| void DoubleToFloatInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| __ fcvtsd(result, value);
|
| }
|
|
|
| -
|
| LocationSummary* FloatToDoubleInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -5074,14 +4861,12 @@ LocationSummary* FloatToDoubleInstr::MakeLocationSummary(Zone* zone,
|
| return result;
|
| }
|
|
|
| -
|
| void FloatToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const VRegister value = locs()->in(0).fpu_reg();
|
| const VRegister result = locs()->out(0).fpu_reg();
|
| __ fcvtds(result, value);
|
| }
|
|
|
| -
|
| LocationSummary* InvokeMathCFunctionInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| ASSERT((InputCount() == 1) || (InputCount() == 2));
|
| @@ -5100,7 +4885,6 @@ LocationSummary* InvokeMathCFunctionInstr::MakeLocationSummary(Zone* zone,
|
| return result;
|
| }
|
|
|
| -
|
| // Pseudo code:
|
| // if (exponent == 0.0) return 1.0;
|
| // // Speed up simple cases.
|
| @@ -5213,7 +4997,6 @@ static void InvokeDoublePow(FlowGraphCompiler* compiler,
|
| __ Bind(&skip_call);
|
| }
|
|
|
| -
|
| void InvokeMathCFunctionInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| if (recognized_kind() == MethodRecognizer::kMathDoublePow) {
|
| InvokeDoublePow(compiler, this);
|
| @@ -5222,7 +5005,6 @@ void InvokeMathCFunctionInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ CallRuntime(TargetFunction(), InputCount());
|
| }
|
|
|
| -
|
| LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| // Only use this instruction in optimized code.
|
| @@ -5255,7 +5037,6 @@ LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void ExtractNthOutputInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(locs()->in(0).IsPairLocation());
|
| PairLocation* pair = locs()->in(0).AsPairLocation();
|
| @@ -5272,7 +5053,6 @@ void ExtractNthOutputInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* TruncDivModInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -5287,7 +5067,6 @@ LocationSummary* TruncDivModInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void TruncDivModInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(CanDeoptimize());
|
| Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptBinarySmiOp);
|
| @@ -5336,14 +5115,12 @@ void TruncDivModInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(&done);
|
| }
|
|
|
| -
|
| LocationSummary* PolymorphicInstanceCallInstr::MakeLocationSummary(
|
| Zone* zone,
|
| bool opt) const {
|
| return MakeCallSummary(zone);
|
| }
|
|
|
| -
|
| LocationSummary* BranchInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| comparison()->InitializeLocationSummary(zone, opt);
|
| // Branches don't produce a result.
|
| @@ -5351,12 +5128,10 @@ LocationSummary* BranchInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return comparison()->locs();
|
| }
|
|
|
| -
|
| void BranchInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| comparison()->EmitBranchCode(compiler, this);
|
| }
|
|
|
| -
|
| LocationSummary* CheckClassInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -5374,7 +5149,6 @@ LocationSummary* CheckClassInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void CheckClassInstr::EmitNullCheck(FlowGraphCompiler* compiler, Label* deopt) {
|
| __ CompareObject(locs()->in(0).reg(), Object::null_object());
|
| ASSERT(IsDeoptIfNull() || IsDeoptIfNotNull());
|
| @@ -5382,7 +5156,6 @@ void CheckClassInstr::EmitNullCheck(FlowGraphCompiler* compiler, Label* deopt) {
|
| __ b(deopt, cond);
|
| }
|
|
|
| -
|
| void CheckClassInstr::EmitBitTest(FlowGraphCompiler* compiler,
|
| intptr_t min,
|
| intptr_t max,
|
| @@ -5400,7 +5173,6 @@ void CheckClassInstr::EmitBitTest(FlowGraphCompiler* compiler,
|
| __ b(deopt, EQ);
|
| }
|
|
|
| -
|
| int CheckClassInstr::EmitCheckCid(FlowGraphCompiler* compiler,
|
| int bias,
|
| intptr_t cid_start,
|
| @@ -5432,7 +5204,6 @@ int CheckClassInstr::EmitCheckCid(FlowGraphCompiler* compiler,
|
| return bias;
|
| }
|
|
|
| -
|
| LocationSummary* CheckClassIdInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -5444,7 +5215,6 @@ LocationSummary* CheckClassIdInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void CheckClassIdInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Register value = locs()->in(0).reg();
|
| Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptCheckClass);
|
| @@ -5458,7 +5228,6 @@ void CheckClassIdInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* CheckSmiInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -5469,7 +5238,6 @@ LocationSummary* CheckSmiInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void CheckSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register value = locs()->in(0).reg();
|
| Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptCheckSmi,
|
| @@ -5477,7 +5245,6 @@ void CheckSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ BranchIfNotSmi(value, deopt);
|
| }
|
|
|
| -
|
| LocationSummary* GenericCheckBoundInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -5489,7 +5256,6 @@ LocationSummary* GenericCheckBoundInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| class RangeErrorSlowPath : public SlowPathCode {
|
| public:
|
| RangeErrorSlowPath(GenericCheckBoundInstr* instruction, intptr_t try_index)
|
| @@ -5519,7 +5285,6 @@ class RangeErrorSlowPath : public SlowPathCode {
|
| intptr_t try_index_;
|
| };
|
|
|
| -
|
| void GenericCheckBoundInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| RangeErrorSlowPath* slow_path =
|
| new RangeErrorSlowPath(this, compiler->CurrentTryIndex());
|
| @@ -5537,7 +5302,6 @@ void GenericCheckBoundInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ b(slow_path->entry_label(), CS);
|
| }
|
|
|
| -
|
| LocationSummary* CheckArrayBoundInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -5549,7 +5313,6 @@ LocationSummary* CheckArrayBoundInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| void CheckArrayBoundInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| uint32_t flags = generalized_ ? ICData::kGeneralized : 0;
|
| flags |= licm_hoisted_ ? ICData::kHoisted : 0;
|
| @@ -5606,64 +5369,53 @@ void CheckArrayBoundInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* BinaryMintOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| UNIMPLEMENTED();
|
| return NULL;
|
| }
|
|
|
| -
|
| void BinaryMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| UNIMPLEMENTED();
|
| }
|
|
|
| -
|
| LocationSummary* ShiftMintOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| UNIMPLEMENTED();
|
| return NULL;
|
| }
|
|
|
| -
|
| void ShiftMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| UNIMPLEMENTED();
|
| }
|
|
|
| -
|
| LocationSummary* UnaryMintOpInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| UNIMPLEMENTED();
|
| return NULL;
|
| }
|
|
|
| -
|
| void UnaryMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| UNIMPLEMENTED();
|
| }
|
|
|
| -
|
| CompileType BinaryUint32OpInstr::ComputeType() const {
|
| return CompileType::FromCid(kSmiCid);
|
| }
|
|
|
| -
|
| CompileType ShiftUint32OpInstr::ComputeType() const {
|
| return CompileType::FromCid(kSmiCid);
|
| }
|
|
|
| -
|
| CompileType UnaryUint32OpInstr::ComputeType() const {
|
| return CompileType::FromCid(kSmiCid);
|
| }
|
|
|
| -
|
| DEFINE_UNIMPLEMENTED_INSTRUCTION(BinaryUint32OpInstr)
|
| DEFINE_UNIMPLEMENTED_INSTRUCTION(ShiftUint32OpInstr)
|
| DEFINE_UNIMPLEMENTED_INSTRUCTION(UnaryUint32OpInstr)
|
| DEFINE_UNIMPLEMENTED_INSTRUCTION(BinaryInt32OpInstr)
|
|
|
| -
|
| LocationSummary* UnboxedIntConverterInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -5683,7 +5435,6 @@ LocationSummary* UnboxedIntConverterInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void UnboxedIntConverterInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| if (from() == kUnboxedInt32 && to() == kUnboxedUint32) {
|
| const Register value = locs()->in(0).reg();
|
| @@ -5720,24 +5471,20 @@ void UnboxedIntConverterInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* ThrowInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return new (zone) LocationSummary(zone, 0, 0, LocationSummary::kCall);
|
| }
|
|
|
| -
|
| void ThrowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| compiler->GenerateRuntimeCall(token_pos(), deopt_id(), kThrowRuntimeEntry, 1,
|
| locs());
|
| __ brk(0);
|
| }
|
|
|
| -
|
| LocationSummary* ReThrowInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return new (zone) LocationSummary(zone, 0, 0, LocationSummary::kCall);
|
| }
|
|
|
| -
|
| void ReThrowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| compiler->SetNeedsStackTrace(catch_try_index());
|
| compiler->GenerateRuntimeCall(token_pos(), deopt_id(), kReThrowRuntimeEntry,
|
| @@ -5745,29 +5492,24 @@ void ReThrowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ brk(0);
|
| }
|
|
|
| -
|
| LocationSummary* StopInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return new (zone) LocationSummary(zone, 0, 0, LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void StopInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Stop(message());
|
| }
|
|
|
| -
|
| void GraphEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| if (!compiler->CanFallThroughTo(normal_entry())) {
|
| __ b(compiler->GetJumpLabel(normal_entry()));
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* GotoInstr::MakeLocationSummary(Zone* zone, bool opt) const {
|
| return new (zone) LocationSummary(zone, 0, 0, LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void GotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| if (!compiler->is_optimizing()) {
|
| if (FLAG_reorder_basic_blocks) {
|
| @@ -5789,7 +5531,6 @@ void GotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* IndirectGotoInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 1;
|
| @@ -5804,7 +5545,6 @@ LocationSummary* IndirectGotoInstr::MakeLocationSummary(Zone* zone,
|
| return summary;
|
| }
|
|
|
| -
|
| void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Register target_address_reg = locs()->temp_slot(0)->reg();
|
|
|
| @@ -5828,7 +5568,6 @@ void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ br(target_address_reg);
|
| }
|
|
|
| -
|
| LocationSummary* StrictCompareInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| const intptr_t kNumInputs = 2;
|
| @@ -5853,7 +5592,6 @@ LocationSummary* StrictCompareInstr::MakeLocationSummary(Zone* zone,
|
| return locs;
|
| }
|
|
|
| -
|
| Condition StrictCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| BranchLabels labels) {
|
| Location left = locs()->in(0);
|
| @@ -5879,7 +5617,6 @@ Condition StrictCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler,
|
| return true_condition;
|
| }
|
|
|
| -
|
| void ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Label is_true, is_false;
|
| BranchLabels labels = {&is_true, &is_false, &is_false};
|
| @@ -5899,7 +5636,6 @@ void ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Bind(&done);
|
| }
|
|
|
| -
|
| void ComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler,
|
| BranchInstr* branch) {
|
| BranchLabels labels = compiler->CreateBranchLabels(branch);
|
| @@ -5909,14 +5645,12 @@ void ComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler,
|
| }
|
| }
|
|
|
| -
|
| LocationSummary* BooleanNegateInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| return LocationSummary::Make(zone, 1, Location::RequiresRegister(),
|
| LocationSummary::kNoCall);
|
| }
|
|
|
| -
|
| void BooleanNegateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Register value = locs()->in(0).reg();
|
| const Register result = locs()->out(0).reg();
|
| @@ -5927,13 +5661,11 @@ void BooleanNegateInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ csel(result, TMP, result, EQ);
|
| }
|
|
|
| -
|
| LocationSummary* AllocateObjectInstr::MakeLocationSummary(Zone* zone,
|
| bool opt) const {
|
| return MakeCallSummary(zone);
|
| }
|
|
|
| -
|
| void AllocateObjectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Code& stub = Code::ZoneHandle(
|
| compiler->zone(), StubCode::GetAllocationStubForClass(cls()));
|
| @@ -5944,7 +5676,6 @@ void AllocateObjectInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ Drop(ArgumentCount()); // Discard arguments.
|
| }
|
|
|
| -
|
| void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(!compiler->is_optimizing());
|
| __ BranchLinkPatchable(*StubCode::DebugStepCheck_entry());
|
| @@ -5952,7 +5683,6 @@ void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| compiler->RecordSafepoint(locs());
|
| }
|
|
|
| -
|
| } // namespace dart
|
|
|
| #endif // defined TARGET_ARCH_ARM64
|
|
|