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

Unified Diff: runtime/vm/intermediate_language_arm64.cc

Issue 593363003: Expands the use of Immediate and Operand wrappers. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 3 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
Index: runtime/vm/intermediate_language_arm64.cc
===================================================================
--- runtime/vm/intermediate_language_arm64.cc (revision 40623)
+++ runtime/vm/intermediate_language_arm64.cc (working copy)
@@ -642,7 +642,7 @@
const ZoneGrowableArray<intptr_t>& data = cid_results();
ASSERT(data[0] == kSmiCid);
bool result = data[1] == true_result;
- __ tsti(val_reg, kSmiTagMask);
+ __ tsti(val_reg, Immediate(kSmiTagMask));
__ b(result ? labels.true_label : labels.false_label, EQ);
__ LoadClassId(cid_reg, val_reg, PP);
@@ -937,7 +937,7 @@
static const intptr_t kSmiCidSource = kSmiCid << RawObject::kClassIdTagPos;
__ LoadImmediate(TMP, reinterpret_cast<int64_t>(&kSmiCidSource) + 1, PP);
- __ tsti(object, kSmiTagMask);
+ __ tsti(object, Immediate(kSmiTagMask));
__ csel(TMP, TMP, object, EQ);
__ LoadClassId(result, TMP, PP);
__ SmiTag(result);
@@ -1327,7 +1327,7 @@
if (value_is_smi == NULL) {
__ LoadImmediate(value_cid_reg, kSmiCid, PP);
}
- __ tsti(value_reg, kSmiTagMask);
+ __ tsti(value_reg, Immediate(kSmiTagMask));
if (value_is_smi == NULL) {
__ b(&done, EQ);
} else {
@@ -1481,7 +1481,7 @@
// Field guard class has been initialized and is known.
if (value_cid == kDynamicCid) {
// Value's class id is not known.
- __ tsti(value_reg, kSmiTagMask);
+ __ tsti(value_reg, Immediate(kSmiTagMask));
if (field_cid != kSmiCid) {
__ b(fail, EQ);
@@ -1791,7 +1791,7 @@
__ LoadFromOffset(
temp2, temp, Field::kind_bits_offset() - kHeapObjectTag,
PP, kUnsignedByte);
- __ tsti(temp2, 1 << Field::kUnboxingCandidateBit);
+ __ tsti(temp2, Immediate(1 << Field::kUnboxingCandidateBit));
__ b(&store_pointer, EQ);
__ LoadFieldFromOffset(temp2, temp, Field::guarded_cid_offset(), PP, kWord);
@@ -2944,12 +2944,12 @@
const Register left = locs()->in(0).reg();
const Register right = locs()->in(1).reg();
if (left_cid == kSmiCid) {
- __ tsti(right, kSmiTagMask);
+ __ tsti(right, Immediate(kSmiTagMask));
} else if (right_cid == kSmiCid) {
- __ tsti(left, kSmiTagMask);
+ __ tsti(left, Immediate(kSmiTagMask));
} else {
__ orr(TMP, left, Operand(right));
- __ tsti(TMP, kSmiTagMask);
+ __ tsti(TMP, Immediate(kSmiTagMask));
}
__ b(deopt, EQ);
}
@@ -3013,7 +3013,7 @@
__ LoadDFieldFromOffset(result, value, Double::value_offset(), PP);
} else {
Label is_smi, done;
- __ tsti(value, kSmiTagMask);
+ __ tsti(value, Immediate(kSmiTagMask));
__ b(&is_smi, EQ);
__ CompareClassId(value, kDoubleCid, PP);
__ b(deopt, NE);
@@ -3071,7 +3071,7 @@
if (value_cid != kFloat32x4Cid) {
Label* deopt = compiler->AddDeoptStub(deopt_id_, ICData::kDeoptCheckClass);
- __ tsti(value, kSmiTagMask);
+ __ tsti(value, Immediate(kSmiTagMask));
__ b(deopt, EQ);
__ CompareClassId(value, kFloat32x4Cid, PP);
__ b(deopt, NE);
@@ -3124,7 +3124,7 @@
if (value_cid != kFloat64x2Cid) {
Label* deopt = compiler->AddDeoptStub(deopt_id_, ICData::kDeoptCheckClass);
- __ tsti(value, kSmiTagMask);
+ __ tsti(value, Immediate(kSmiTagMask));
__ b(deopt, EQ);
__ CompareClassId(value, kFloat64x2Cid, PP);
__ b(deopt, NE);
@@ -3176,7 +3176,7 @@
if (value_cid != kInt32x4Cid) {
Label* deopt = compiler->AddDeoptStub(deopt_id_, ICData::kDeoptCheckClass);
- __ tsti(value, kSmiTagMask);
+ __ tsti(value, Immediate(kSmiTagMask));
__ b(deopt, EQ);
__ CompareClassId(value, kInt32x4Cid, PP);
__ b(deopt, NE);
@@ -4356,7 +4356,7 @@
case Token::kBIT_NOT:
__ mvn(result, value);
// Remove inverted smi-tag.
- __ andi(result, result, ~kSmiTagMask);
+ __ andi(result, result, Immediate(~kSmiTagMask));
break;
default:
UNREACHABLE();
@@ -4919,11 +4919,11 @@
Label is_ok;
intptr_t cix = 0;
if (unary_checks().GetReceiverClassIdAt(cix) == kSmiCid) {
- __ tsti(value, kSmiTagMask);
+ __ tsti(value, Immediate(kSmiTagMask));
__ b(&is_ok, EQ);
cix++; // Skip first check.
} else {
- __ tsti(value, kSmiTagMask);
+ __ tsti(value, Immediate(kSmiTagMask));
__ b(deopt, EQ);
}
__ LoadClassId(temp, value, PP);
@@ -4994,7 +4994,7 @@
void CheckSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
const Register value = locs()->in(0).reg();
Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptCheckSmi);
- __ tsti(value, kSmiTagMask);
+ __ tsti(value, Immediate(kSmiTagMask));
__ b(deopt, NE);
}

Powered by Google App Engine
This is Rietveld 408576698