Index: runtime/vm/intermediate_language_arm.cc |
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc |
index 995c1cd866cb947eb2d25850a61dac94d9bcb201..b3d0f06a48c1c73008501722490ce2f01751ceb8 100644 |
--- a/runtime/vm/intermediate_language_arm.cc |
+++ b/runtime/vm/intermediate_language_arm.cc |
@@ -36,7 +36,6 @@ LocationSummary* Instruction::MakeCallSummary(Zone* zone) { |
return result; |
} |
- |
LocationSummary* PushArgumentInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -47,7 +46,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. |
@@ -66,7 +64,6 @@ void PushArgumentInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* ReturnInstr::MakeLocationSummary(Zone* zone, bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
@@ -76,7 +73,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. |
@@ -110,7 +106,6 @@ void ReturnInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ set_constant_pool_allowed(true); |
} |
- |
static Condition NegateCondition(Condition condition) { |
switch (condition) { |
case EQ: |
@@ -143,21 +138,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(); |
@@ -212,7 +204,6 @@ void IfThenElseInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* ClosureCallInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -224,7 +215,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. |
@@ -258,27 +248,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(kWord, 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(); |
@@ -286,14 +272,12 @@ void StoreLocalInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ StoreToOffset(kWord, 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()) { |
@@ -302,7 +286,6 @@ void ConstantInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* UnboxedConstantInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 0; |
@@ -321,7 +304,6 @@ LocationSummary* UnboxedConstantInstr::MakeLocationSummary(Zone* zone, |
return locs; |
} |
- |
void UnboxedConstantInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
// The register allocator drops constant definitions that have no uses. |
if (!locs()->out(0).IsInvalid()) { |
@@ -347,7 +329,6 @@ void UnboxedConstantInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* AssertAssignableInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 3; |
@@ -361,7 +342,6 @@ LocationSummary* AssertAssignableInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
LocationSummary* AssertBooleanInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -373,7 +353,6 @@ LocationSummary* AssertBooleanInstr::MakeLocationSummary(Zone* zone, |
return locs; |
} |
- |
static void EmitAssertBoolean(Register reg, |
TokenPosition token_pos, |
intptr_t deopt_id, |
@@ -403,7 +382,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(); |
@@ -412,7 +390,6 @@ void AssertBooleanInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(obj == result); |
} |
- |
static Condition TokenKindToSmiCondition(Token::Kind kind) { |
switch (kind) { |
case Token::kEQ: |
@@ -433,7 +410,6 @@ static Condition TokenKindToSmiCondition(Token::Kind kind) { |
} |
} |
- |
LocationSummary* EqualityCompareInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -474,7 +450,6 @@ LocationSummary* EqualityCompareInstr::MakeLocationSummary(Zone* zone, |
return NULL; |
} |
- |
static void LoadValueCid(FlowGraphCompiler* compiler, |
Register value_cid_reg, |
Register value_reg, |
@@ -491,7 +466,6 @@ static void LoadValueCid(FlowGraphCompiler* compiler, |
} |
} |
- |
static Condition FlipCondition(Condition condition) { |
switch (condition) { |
case EQ: |
@@ -520,7 +494,6 @@ static Condition FlipCondition(Condition condition) { |
} |
} |
- |
static void EmitBranchOnCondition(FlowGraphCompiler* compiler, |
Condition true_condition, |
BranchLabels labels) { |
@@ -539,7 +512,6 @@ static void EmitBranchOnCondition(FlowGraphCompiler* compiler, |
} |
} |
- |
static Condition EmitSmiComparisonOp(FlowGraphCompiler* compiler, |
LocationSummary* locs, |
Token::Kind kind) { |
@@ -560,7 +532,6 @@ static Condition EmitSmiComparisonOp(FlowGraphCompiler* compiler, |
return true_condition; |
} |
- |
static Condition TokenKindToMintCondition(Token::Kind kind) { |
switch (kind) { |
case Token::kEQ: |
@@ -581,7 +552,6 @@ static Condition TokenKindToMintCondition(Token::Kind kind) { |
} |
} |
- |
static Condition EmitUnboxedMintEqualityOp(FlowGraphCompiler* compiler, |
LocationSummary* locs, |
Token::Kind kind) { |
@@ -600,7 +570,6 @@ static Condition EmitUnboxedMintEqualityOp(FlowGraphCompiler* compiler, |
return TokenKindToMintCondition(kind); |
} |
- |
static Condition EmitUnboxedMintComparisonOp(FlowGraphCompiler* compiler, |
LocationSummary* locs, |
Token::Kind kind, |
@@ -645,7 +614,6 @@ static Condition EmitUnboxedMintComparisonOp(FlowGraphCompiler* compiler, |
return lo_cond; |
} |
- |
static Condition TokenKindToDoubleCondition(Token::Kind kind) { |
switch (kind) { |
case Token::kEQ: |
@@ -666,7 +634,6 @@ static Condition TokenKindToDoubleCondition(Token::Kind kind) { |
} |
} |
- |
static Condition EmitDoubleComparisonOp(FlowGraphCompiler* compiler, |
LocationSummary* locs, |
BranchLabels labels, |
@@ -686,7 +653,6 @@ static Condition EmitDoubleComparisonOp(FlowGraphCompiler* compiler, |
return true_condition; |
} |
- |
Condition EqualityCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
if (operation_cid() == kSmiCid) { |
@@ -699,7 +665,6 @@ Condition EqualityCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
} |
} |
- |
LocationSummary* TestSmiInstr::MakeLocationSummary(Zone* zone, bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
@@ -712,7 +677,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(); |
@@ -728,7 +692,6 @@ Condition TestSmiInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
return true_condition; |
} |
- |
LocationSummary* TestCidsInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -741,18 +704,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(); |
@@ -786,7 +747,6 @@ Condition TestCidsInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
return kInvalidCondition; |
} |
- |
LocationSummary* RelationalOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -823,7 +783,6 @@ LocationSummary* RelationalOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
Condition RelationalOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
if (operation_cid() == kSmiCid) { |
@@ -836,13 +795,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(); |
@@ -898,7 +855,6 @@ void NativeCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Pop(result); |
} |
- |
LocationSummary* OneByteStringFromCharCodeInstr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -908,7 +864,6 @@ LocationSummary* OneByteStringFromCharCodeInstr::MakeLocationSummary( |
LocationSummary::kNoCall); |
} |
- |
void OneByteStringFromCharCodeInstr::EmitNativeCode( |
FlowGraphCompiler* compiler) { |
ASSERT(compiler->is_optimizing()); |
@@ -920,7 +875,6 @@ void OneByteStringFromCharCodeInstr::EmitNativeCode( |
__ ldr(result, Address(result, char_code, LSL, 1)); // Char code is a smi. |
} |
- |
LocationSummary* StringToCharCodeInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -928,7 +882,6 @@ LocationSummary* StringToCharCodeInstr::MakeLocationSummary(Zone* zone, |
LocationSummary::kNoCall); |
} |
- |
void StringToCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(cid_ == kOneByteStringCid); |
const Register str = locs()->in(0).reg(); |
@@ -940,7 +893,6 @@ void StringToCharCodeInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ SmiTag(result); |
} |
- |
LocationSummary* StringInterpolateInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -952,7 +904,6 @@ LocationSummary* StringInterpolateInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void StringInterpolateInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const Register array = locs()->in(0).reg(); |
__ Push(array); |
@@ -965,7 +916,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; |
@@ -973,7 +923,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(); |
@@ -985,7 +934,6 @@ void LoadUntaggedInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* LoadClassIdInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -993,7 +941,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(); |
@@ -1007,7 +954,6 @@ void LoadClassIdInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
CompileType LoadIndexedInstr::ComputeType() const { |
switch (class_id_) { |
case kArrayCid: |
@@ -1047,7 +993,6 @@ CompileType LoadIndexedInstr::ComputeType() const { |
} |
} |
- |
Representation LoadIndexedInstr::representation() const { |
switch (class_id_) { |
case kArrayCid: |
@@ -1083,7 +1028,6 @@ Representation LoadIndexedInstr::representation() const { |
} |
} |
- |
static bool CanBeImmediateIndex(Value* value, |
intptr_t cid, |
bool is_external, |
@@ -1121,7 +1065,6 @@ static bool CanBeImmediateIndex(Value* value, |
return false; |
} |
- |
LocationSummary* LoadIndexedInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -1175,7 +1118,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(); |
@@ -1326,7 +1268,6 @@ void LoadIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
Representation StoreIndexedInstr::RequiredInputRepresentation( |
intptr_t idx) const { |
// Array can be a Dart object or a pointer to external data. |
@@ -1363,7 +1304,6 @@ Representation StoreIndexedInstr::RequiredInputRepresentation( |
} |
} |
- |
LocationSummary* StoreIndexedInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 3; |
@@ -1435,7 +1375,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(); |
@@ -1587,7 +1526,6 @@ void StoreIndexedInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* GuardFieldClassInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -1621,7 +1559,6 @@ LocationSummary* GuardFieldClassInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(sizeof(classid_t) == kInt16Size); |
@@ -1763,7 +1700,6 @@ void GuardFieldClassInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Bind(&ok); |
} |
- |
LocationSummary* GuardFieldLengthInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -1790,7 +1726,6 @@ LocationSummary* GuardFieldLengthInstr::MakeLocationSummary(Zone* zone, |
UNREACHABLE(); |
} |
- |
void GuardFieldLengthInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (field().guarded_list_length() == Field::kNoFixedLength) { |
if (Compiler::IsBackgroundCompilation()) { |
@@ -1866,7 +1801,6 @@ void GuardFieldLengthInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
class BoxAllocationSlowPath : public SlowPathCode { |
public: |
BoxAllocationSlowPath(Instruction* instruction, |
@@ -1920,7 +1854,6 @@ class BoxAllocationSlowPath : public SlowPathCode { |
const Register result_; |
}; |
- |
LocationSummary* LoadCodeUnitsInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const bool might_box = (representation() == kTagged) && !can_pack_into_smi(); |
@@ -1947,7 +1880,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(); |
@@ -2044,7 +1976,6 @@ void LoadCodeUnitsInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* StoreInstanceFieldInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -2077,7 +2008,6 @@ LocationSummary* StoreInstanceFieldInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
static void EnsureMutableBox(FlowGraphCompiler* compiler, |
StoreInstanceFieldInstr* instruction, |
Register box_reg, |
@@ -2097,7 +2027,6 @@ static void EnsureMutableBox(FlowGraphCompiler* compiler, |
__ Bind(&done); |
} |
- |
void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(sizeof(classid_t) == kInt16Size); |
@@ -2246,7 +2175,6 @@ void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Bind(&skip_store); |
} |
- |
LocationSummary* LoadStaticFieldInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -2258,7 +2186,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. |
@@ -2270,7 +2197,6 @@ void LoadStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ LoadFieldFromOffset(kWord, result, field, Field::static_value_offset()); |
} |
- |
LocationSummary* StoreStaticFieldInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
LocationSummary* locs = |
@@ -2281,7 +2207,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(); |
@@ -2296,7 +2221,6 @@ void StoreStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* InstanceOfInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 3; |
@@ -2310,7 +2234,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() == R2); // Instantiator type arguments. |
@@ -2320,7 +2243,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; |
@@ -2333,7 +2255,6 @@ LocationSummary* CreateArrayInstr::MakeLocationSummary(Zone* zone, |
return locs; |
} |
- |
// Inlines array allocation for known constant values. |
static void InlineArrayAllocation(FlowGraphCompiler* compiler, |
intptr_t num_elements, |
@@ -2387,7 +2308,6 @@ static void InlineArrayAllocation(FlowGraphCompiler* compiler, |
__ b(done); |
} |
- |
void CreateArrayInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const Register kLengthReg = R2; |
const Register kElemTypeReg = R1; |
@@ -2424,7 +2344,6 @@ void CreateArrayInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(locs()->out(0).reg() == kResultReg); |
} |
- |
LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -2432,9 +2351,9 @@ LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone, |
(IsUnboxedLoad() && opt) ? 1 : ((IsPotentialUnboxedLoad()) ? 3 : 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()); |
@@ -2450,7 +2369,6 @@ LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone, |
return locs; |
} |
- |
void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(sizeof(classid_t) == kInt16Size); |
@@ -2556,7 +2474,6 @@ void LoadFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Bind(&done); |
} |
- |
LocationSummary* InstantiateTypeInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -2569,7 +2486,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(); |
@@ -2588,7 +2504,6 @@ void InstantiateTypeInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Pop(result_reg); // Pop instantiated type. |
} |
- |
LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -2602,7 +2517,6 @@ LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary( |
return locs; |
} |
- |
void InstantiateTypeArgumentsInstr::EmitNativeCode( |
FlowGraphCompiler* compiler) { |
const Register instantiator_type_args_reg = locs()->in(0).reg(); |
@@ -2669,7 +2583,6 @@ void InstantiateTypeArgumentsInstr::EmitNativeCode( |
__ Bind(&type_arguments_instantiated); |
} |
- |
LocationSummary* AllocateUninitializedContextInstr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -2685,7 +2598,6 @@ LocationSummary* AllocateUninitializedContextInstr::MakeLocationSummary( |
return locs; |
} |
- |
class AllocateContextSlowPath : public SlowPathCode { |
public: |
explicit AllocateContextSlowPath( |
@@ -2717,7 +2629,6 @@ class AllocateContextSlowPath : public SlowPathCode { |
AllocateUninitializedContextInstr* instruction_; |
}; |
- |
void AllocateUninitializedContextInstr::EmitNativeCode( |
FlowGraphCompiler* compiler) { |
Register temp0 = locs()->temp(0).reg(); |
@@ -2740,7 +2651,6 @@ void AllocateUninitializedContextInstr::EmitNativeCode( |
__ Bind(slow_path->exit_label()); |
} |
- |
LocationSummary* AllocateContextInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 0; |
@@ -2752,7 +2662,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); |
@@ -2762,7 +2671,6 @@ void AllocateContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
RawPcDescriptors::kOther, locs()); |
} |
- |
LocationSummary* InitStaticFieldInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -2774,7 +2682,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(); |
@@ -2796,7 +2703,6 @@ void InitStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Bind(&no_call); |
} |
- |
LocationSummary* CloneContextInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -2808,7 +2714,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(); |
@@ -2821,14 +2726,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(), |
@@ -2890,7 +2793,6 @@ void CatchBlockEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* CheckStackOverflowInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 0; |
@@ -2901,7 +2803,6 @@ LocationSummary* CheckStackOverflowInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
class CheckStackOverflowSlowPath : public SlowPathCode { |
public: |
explicit CheckStackOverflowSlowPath(CheckStackOverflowInstr* instruction) |
@@ -2949,7 +2850,6 @@ class CheckStackOverflowSlowPath : public SlowPathCode { |
Label osr_entry_label_; |
}; |
- |
void CheckStackOverflowInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
CheckStackOverflowSlowPath* slow_path = new CheckStackOverflowSlowPath(this); |
compiler->AddSlowPathCode(slow_path); |
@@ -2975,7 +2875,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(); |
@@ -3068,7 +2967,6 @@ static void EmitSmiShiftLeft(FlowGraphCompiler* compiler, |
} |
} |
- |
class CheckedSmiSlowPath : public SlowPathCode { |
public: |
CheckedSmiSlowPath(CheckedSmiOpInstr* instruction, intptr_t try_index) |
@@ -3110,7 +3008,6 @@ class CheckedSmiSlowPath : public SlowPathCode { |
intptr_t try_index_; |
}; |
- |
LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -3123,7 +3020,6 @@ LocationSummary* CheckedSmiOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
CheckedSmiSlowPath* slow_path = |
new CheckedSmiSlowPath(this, compiler->CurrentTryIndex()); |
@@ -3205,7 +3101,6 @@ void CheckedSmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Bind(slow_path->exit_label()); |
} |
- |
class CheckedSmiComparisonSlowPath : public SlowPathCode { |
public: |
CheckedSmiComparisonSlowPath(CheckedSmiComparisonInstr* instruction, |
@@ -3264,7 +3159,6 @@ class CheckedSmiComparisonSlowPath : public SlowPathCode { |
bool merged_; |
}; |
- |
LocationSummary* CheckedSmiComparisonInstr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -3279,14 +3173,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(); \ |
@@ -3305,7 +3197,6 @@ Condition CheckedSmiComparisonInstr::EmitComparisonCode( |
} \ |
__ b(slow_path->entry_label(), NE) |
- |
void CheckedSmiComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler, |
BranchInstr* branch) { |
BranchLabels labels = compiler->CreateBranchLabels(branch); |
@@ -3320,7 +3211,6 @@ void CheckedSmiComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler, |
__ Bind(slow_path->exit_label()); |
} |
- |
void CheckedSmiComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
BranchLabels labels = {NULL, NULL, NULL}; |
CheckedSmiComparisonSlowPath* slow_path = new CheckedSmiComparisonSlowPath( |
@@ -3337,7 +3227,6 @@ void CheckedSmiComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
#undef EMIT_SMI_CHECK |
- |
LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -3391,7 +3280,6 @@ LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BinarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (op_kind() == Token::kSHL) { |
EmitSmiShiftLeft(compiler, this); |
@@ -3652,7 +3540,6 @@ void BinarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
static void EmitInt32ShiftLeft(FlowGraphCompiler* compiler, |
BinaryInt32OpInstr* shift_left) { |
const LocationSummary& locs = *shift_left->locs(); |
@@ -3679,7 +3566,6 @@ static void EmitInt32ShiftLeft(FlowGraphCompiler* compiler, |
__ Lsl(result, left, Operand(value)); |
} |
- |
LocationSummary* BinaryInt32OpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -3703,7 +3589,6 @@ LocationSummary* BinaryInt32OpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BinaryInt32OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (op_kind() == Token::kSHL) { |
EmitInt32ShiftLeft(compiler, this); |
@@ -3856,7 +3741,6 @@ void BinaryInt32OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* CheckEitherNonSmiInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
intptr_t left_cid = left()->Type()->ToCid(); |
@@ -3871,7 +3755,6 @@ LocationSummary* CheckEitherNonSmiInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void CheckEitherNonSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
Label* deopt = |
compiler->AddDeoptStub(deopt_id(), ICData::kDeoptBinaryDoubleOp, |
@@ -3893,7 +3776,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; |
@@ -3905,7 +3787,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 DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg()); |
@@ -3930,7 +3811,6 @@ void BoxInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* UnboxInstr::MakeLocationSummary(Zone* zone, bool opt) const { |
const bool needs_temp = CanDeoptimize(); |
const intptr_t kNumInputs = 1; |
@@ -3950,7 +3830,6 @@ LocationSummary* UnboxInstr::MakeLocationSummary(Zone* zone, bool opt) const { |
return summary; |
} |
- |
void UnboxInstr::EmitLoadFromBox(FlowGraphCompiler* compiler) { |
const Register box = locs()->in(0).reg(); |
@@ -3984,7 +3863,6 @@ void UnboxInstr::EmitLoadFromBox(FlowGraphCompiler* compiler) { |
} |
} |
- |
void UnboxInstr::EmitSmiConversion(FlowGraphCompiler* compiler) { |
const Register box = locs()->in(0).reg(); |
@@ -4010,7 +3888,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(); |
@@ -4049,7 +3926,6 @@ void UnboxInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* BoxInteger32Instr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
ASSERT((from_representation() == kUnboxedInt32) || |
@@ -4068,7 +3944,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(); |
@@ -4102,7 +3977,6 @@ void BoxInteger32Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* BoxInt64Instr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4120,7 +3994,6 @@ LocationSummary* BoxInt64Instr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BoxInt64Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (ValueFitsSmi()) { |
PairLocation* value_pair = locs()->in(0).AsPairLocation(); |
@@ -4151,7 +4024,6 @@ void BoxInt64Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Bind(&done); |
} |
- |
static void LoadInt32FromMint(FlowGraphCompiler* compiler, |
Register mint, |
Register result, |
@@ -4165,7 +4037,6 @@ static void LoadInt32FromMint(FlowGraphCompiler* compiler, |
} |
} |
- |
LocationSummary* UnboxInteger32Instr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
ASSERT((representation() == kUnboxedInt32) || |
@@ -4183,16 +4054,14 @@ LocationSummary* UnboxInteger32Instr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void UnboxInteger32Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const intptr_t value_cid = value()->Type()->ToCid(); |
const Register value = locs()->in(0).reg(); |
const Register out = locs()->out(0).reg(); |
const Register temp = CanDeoptimize() ? locs()->temp(0).reg() : kNoRegister; |
- Label* deopt = |
- CanDeoptimize() |
- ? compiler->AddDeoptStub(GetDeoptId(), ICData::kDeoptUnboxInteger) |
- : NULL; |
+ Label* deopt = CanDeoptimize() ? compiler->AddDeoptStub( |
+ GetDeoptId(), ICData::kDeoptUnboxInteger) |
+ : NULL; |
Label* out_of_range = !is_truncating() ? deopt : NULL; |
ASSERT(value != out); |
@@ -4215,7 +4084,6 @@ void UnboxInteger32Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -4228,7 +4096,6 @@ LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BinaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const DRegister left = EvenDRegisterOf(locs()->in(0).fpu_reg()); |
const DRegister right = EvenDRegisterOf(locs()->in(1).fpu_reg()); |
@@ -4251,7 +4118,6 @@ void BinaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* DoubleTestOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4267,7 +4133,6 @@ LocationSummary* DoubleTestOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
Condition DoubleTestOpInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
const DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg()); |
@@ -4305,7 +4170,6 @@ LocationSummary* BinaryFloat32x4OpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BinaryFloat32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister right = locs()->in(1).fpu_reg(); |
@@ -4329,7 +4193,6 @@ void BinaryFloat32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* BinaryFloat64x2OpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -4342,7 +4205,6 @@ LocationSummary* BinaryFloat64x2OpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BinaryFloat64x2OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister right = locs()->in(1).fpu_reg(); |
@@ -4379,7 +4241,6 @@ void BinaryFloat64x2OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4392,7 +4253,6 @@ LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Simd32x4ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister value = locs()->in(0).fpu_reg(); |
const QRegister result = locs()->out(0).fpu_reg(); |
@@ -4461,7 +4321,6 @@ void Simd32x4ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -4475,7 +4334,6 @@ LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Simd32x4ShuffleMixInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister right = locs()->in(1).fpu_reg(); |
@@ -4519,7 +4377,6 @@ void Simd32x4ShuffleMixInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4532,7 +4389,6 @@ LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister value = locs()->in(0).fpu_reg(); |
const DRegister dvalue0 = EvenDRegisterOf(value); |
@@ -4560,7 +4416,6 @@ void Simd32x4GetSignMaskInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ SmiTag(out); |
} |
- |
LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -4577,7 +4432,6 @@ LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary( |
return summary; |
} |
- |
void Float32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister q0 = locs()->in(0).fpu_reg(); |
const QRegister q1 = locs()->in(1).fpu_reg(); |
@@ -4594,7 +4448,6 @@ void Float32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vcvtsd(OddSRegisterOf(dr1), EvenDRegisterOf(q3)); |
} |
- |
LocationSummary* Float32x4ZeroInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 0; |
@@ -4605,13 +4458,11 @@ LocationSummary* Float32x4ZeroInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4ZeroInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister q = locs()->out(0).fpu_reg(); |
__ veorq(q, q, q); |
} |
- |
LocationSummary* Float32x4SplatInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4623,7 +4474,6 @@ LocationSummary* Float32x4SplatInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister value = locs()->in(0).fpu_reg(); |
const QRegister result = locs()->out(0).fpu_reg(); |
@@ -4637,7 +4487,6 @@ void Float32x4SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vdup(kWord, result, DTMP, 0); |
} |
- |
LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -4650,7 +4499,6 @@ LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister right = locs()->in(1).fpu_reg(); |
@@ -4683,7 +4531,6 @@ void Float32x4ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -4696,7 +4543,6 @@ LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4MinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister right = locs()->in(1).fpu_reg(); |
@@ -4714,7 +4560,6 @@ void Float32x4MinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4727,7 +4572,6 @@ LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4SqrtInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister result = locs()->out(0).fpu_reg(); |
@@ -4748,7 +4592,6 @@ void Float32x4SqrtInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Float32x4ScaleInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -4761,7 +4604,6 @@ LocationSummary* Float32x4ScaleInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4ScaleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister right = locs()->in(1).fpu_reg(); |
@@ -4778,7 +4620,6 @@ void Float32x4ScaleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4790,7 +4631,6 @@ LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister result = locs()->out(0).fpu_reg(); |
@@ -4807,7 +4647,6 @@ void Float32x4ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Float32x4ClampInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 3; |
@@ -4821,7 +4660,6 @@ LocationSummary* Float32x4ClampInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4ClampInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister lower = locs()->in(1).fpu_reg(); |
@@ -4831,7 +4669,6 @@ void Float32x4ClampInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vmaxqs(result, result, lower); |
} |
- |
LocationSummary* Float32x4WithInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -4845,7 +4682,6 @@ LocationSummary* Float32x4WithInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister replacement = locs()->in(0).fpu_reg(); |
const QRegister value = locs()->in(1).fpu_reg(); |
@@ -4881,7 +4717,6 @@ void Float32x4WithInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4893,7 +4728,6 @@ LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float32x4ToInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister value = locs()->in(0).fpu_reg(); |
const QRegister result = locs()->out(0).fpu_reg(); |
@@ -4903,7 +4737,6 @@ void Float32x4ToInt32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Simd64x2ShuffleInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4915,7 +4748,6 @@ LocationSummary* Simd64x2ShuffleInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Simd64x2ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister value = locs()->in(0).fpu_reg(); |
@@ -4938,7 +4770,6 @@ void Simd64x2ShuffleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Float64x2ZeroInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 0; |
@@ -4949,13 +4780,11 @@ LocationSummary* Float64x2ZeroInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float64x2ZeroInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister q = locs()->out(0).fpu_reg(); |
__ veorq(q, q, q); |
} |
- |
LocationSummary* Float64x2SplatInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -4967,7 +4796,6 @@ LocationSummary* Float64x2SplatInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float64x2SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister value = locs()->in(0).fpu_reg(); |
@@ -4983,7 +4811,6 @@ void Float64x2SplatInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vmovd(dresult1, dvalue); |
} |
- |
LocationSummary* Float64x2ConstructorInstr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -4997,7 +4824,6 @@ LocationSummary* Float64x2ConstructorInstr::MakeLocationSummary( |
return summary; |
} |
- |
void Float64x2ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister q0 = locs()->in(0).fpu_reg(); |
const QRegister q1 = locs()->in(1).fpu_reg(); |
@@ -5013,7 +4839,6 @@ void Float64x2ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vmovd(dr1, d1); |
} |
- |
LocationSummary* Float64x2ToFloat32x4Instr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -5027,7 +4852,6 @@ LocationSummary* Float64x2ToFloat32x4Instr::MakeLocationSummary( |
return summary; |
} |
- |
void Float64x2ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister q = locs()->in(0).fpu_reg(); |
const QRegister r = locs()->out(0).fpu_reg(); |
@@ -5045,7 +4869,6 @@ void Float64x2ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vcvtsd(OddSRegisterOf(dr0), dq1); |
} |
- |
LocationSummary* Float32x4ToFloat64x2Instr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -5059,7 +4882,6 @@ LocationSummary* Float32x4ToFloat64x2Instr::MakeLocationSummary( |
return summary; |
} |
- |
void Float32x4ToFloat64x2Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister q = locs()->in(0).fpu_reg(); |
const QRegister r = locs()->out(0).fpu_reg(); |
@@ -5075,7 +4897,6 @@ void Float32x4ToFloat64x2Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vcvtds(dr1, OddSRegisterOf(dq0)); |
} |
- |
LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5095,7 +4916,6 @@ LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float64x2ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister q = locs()->in(0).fpu_reg(); |
@@ -5142,7 +4962,6 @@ void Float64x2ZeroArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -5155,7 +4974,6 @@ LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Float64x2OneArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const DRegister left0 = EvenDRegisterOf(left); |
@@ -5216,7 +5034,6 @@ void Float64x2OneArgInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Int32x4ConstructorInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 4; |
@@ -5231,7 +5048,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(); |
@@ -5245,7 +5061,6 @@ void Int32x4ConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vmovdrr(dresult1, v2, v3); |
} |
- |
LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -5262,7 +5077,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(); |
@@ -5290,7 +5104,6 @@ void Int32x4BoolConstructorInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vmovdr(dresult1, 1, temp, EQ); |
} |
- |
LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5303,7 +5116,6 @@ LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Int32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister value = locs()->in(0).fpu_reg(); |
const Register result = locs()->out(0).reg(); |
@@ -5337,7 +5149,6 @@ void Int32x4GetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ LoadObject(result, Bool::False(), EQ); |
} |
- |
LocationSummary* Int32x4SelectInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 3; |
@@ -5352,7 +5163,6 @@ LocationSummary* Int32x4SelectInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Int32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister mask = locs()->in(0).fpu_reg(); |
const QRegister trueValue = locs()->in(1).fpu_reg(); |
@@ -5372,7 +5182,6 @@ void Int32x4SelectInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vorrq(out, mask, temp); |
} |
- |
LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -5385,7 +5194,6 @@ LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Int32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister mask = locs()->in(0).fpu_reg(); |
const Register flag = locs()->in(1).reg(); |
@@ -5419,7 +5227,6 @@ void Int32x4SetFlagInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5431,7 +5238,6 @@ LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void Int32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister value = locs()->in(0).fpu_reg(); |
const QRegister result = locs()->out(0).fpu_reg(); |
@@ -5441,7 +5247,6 @@ void Int32x4ToFloat32x4Instr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -5454,7 +5259,6 @@ LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BinaryInt32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const QRegister left = locs()->in(0).fpu_reg(); |
const QRegister right = locs()->in(1).fpu_reg(); |
@@ -5480,7 +5284,6 @@ void BinaryInt32x4OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* MathUnaryInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
ASSERT((kind() == MathUnaryInstr::kSqrt) || |
@@ -5494,7 +5297,6 @@ LocationSummary* MathUnaryInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void MathUnaryInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (kind() == MathUnaryInstr::kSqrt) { |
const DRegister val = EvenDRegisterOf(locs()->in(0).fpu_reg()); |
@@ -5509,7 +5311,6 @@ void MathUnaryInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* CaseInsensitiveCompareUC16Instr::MakeLocationSummary( |
Zone* zone, |
bool opt) const { |
@@ -5524,14 +5325,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) { |
@@ -5558,7 +5357,6 @@ LocationSummary* MathMinMaxInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void MathMinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT((op_kind() == MethodRecognizer::kMathMin) || |
(op_kind() == MethodRecognizer::kMathMax)); |
@@ -5617,7 +5415,6 @@ void MathMinMaxInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* UnarySmiOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5631,7 +5428,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(); |
@@ -5652,7 +5448,6 @@ void UnarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5664,14 +5459,12 @@ LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void UnaryDoubleOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg()); |
const DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg()); |
__ vnegd(result, value); |
} |
- |
LocationSummary* Int32ToDoubleInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5683,7 +5476,6 @@ LocationSummary* Int32ToDoubleInstr::MakeLocationSummary(Zone* zone, |
return result; |
} |
- |
void Int32ToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const Register value = locs()->in(0).reg(); |
const DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg()); |
@@ -5691,7 +5483,6 @@ void Int32ToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vcvtdi(result, STMP); |
} |
- |
LocationSummary* SmiToDoubleInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5703,7 +5494,6 @@ LocationSummary* SmiToDoubleInstr::MakeLocationSummary(Zone* zone, |
return result; |
} |
- |
void SmiToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const Register value = locs()->in(0).reg(); |
const DRegister result = EvenDRegisterOf(locs()->out(0).fpu_reg()); |
@@ -5712,19 +5502,16 @@ void SmiToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vcvtdi(result, STMP); |
} |
- |
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; |
@@ -5736,7 +5523,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(); |
@@ -5775,7 +5561,6 @@ void DoubleToIntegerInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Bind(&done); |
} |
- |
LocationSummary* DoubleToSmiInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5787,7 +5572,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(); |
@@ -5806,19 +5590,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; |
@@ -5831,7 +5612,6 @@ LocationSummary* DoubleToFloatInstr::MakeLocationSummary(Zone* zone, |
return result; |
} |
- |
void DoubleToFloatInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const DRegister value = EvenDRegisterOf(locs()->in(0).fpu_reg()); |
const SRegister result = |
@@ -5839,7 +5619,6 @@ void DoubleToFloatInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vcvtsd(result, value); |
} |
- |
LocationSummary* FloatToDoubleInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -5852,7 +5631,6 @@ LocationSummary* FloatToDoubleInstr::MakeLocationSummary(Zone* zone, |
return result; |
} |
- |
void FloatToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const SRegister value = |
EvenSRegisterOf(EvenDRegisterOf(locs()->in(0).fpu_reg())); |
@@ -5860,7 +5638,6 @@ void FloatToDoubleInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ vcvtds(result, value); |
} |
- |
LocationSummary* InvokeMathCFunctionInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
ASSERT((InputCount() == 1) || (InputCount() == 2)); |
@@ -5891,7 +5668,6 @@ LocationSummary* InvokeMathCFunctionInstr::MakeLocationSummary(Zone* zone, |
return result; |
} |
- |
// Pseudo code: |
// if (exponent == 0.0) return 1.0; |
// // Speed up simple cases. |
@@ -6027,7 +5803,6 @@ static void InvokeDoublePow(FlowGraphCompiler* compiler, |
__ Bind(&skip_call); |
} |
- |
void InvokeMathCFunctionInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (recognized_kind() == MethodRecognizer::kMathDoublePow) { |
InvokeDoublePow(compiler, this); |
@@ -6052,7 +5827,6 @@ void InvokeMathCFunctionInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
// Only use this instruction in optimized code. |
@@ -6085,7 +5859,6 @@ LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void ExtractNthOutputInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(locs()->in(0).IsPairLocation()); |
PairLocation* pair = locs()->in(0).AsPairLocation(); |
@@ -6102,7 +5875,6 @@ void ExtractNthOutputInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* TruncDivModInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -6119,7 +5891,6 @@ LocationSummary* TruncDivModInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void TruncDivModInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(CanDeoptimize()); |
Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptBinarySmiOp); |
@@ -6170,14 +5941,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. |
@@ -6185,12 +5954,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; |
@@ -6208,7 +5975,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()); |
@@ -6216,7 +5982,6 @@ void CheckClassInstr::EmitNullCheck(FlowGraphCompiler* compiler, Label* deopt) { |
__ b(deopt, cond); |
} |
- |
void CheckClassInstr::EmitBitTest(FlowGraphCompiler* compiler, |
intptr_t min, |
intptr_t max, |
@@ -6234,7 +5999,6 @@ void CheckClassInstr::EmitBitTest(FlowGraphCompiler* compiler, |
__ b(deopt, EQ); |
} |
- |
int CheckClassInstr::EmitCheckCid(FlowGraphCompiler* compiler, |
int bias, |
intptr_t cid_start, |
@@ -6266,7 +6030,6 @@ int CheckClassInstr::EmitCheckCid(FlowGraphCompiler* compiler, |
return bias; |
} |
- |
LocationSummary* CheckSmiInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -6277,7 +6040,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, |
@@ -6285,7 +6047,6 @@ void CheckSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ BranchIfNotSmi(value, deopt); |
} |
- |
LocationSummary* CheckClassIdInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -6297,7 +6058,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); |
@@ -6311,7 +6071,6 @@ void CheckClassIdInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* GenericCheckBoundInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -6323,7 +6082,6 @@ LocationSummary* GenericCheckBoundInstr::MakeLocationSummary(Zone* zone, |
return locs; |
} |
- |
class RangeErrorSlowPath : public SlowPathCode { |
public: |
RangeErrorSlowPath(GenericCheckBoundInstr* instruction, intptr_t try_index) |
@@ -6353,7 +6111,6 @@ class RangeErrorSlowPath : public SlowPathCode { |
intptr_t try_index_; |
}; |
- |
void GenericCheckBoundInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
RangeErrorSlowPath* slow_path = |
new RangeErrorSlowPath(this, compiler->CurrentTryIndex()); |
@@ -6371,7 +6128,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; |
@@ -6383,7 +6139,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; |
@@ -6433,7 +6188,6 @@ void CheckArrayBoundInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* BinaryMintOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -6449,7 +6203,6 @@ LocationSummary* BinaryMintOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BinaryMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
PairLocation* left_pair = locs()->in(0).AsPairLocation(); |
Register left_lo = left_pair->At(0).reg(); |
@@ -6513,7 +6266,6 @@ void BinaryMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* ShiftMintOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -6528,7 +6280,6 @@ LocationSummary* ShiftMintOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void ShiftMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
PairLocation* left_pair = locs()->in(0).AsPairLocation(); |
Register left_lo = left_pair->At(0).reg(); |
@@ -6651,7 +6402,6 @@ void ShiftMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* UnaryMintOpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -6665,7 +6415,6 @@ LocationSummary* UnaryMintOpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void UnaryMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(op_kind() == Token::kBIT_NOT); |
PairLocation* left_pair = locs()->in(0).AsPairLocation(); |
@@ -6679,22 +6428,18 @@ void UnaryMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ mvn(out_hi, Operand(left_hi)); |
} |
- |
CompileType BinaryUint32OpInstr::ComputeType() const { |
return CompileType::Int(); |
} |
- |
CompileType ShiftUint32OpInstr::ComputeType() const { |
return CompileType::Int(); |
} |
- |
CompileType UnaryUint32OpInstr::ComputeType() const { |
return CompileType::Int(); |
} |
- |
LocationSummary* BinaryUint32OpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -6707,7 +6452,6 @@ LocationSummary* BinaryUint32OpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void BinaryUint32OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
Register left = locs()->in(0).reg(); |
Register right = locs()->in(1).reg(); |
@@ -6737,7 +6481,6 @@ void BinaryUint32OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* ShiftUint32OpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -6751,7 +6494,6 @@ LocationSummary* ShiftUint32OpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void ShiftUint32OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
const intptr_t kShifterLimit = 31; |
@@ -6807,7 +6549,6 @@ void ShiftUint32OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* UnaryUint32OpInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -6819,7 +6560,6 @@ LocationSummary* UnaryUint32OpInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void UnaryUint32OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
Register left = locs()->in(0).reg(); |
Register out = locs()->out(0).reg(); |
@@ -6830,7 +6570,6 @@ void UnaryUint32OpInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ mvn(out, Operand(left)); |
} |
- |
LocationSummary* UnboxedIntConverterInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -6856,7 +6595,6 @@ LocationSummary* UnboxedIntConverterInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void UnboxedIntConverterInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (from() == kUnboxedInt32 && to() == kUnboxedUint32) { |
const Register out = locs()->out(0).reg(); |
@@ -6906,24 +6644,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()); |
__ bkpt(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, |
@@ -6931,29 +6665,24 @@ void ReThrowInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ bkpt(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) { |
@@ -6975,7 +6704,6 @@ void GotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
LocationSummary* IndirectGotoInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 1; |
@@ -6990,7 +6718,6 @@ LocationSummary* IndirectGotoInstr::MakeLocationSummary(Zone* zone, |
return summary; |
} |
- |
void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
Register target_address_reg = locs()->temp_slot(0)->reg(); |
@@ -7009,7 +6736,6 @@ void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ bx(target_address_reg); |
} |
- |
LocationSummary* StrictCompareInstr::MakeLocationSummary(Zone* zone, |
bool opt) const { |
const intptr_t kNumInputs = 2; |
@@ -7048,7 +6774,6 @@ LocationSummary* StrictCompareInstr::MakeLocationSummary(Zone* zone, |
return locs; |
} |
- |
Condition StrictCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
BranchLabels labels) { |
Location left = locs()->in(0); |
@@ -7074,7 +6799,6 @@ Condition StrictCompareInstr::EmitComparisonCode(FlowGraphCompiler* compiler, |
return true_condition; |
} |
- |
void ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
// The ARM code may not use true- and false-labels here. |
Label is_true, is_false, done; |
@@ -7101,7 +6825,6 @@ void ComparisonInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
} |
} |
- |
void ComparisonInstr::EmitBranchCode(FlowGraphCompiler* compiler, |
BranchInstr* branch) { |
BranchLabels labels = compiler->CreateBranchLabels(branch); |
@@ -7111,14 +6834,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(); |
@@ -7128,13 +6849,11 @@ void BooleanNegateInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ LoadObject(result, Bool::False(), 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())); |
@@ -7145,7 +6864,6 @@ void AllocateObjectInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ Drop(ArgumentCount()); // Discard arguments. |
} |
- |
void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
ASSERT(!compiler->is_optimizing()); |
__ BranchLinkPatchable(*StubCode::DebugStepCheck_entry()); |
@@ -7153,7 +6871,6 @@ void DebugStepCheckInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
compiler->RecordSafepoint(locs()); |
} |
- |
} // namespace dart |
#endif // defined TARGET_ARCH_ARM |