| Index: runtime/vm/intermediate_language_arm.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language_arm.cc (revision 35455)
|
| +++ runtime/vm/intermediate_language_arm.cc (working copy)
|
| @@ -710,7 +710,7 @@
|
| Register cid_reg = locs()->temp(0).reg();
|
|
|
| Label* deopt = CanDeoptimize() ?
|
| - compiler->AddDeoptStub(deopt_id(), kDeoptTestCids) : NULL;
|
| + compiler->AddDeoptStub(deopt_id(), ICData::kDeoptTestCids) : NULL;
|
|
|
| const intptr_t true_result = (kind() == Token::kIS) ? 1 : 0;
|
| const ZoneGrowableArray<intptr_t>& data = cid_results();
|
| @@ -1246,7 +1246,8 @@
|
| __ SmiTag(result);
|
| break;
|
| case kTypedDataInt32ArrayCid: {
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(), kDeoptInt32Load);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id(),
|
| + ICData::kDeoptInt32Load);
|
| __ ldr(result, element_address);
|
| // Verify that the signed value in 'result' can fit inside a Smi.
|
| __ CompareImmediate(result, 0xC0000000);
|
| @@ -1255,7 +1256,8 @@
|
| }
|
| break;
|
| case kTypedDataUint32ArrayCid: {
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(), kDeoptUint32Load);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id(),
|
| + ICData::kDeoptUint32Load);
|
| __ ldr(result, element_address);
|
| // Verify that the unsigned value in 'result' can fit inside a Smi.
|
| __ TestImmediate(result, 0xC0000000);
|
| @@ -1553,7 +1555,7 @@
|
| Label ok, fail_label;
|
|
|
| Label* deopt = compiler->is_optimizing() ?
|
| - compiler->AddDeoptStub(deopt_id(), kDeoptGuardField) : NULL;
|
| + compiler->AddDeoptStub(deopt_id(), ICData::kDeoptGuardField) : NULL;
|
|
|
| Label* fail = (deopt != NULL) ? deopt : &fail_label;
|
|
|
| @@ -2747,7 +2749,8 @@
|
| Register left = locs.in(0).reg();
|
| Register result = locs.out(0).reg();
|
| Label* deopt = shift_left->CanDeoptimize() ?
|
| - compiler->AddDeoptStub(shift_left->deopt_id(), kDeoptBinarySmiOp) : NULL;
|
| + compiler->AddDeoptStub(shift_left->deopt_id(), ICData::kDeoptBinarySmiOp)
|
| + : NULL;
|
| if (locs.in(1).IsConstant()) {
|
| const Object& constant = locs.in(1).constant();
|
| ASSERT(constant.IsSmi());
|
| @@ -2902,7 +2905,7 @@
|
| Register result = locs()->out(0).reg();
|
| Label* deopt = NULL;
|
| if (CanDeoptimize()) {
|
| - deopt = compiler->AddDeoptStub(deopt_id(), kDeoptBinarySmiOp);
|
| + deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptBinarySmiOp);
|
| }
|
|
|
| if (locs()->in(1).IsConstant()) {
|
| @@ -3197,7 +3200,8 @@
|
|
|
|
|
| void CheckEitherNonSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(), kDeoptBinaryDoubleOp);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id(),
|
| + ICData::kDeoptBinaryDoubleOp);
|
| intptr_t left_cid = left()->Type()->ToCid();
|
| intptr_t right_cid = right()->Type()->ToCid();
|
| Register left = locs()->in(0).reg();
|
| @@ -3273,7 +3277,8 @@
|
| __ vmovsr(STMP, value);
|
| __ vcvtdi(result, STMP);
|
| } else {
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id_, kDeoptBinaryDoubleOp);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id_,
|
| + ICData::kDeoptBinaryDoubleOp);
|
| Register temp = locs()->temp(0).reg();
|
| Label is_smi, done;
|
| __ tst(value, ShifterOperand(kSmiTagMask));
|
| @@ -3348,7 +3353,7 @@
|
|
|
| if (value_cid != kFloat32x4Cid) {
|
| const Register temp = locs()->temp(0).reg();
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id_, kDeoptCheckClass);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id_, ICData::kDeoptCheckClass);
|
| __ tst(value, ShifterOperand(kSmiTagMask));
|
| __ b(deopt, EQ);
|
| __ CompareClassId(value, kFloat32x4Cid, temp);
|
| @@ -3417,7 +3422,7 @@
|
|
|
| if (value_cid != kFloat64x2Cid) {
|
| const Register temp = locs()->temp(0).reg();
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id_, kDeoptCheckClass);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id_, ICData::kDeoptCheckClass);
|
| __ tst(value, ShifterOperand(kSmiTagMask));
|
| __ b(deopt, EQ);
|
| __ CompareClassId(value, kFloat64x2Cid, temp);
|
| @@ -3517,7 +3522,7 @@
|
|
|
| if (value_cid != kInt32x4Cid) {
|
| const Register temp = locs()->temp(0).reg();
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id_, kDeoptCheckClass);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id_, ICData::kDeoptCheckClass);
|
| __ tst(value, ShifterOperand(kSmiTagMask));
|
| __ b(deopt, EQ);
|
| __ CompareClassId(value, kInt32x4Cid, temp);
|
| @@ -4828,8 +4833,7 @@
|
| Register result = locs()->out(0).reg();
|
| switch (op_kind()) {
|
| case Token::kNEGATE: {
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(),
|
| - kDeoptUnaryOp);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptUnaryOp);
|
| __ rsbs(result, value, ShifterOperand(0));
|
| __ b(deopt, VS);
|
| break;
|
| @@ -4947,7 +4951,7 @@
|
|
|
|
|
| void DoubleToSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(), kDeoptDoubleToSmi);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptDoubleToSmi);
|
| Register result = locs()->out(0).reg();
|
| DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg());
|
| // First check for NaN. Checking for minint after the conversion doesn't work
|
| @@ -5209,7 +5213,7 @@
|
| void MergedMathInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Label* deopt = NULL;
|
| if (CanDeoptimize()) {
|
| - deopt = compiler->AddDeoptStub(deopt_id(), kDeoptBinarySmiOp);
|
| + deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptBinarySmiOp);
|
| }
|
| if (kind() == MergedMathInstr::kTruncDivMod) {
|
| Register left = locs()->in(0).reg();
|
| @@ -5275,13 +5279,13 @@
|
|
|
|
|
| void PolymorphicInstanceCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(),
|
| - kDeoptPolymorphicInstanceCallTestFail);
|
| + Label* deopt = compiler->AddDeoptStub(
|
| + deopt_id(), ICData::kDeoptPolymorphicInstanceCallTestFail);
|
| if (ic_data().NumberOfChecks() == 0) {
|
| __ b(deopt);
|
| return;
|
| }
|
| - ASSERT(ic_data().num_args_tested() == 1);
|
| + ASSERT(ic_data().NumArgsTested() == 1);
|
| if (!with_checks()) {
|
| ASSERT(ic_data().HasOneTarget());
|
| const Function& target = Function::ZoneHandle(ic_data().GetTargetAt(0));
|
| @@ -5339,8 +5343,8 @@
|
|
|
|
|
| void CheckClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| - const DeoptReasonId deopt_reason =
|
| - licm_hoisted_ ? kDeoptHoistedCheckClass : kDeoptCheckClass;
|
| + const ICData::DeoptReasonId deopt_reason = licm_hoisted_ ?
|
| + ICData::kDeoptHoistedCheckClass : ICData::kDeoptCheckClass;
|
| if (IsNullCheck()) {
|
| Label* deopt = compiler->AddDeoptStub(deopt_id(), deopt_reason);
|
| __ CompareImmediate(locs()->in(0).reg(),
|
| @@ -5391,8 +5395,7 @@
|
|
|
| void CheckSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Register value = locs()->in(0).reg();
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(),
|
| - kDeoptCheckSmi);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptCheckSmi);
|
| __ tst(value, ShifterOperand(kSmiTagMask));
|
| __ b(deopt, NE);
|
| }
|
| @@ -5410,7 +5413,8 @@
|
|
|
|
|
| void CheckArrayBoundInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(), kDeoptCheckArrayBound);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id(),
|
| + ICData::kDeoptCheckArrayBound);
|
|
|
| Location length_loc = locs()->in(kLengthPos);
|
| Location index_loc = locs()->in(kIndexPos);
|
| @@ -5510,7 +5514,8 @@
|
| __ vmovdrr(EvenDRegisterOf(result), value, temp);
|
| } else {
|
| Register temp = locs()->temp(0).reg();
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id_, kDeoptUnboxInteger);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id_,
|
| + ICData::kDeoptUnboxInteger);
|
| Label is_smi, done;
|
| __ tst(value, ShifterOperand(kSmiTagMask));
|
| __ b(&is_smi, EQ);
|
| @@ -5662,7 +5667,7 @@
|
|
|
| Label* deopt = NULL;
|
| if (FLAG_throw_on_javascript_int_overflow) {
|
| - deopt = compiler->AddDeoptStub(deopt_id(), kDeoptBinaryMintOp);
|
| + deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptBinaryMintOp);
|
| }
|
| switch (op_kind()) {
|
| case Token::kBIT_AND: __ vandq(out, left, right); break;
|
| @@ -5675,7 +5680,7 @@
|
| QRegister ro = locs()->temp(tmpidx + 1).fpu_reg();
|
| ASSERT(ro == Q7);
|
| if (!FLAG_throw_on_javascript_int_overflow) {
|
| - deopt = compiler->AddDeoptStub(deopt_id(), kDeoptBinaryMintOp);
|
| + deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptBinaryMintOp);
|
| }
|
| if (op_kind() == Token::kADD) {
|
| __ vaddqi(kWordPair, out, left, right);
|
| @@ -5729,7 +5734,7 @@
|
| SRegister stemp0 = EvenSRegisterOf(dtemp0);
|
| SRegister stemp1 = OddSRegisterOf(dtemp0);
|
|
|
| - Label* deopt = compiler->AddDeoptStub(deopt_id(), kDeoptShiftMintOp);
|
| + Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptShiftMintOp);
|
| Label done;
|
|
|
| __ CompareImmediate(shift, 0);
|
| @@ -5807,8 +5812,7 @@
|
| QRegister out = locs()->out(0).fpu_reg();
|
| Label* deopt = NULL;
|
| if (FLAG_throw_on_javascript_int_overflow) {
|
| - deopt = compiler->AddDeoptStub(deopt_id(),
|
| - kDeoptUnaryMintOp);
|
| + deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptUnaryMintOp);
|
| }
|
| __ vmvnq(out, value);
|
| if (FLAG_throw_on_javascript_int_overflow) {
|
|
|