Index: runtime/vm/intermediate_language_arm64.cc |
=================================================================== |
--- runtime/vm/intermediate_language_arm64.cc (revision 36483) |
+++ runtime/vm/intermediate_language_arm64.cc (working copy) |
@@ -27,17 +27,20 @@ |
// Generic summary for call instructions that have all arguments pushed |
// on the stack and return the result in a fixed register R0. |
LocationSummary* Instruction::MakeCallSummary() { |
- LocationSummary* result = new LocationSummary(0, 0, LocationSummary::kCall); |
+ Isolate* isolate = Isolate::Current(); |
+ LocationSummary* result = new(isolate) LocationSummary( |
+ isolate, 0, 0, LocationSummary::kCall); |
result->set_out(0, Location::RegisterLocation(R0)); |
return result; |
} |
-LocationSummary* PushArgumentInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* PushArgumentInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps= 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::AnyOrConstant(value())); |
return locs; |
} |
@@ -62,11 +65,12 @@ |
} |
-LocationSummary* ReturnInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* ReturnInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::RegisterLocation(R0)); |
return locs; |
} |
@@ -123,8 +127,9 @@ |
} |
-LocationSummary* IfThenElseInstr::MakeLocationSummary(bool opt) const { |
- comparison()->InitializeLocationSummary(opt); |
+LocationSummary* IfThenElseInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
+ comparison()->InitializeLocationSummary(isolate, opt); |
return comparison()->locs(); |
} |
@@ -179,11 +184,12 @@ |
} |
-LocationSummary* ClosureCallInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* ClosureCallInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
summary->set_in(0, Location::RegisterLocation(R0)); // Function. |
summary->set_out(0, Location::RegisterLocation(R0)); |
return summary; |
@@ -229,7 +235,8 @@ |
} |
-LocationSummary* LoadLocalInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* LoadLocalInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
return LocationSummary::Make(0, |
Location::RequiresRegister(), |
LocationSummary::kNoCall); |
@@ -242,7 +249,8 @@ |
} |
-LocationSummary* StoreLocalInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* StoreLocalInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
return LocationSummary::Make(1, |
Location::SameAsFirstInput(), |
LocationSummary::kNoCall); |
@@ -257,7 +265,8 @@ |
} |
-LocationSummary* ConstantInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* ConstantInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
return LocationSummary::Make(0, |
Location::RequiresRegister(), |
LocationSummary::kNoCall); |
@@ -273,7 +282,8 @@ |
} |
-LocationSummary* UnboxedConstantInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnboxedConstantInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 0; |
return LocationSummary::Make(kNumInputs, |
Location::RequiresFpuRegister(), |
@@ -289,11 +299,12 @@ |
} |
-LocationSummary* AssertAssignableInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* AssertAssignableInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 3; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
summary->set_in(0, Location::RegisterLocation(R0)); // Value. |
summary->set_in(1, Location::RegisterLocation(R2)); // Instantiator. |
summary->set_in(2, Location::RegisterLocation(R1)); // Type arguments. |
@@ -302,11 +313,12 @@ |
} |
-LocationSummary* AssertBooleanInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* AssertBooleanInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
locs->set_in(0, Location::RegisterLocation(R0)); |
locs->set_out(0, Location::RegisterLocation(R0)); |
return locs; |
@@ -422,12 +434,13 @@ |
} |
-LocationSummary* EqualityCompareInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* EqualityCompareInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
if (operation_cid() == kDoubleCid) { |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::RequiresFpuRegister()); |
locs->set_in(1, Location::RequiresFpuRegister()); |
locs->set_out(0, Location::RequiresRegister()); |
@@ -435,8 +448,8 @@ |
} |
if (operation_cid() == kSmiCid) { |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::RegisterOrConstant(left())); |
// Only one input can be a constant operand. The case of two constant |
// operands should be handled by constant propagation. |
@@ -528,11 +541,12 @@ |
} |
-LocationSummary* TestSmiInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* TestSmiInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::RequiresRegister()); |
// Only one input can be a constant operand. The case of two constant |
// operands should be handled by constant propagation. |
@@ -572,11 +586,12 @@ |
} |
-LocationSummary* TestCidsInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* TestCidsInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 1; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::RequiresRegister()); |
locs->set_temp(0, Location::RequiresRegister()); |
locs->set_out(0, Location::RequiresRegister()); |
@@ -646,20 +661,21 @@ |
} |
-LocationSummary* RelationalOpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* RelationalOpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
if (operation_cid() == kDoubleCid) { |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_in(1, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresRegister()); |
return summary; |
} |
ASSERT(operation_cid() == kSmiCid); |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RegisterOrConstant(left())); |
// Only one input can be a constant operand. The case of two constant |
// operands should be handled by constant propagation. |
@@ -718,11 +734,12 @@ |
} |
-LocationSummary* NativeCallInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* NativeCallInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 0; |
const intptr_t kNumTemps = 3; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
locs->set_temp(0, Location::RegisterLocation(R1)); |
locs->set_temp(1, Location::RegisterLocation(R2)); |
locs->set_temp(2, Location::RegisterLocation(R5)); |
@@ -779,7 +796,8 @@ |
} |
-LocationSummary* StringFromCharCodeInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* StringFromCharCodeInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
// TODO(fschneider): Allow immediate operands for the char code. |
return LocationSummary::Make(kNumInputs, |
@@ -800,7 +818,8 @@ |
} |
-LocationSummary* StringToCharCodeInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* StringToCharCodeInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
return LocationSummary::Make(kNumInputs, |
Location::RequiresRegister(), |
@@ -821,11 +840,12 @@ |
} |
-LocationSummary* StringInterpolateInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* StringInterpolateInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
summary->set_in(0, Location::RegisterLocation(R0)); |
summary->set_out(0, Location::RegisterLocation(R0)); |
return summary; |
@@ -847,7 +867,8 @@ |
} |
-LocationSummary* LoadUntaggedInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* LoadUntaggedInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
return LocationSummary::Make(kNumInputs, |
Location::RequiresRegister(), |
@@ -862,7 +883,8 @@ |
} |
-LocationSummary* LoadClassIdInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* LoadClassIdInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
return LocationSummary::Make(kNumInputs, |
Location::RequiresRegister(), |
@@ -953,11 +975,12 @@ |
} |
-LocationSummary* LoadIndexedInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* LoadIndexedInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::RequiresRegister()); |
// The smi index is either untagged (element size == 1), or it is left smi |
// tagged (for all element sizes > 1). |
@@ -1121,11 +1144,12 @@ |
} |
-LocationSummary* StoreIndexedInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* StoreIndexedInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 3; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::RequiresRegister()); |
// The smi index is either untagged (element size == 1), or it is left smi |
// tagged (for all element sizes > 1). |
@@ -1333,10 +1357,11 @@ |
} |
-LocationSummary* GuardFieldInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* GuardFieldInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, 0, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, 0, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
const bool field_has_length = field().needs_length_check(); |
summary->AddTemp(Location::RequiresRegister()); |
@@ -1686,15 +1711,16 @@ |
}; |
-LocationSummary* StoreInstanceFieldInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* StoreInstanceFieldInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, |
- !field().IsNull() && |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, |
+ !field().IsNull() && |
((field().guarded_cid() == kIllegalCid) || is_initialization_) |
- ? LocationSummary::kCallOnSlowPath |
- : LocationSummary::kNoCall); |
+ ? LocationSummary::kCallOnSlowPath |
+ : LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
if (IsUnboxedStore() && opt) { |
@@ -1918,11 +1944,12 @@ |
} |
-LocationSummary* LoadStaticFieldInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* LoadStaticFieldInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
summary->set_out(0, Location::RequiresRegister()); |
return summary; |
@@ -1941,8 +1968,10 @@ |
} |
-LocationSummary* StoreStaticFieldInstr::MakeLocationSummary(bool opt) const { |
- LocationSummary* locs = new LocationSummary(1, 1, LocationSummary::kNoCall); |
+LocationSummary* StoreStaticFieldInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, 1, 1, LocationSummary::kNoCall); |
locs->set_in(0, value()->NeedsStoreBuffer() ? Location::WritableRegister() |
: Location::RequiresRegister()); |
locs->set_temp(0, Location::RequiresRegister()); |
@@ -1964,11 +1993,12 @@ |
} |
-LocationSummary* InstanceOfInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* InstanceOfInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 3; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
summary->set_in(0, Location::RegisterLocation(R0)); |
summary->set_in(1, Location::RegisterLocation(R2)); |
summary->set_in(2, Location::RegisterLocation(R1)); |
@@ -1991,11 +2021,12 @@ |
} |
-LocationSummary* CreateArrayInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CreateArrayInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
locs->set_in(kElementTypePos, Location::RegisterLocation(R1)); |
locs->set_in(kLengthPos, Location::RegisterLocation(R2)); |
locs->set_out(0, Location::RegisterLocation(R0)); |
@@ -2111,13 +2142,13 @@ |
}; |
-LocationSummary* LoadFieldInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* LoadFieldInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary( |
- kNumInputs, kNumTemps, |
- (opt && !IsPotentialUnboxedLoad()) |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, |
+ (opt && !IsPotentialUnboxedLoad()) |
? LocationSummary::kNoCall |
: LocationSummary::kCallOnSlowPath); |
@@ -2251,11 +2282,12 @@ |
} |
-LocationSummary* InstantiateTypeInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* InstantiateTypeInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
locs->set_in(0, Location::RegisterLocation(R0)); |
locs->set_out(0, Location::RegisterLocation(R0)); |
return locs; |
@@ -2283,11 +2315,11 @@ |
LocationSummary* InstantiateTypeArgumentsInstr::MakeLocationSummary( |
- bool opt) const { |
+ Isolate* isolate, bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
locs->set_in(0, Location::RegisterLocation(R0)); |
locs->set_out(0, Location::RegisterLocation(R0)); |
return locs; |
@@ -2350,11 +2382,12 @@ |
} |
-LocationSummary* AllocateContextInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* AllocateContextInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 0; |
const intptr_t kNumTemps = 1; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
locs->set_temp(0, Location::RegisterLocation(R1)); |
locs->set_out(0, Location::RegisterLocation(R0)); |
return locs; |
@@ -2375,11 +2408,12 @@ |
} |
-LocationSummary* CloneContextInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CloneContextInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
locs->set_in(0, Location::RegisterLocation(R0)); |
locs->set_out(0, Location::RegisterLocation(R0)); |
return locs; |
@@ -2402,7 +2436,8 @@ |
} |
-LocationSummary* CatchBlockEntryInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CatchBlockEntryInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNREACHABLE(); |
return NULL; |
} |
@@ -2439,13 +2474,12 @@ |
} |
-LocationSummary* CheckStackOverflowInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CheckStackOverflowInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 0; |
const intptr_t kNumTemps = 1; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, |
- kNumTemps, |
- LocationSummary::kCallOnSlowPath); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath); |
summary->set_temp(0, Location::RequiresRegister()); |
return summary; |
} |
@@ -2666,11 +2700,12 @@ |
} |
-LocationSummary* BinarySmiOpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
if (op_kind() == Token::kTRUNCDIV) { |
summary->set_in(0, Location::RequiresRegister()); |
if (RightIsPowerOfTwoConstant()) { |
@@ -2988,14 +3023,15 @@ |
} |
-LocationSummary* CheckEitherNonSmiInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CheckEitherNonSmiInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
intptr_t left_cid = left()->Type()->ToCid(); |
intptr_t right_cid = right()->Type()->ToCid(); |
ASSERT((left_cid != kDoubleCid) && (right_cid != kDoubleCid)); |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
summary->set_in(1, Location::RequiresRegister()); |
return summary; |
@@ -3021,13 +3057,12 @@ |
} |
-LocationSummary* BoxDoubleInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BoxDoubleInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, |
- kNumTemps, |
- LocationSummary::kCallOnSlowPath); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresRegister()); |
return summary; |
@@ -3050,11 +3085,12 @@ |
} |
-LocationSummary* UnboxDoubleInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnboxDoubleInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3098,13 +3134,12 @@ |
} |
-LocationSummary* BoxFloat32x4Instr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BoxFloat32x4Instr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, |
- kNumTemps, |
- LocationSummary::kCallOnSlowPath); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresRegister()); |
return summary; |
@@ -3128,11 +3163,12 @@ |
} |
-LocationSummary* UnboxFloat32x4Instr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnboxFloat32x4Instr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3156,13 +3192,12 @@ |
} |
-LocationSummary* BoxFloat64x2Instr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BoxFloat64x2Instr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, |
- kNumTemps, |
- LocationSummary::kCallOnSlowPath); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresRegister()); |
return summary; |
@@ -3186,11 +3221,12 @@ |
} |
-LocationSummary* UnboxFloat64x2Instr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnboxFloat64x2Instr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3214,13 +3250,12 @@ |
} |
-LocationSummary* BoxInt32x4Instr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BoxInt32x4Instr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, |
- kNumTemps, |
- LocationSummary::kCallOnSlowPath); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCallOnSlowPath); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresRegister()); |
return summary; |
@@ -3276,11 +3311,12 @@ |
} |
-LocationSummary* UnboxInt32x4Instr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnboxInt32x4Instr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3304,11 +3340,12 @@ |
} |
-LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BinaryDoubleOpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_in(1, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
@@ -3330,11 +3367,12 @@ |
} |
-LocationSummary* BinaryFloat32x4OpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BinaryFloat32x4OpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_in(1, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
@@ -3357,11 +3395,12 @@ |
} |
-LocationSummary* BinaryFloat64x2OpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BinaryFloat64x2OpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_in(1, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
@@ -3384,7 +3423,8 @@ |
} |
-LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3395,7 +3435,8 @@ |
} |
-LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3406,7 +3447,8 @@ |
} |
-LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3418,11 +3460,11 @@ |
LocationSummary* Float32x4ConstructorInstr::MakeLocationSummary( |
- bool opt) const { |
+ Isolate* isolate, bool opt) const { |
const intptr_t kNumInputs = 4; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_in(1, Location::RequiresFpuRegister()); |
summary->set_in(2, Location::RequiresFpuRegister()); |
@@ -3450,11 +3492,12 @@ |
} |
-LocationSummary* Float32x4ZeroInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4ZeroInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 0; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
} |
@@ -3466,11 +3509,12 @@ |
} |
-LocationSummary* Float32x4SplatInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4SplatInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3489,7 +3533,8 @@ |
} |
-LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3500,7 +3545,8 @@ |
} |
-LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3511,7 +3557,8 @@ |
} |
-LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3522,11 +3569,12 @@ |
} |
-LocationSummary* Float32x4ScaleInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4ScaleInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_in(1, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
@@ -3550,7 +3598,8 @@ |
} |
-LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3561,7 +3610,8 @@ |
} |
-LocationSummary* Float32x4ClampInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4ClampInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3572,7 +3622,8 @@ |
} |
-LocationSummary* Float32x4WithInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4WithInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3583,7 +3634,8 @@ |
} |
-LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3594,11 +3646,12 @@ |
} |
-LocationSummary* Simd64x2ShuffleInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Simd64x2ShuffleInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3621,11 +3674,12 @@ |
} |
-LocationSummary* Float64x2ZeroInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float64x2ZeroInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 0; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
} |
@@ -3637,11 +3691,12 @@ |
} |
-LocationSummary* Float64x2SplatInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float64x2SplatInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3656,11 +3711,11 @@ |
LocationSummary* Float64x2ConstructorInstr::MakeLocationSummary( |
- bool opt) const { |
+ Isolate* isolate, bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_in(1, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
@@ -3678,7 +3733,7 @@ |
LocationSummary* Float64x2ToFloat32x4Instr::MakeLocationSummary( |
- bool opt) const { |
+ Isolate* isolate, bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3690,7 +3745,7 @@ |
LocationSummary* Float32x4ToFloat64x2Instr::MakeLocationSummary( |
- bool opt) const { |
+ Isolate* isolate, bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3701,7 +3756,8 @@ |
} |
-LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3712,7 +3768,8 @@ |
} |
-LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3724,7 +3781,7 @@ |
LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary( |
- bool opt) const { |
+ Isolate* isolate, bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3735,7 +3792,8 @@ |
} |
-LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3746,7 +3804,8 @@ |
} |
-LocationSummary* Int32x4SelectInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Int32x4SelectInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3757,7 +3816,8 @@ |
} |
-LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3768,7 +3828,8 @@ |
} |
-LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(bool opt) const { |
+LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3779,7 +3840,8 @@ |
} |
-LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -3790,12 +3852,13 @@ |
} |
-LocationSummary* MathUnaryInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* MathUnaryInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
if ((kind() == MathUnaryInstr::kSin) || (kind() == MathUnaryInstr::kCos)) { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
summary->set_in(0, Location::FpuRegisterLocation(V0)); |
summary->set_out(0, Location::FpuRegisterLocation(V0)); |
return summary; |
@@ -3804,8 +3867,8 @@ |
(kind() == MathUnaryInstr::kDoubleSquare)); |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3829,12 +3892,13 @@ |
} |
-LocationSummary* MathMinMaxInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* MathMinMaxInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
if (result_cid() == kDoubleCid) { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_in(1, Location::RequiresFpuRegister()); |
// Reuse the left register so that code can be made shorter. |
@@ -3844,8 +3908,8 @@ |
ASSERT(result_cid() == kSmiCid); |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
summary->set_in(1, Location::RequiresRegister()); |
// Reuse the left register so that code can be made shorter. |
@@ -3914,11 +3978,12 @@ |
} |
-LocationSummary* UnarySmiOpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnarySmiOpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
// We make use of 3-operand instructions by not requiring result register |
// to be identical to first input register as on Intel. |
@@ -3951,11 +4016,12 @@ |
} |
-LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnaryDoubleOpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresFpuRegister()); |
summary->set_out(0, Location::RequiresFpuRegister()); |
return summary; |
@@ -3969,11 +4035,12 @@ |
} |
-LocationSummary* SmiToDoubleInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* SmiToDoubleInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* result = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* result = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
result->set_in(0, Location::WritableRegister()); |
result->set_out(0, Location::RequiresFpuRegister()); |
return result; |
@@ -3988,11 +4055,12 @@ |
} |
-LocationSummary* DoubleToIntegerInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* DoubleToIntegerInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* result = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* result = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
result->set_in(0, Location::RegisterLocation(R1)); |
result->set_out(0, Location::RegisterLocation(R0)); |
return result; |
@@ -4041,11 +4109,12 @@ |
} |
-LocationSummary* DoubleToSmiInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* DoubleToSmiInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* result = new LocationSummary( |
- kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* result = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
result->set_in(0, Location::RequiresFpuRegister()); |
result->set_out(0, Location::RequiresRegister()); |
return result; |
@@ -4073,7 +4142,8 @@ |
} |
-LocationSummary* DoubleToDoubleInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* DoubleToDoubleInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -4084,11 +4154,12 @@ |
} |
-LocationSummary* DoubleToFloatInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* DoubleToFloatInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* result = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* result = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
result->set_in(0, Location::RequiresFpuRegister()); |
result->set_out(0, Location::RequiresFpuRegister()); |
return result; |
@@ -4102,11 +4173,12 @@ |
} |
-LocationSummary* FloatToDoubleInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* FloatToDoubleInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* result = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* result = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
result->set_in(0, Location::RequiresFpuRegister()); |
result->set_out(0, Location::RequiresFpuRegister()); |
return result; |
@@ -4120,11 +4192,12 @@ |
} |
-LocationSummary* InvokeMathCFunctionInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* InvokeMathCFunctionInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
ASSERT((InputCount() == 1) || (InputCount() == 2)); |
const intptr_t kNumTemps = 0; |
- LocationSummary* result = |
- new LocationSummary(InputCount(), kNumTemps, LocationSummary::kCall); |
+ LocationSummary* result = new(isolate) LocationSummary( |
+ isolate, InputCount(), kNumTemps, LocationSummary::kCall); |
result->set_in(0, Location::FpuRegisterLocation(V0)); |
if (InputCount() == 2) { |
result->set_in(1, Location::FpuRegisterLocation(V1)); |
@@ -4259,12 +4332,13 @@ |
} |
-LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* ExtractNthOutputInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
// Only use this instruction in optimized code. |
ASSERT(opt); |
const intptr_t kNumInputs = 1; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, 0, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, 0, LocationSummary::kNoCall); |
if (representation() == kUnboxedDouble) { |
if (index() == 0) { |
summary->set_in(0, Location::Pair(Location::RequiresFpuRegister(), |
@@ -4308,12 +4382,13 @@ |
} |
-LocationSummary* MergedMathInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* MergedMathInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
if (kind() == MergedMathInstr::kTruncDivMod) { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
summary->set_in(1, Location::RequiresRegister()); |
// Output is a pair of registers. |
@@ -4389,7 +4464,7 @@ |
LocationSummary* PolymorphicInstanceCallInstr::MakeLocationSummary( |
- bool opt) const { |
+ Isolate* isolate, bool opt) const { |
return MakeCallSummary(); |
} |
@@ -4432,8 +4507,9 @@ |
} |
-LocationSummary* BranchInstr::MakeLocationSummary(bool opt) const { |
- comparison()->InitializeLocationSummary(opt); |
+LocationSummary* BranchInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
+ comparison()->InitializeLocationSummary(isolate, opt); |
// Branches don't produce a result. |
comparison()->locs()->set_out(0, Location::NoLocation()); |
return comparison()->locs(); |
@@ -4445,11 +4521,12 @@ |
} |
-LocationSummary* CheckClassInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CheckClassInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
if (!IsNullCheck()) { |
summary->AddTemp(Location::RequiresRegister()); |
@@ -4498,11 +4575,12 @@ |
} |
-LocationSummary* CheckSmiInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CheckSmiInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 1; |
const intptr_t kNumTemps = 0; |
- LocationSummary* summary = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* summary = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
summary->set_in(0, Location::RequiresRegister()); |
return summary; |
} |
@@ -4516,11 +4594,12 @@ |
} |
-LocationSummary* CheckArrayBoundInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CheckArrayBoundInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(kLengthPos, Location::RegisterOrSmiConstant(length())); |
locs->set_in(kIndexPos, Location::RegisterOrSmiConstant(index())); |
return locs; |
@@ -4570,7 +4649,8 @@ |
} |
-LocationSummary* UnboxIntegerInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnboxIntegerInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -4581,7 +4661,8 @@ |
} |
-LocationSummary* BoxIntegerInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BoxIntegerInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -4592,7 +4673,8 @@ |
} |
-LocationSummary* BinaryMintOpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BinaryMintOpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -4603,7 +4685,8 @@ |
} |
-LocationSummary* ShiftMintOpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* ShiftMintOpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -4614,7 +4697,8 @@ |
} |
-LocationSummary* UnaryMintOpInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* UnaryMintOpInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
UNIMPLEMENTED(); |
return NULL; |
} |
@@ -4625,8 +4709,9 @@ |
} |
-LocationSummary* ThrowInstr::MakeLocationSummary(bool opt) const { |
- return new LocationSummary(0, 0, LocationSummary::kCall); |
+LocationSummary* ThrowInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
+ return new(isolate) LocationSummary(isolate, 0, 0, LocationSummary::kCall); |
} |
@@ -4640,8 +4725,9 @@ |
} |
-LocationSummary* ReThrowInstr::MakeLocationSummary(bool opt) const { |
- return new LocationSummary(0, 0, LocationSummary::kCall); |
+LocationSummary* ReThrowInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
+ return new(isolate) LocationSummary(isolate, 0, 0, LocationSummary::kCall); |
} |
@@ -4681,8 +4767,9 @@ |
} |
-LocationSummary* GotoInstr::MakeLocationSummary(bool opt) const { |
- return new LocationSummary(0, 0, LocationSummary::kNoCall); |
+LocationSummary* GotoInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
+ return new(isolate) LocationSummary(isolate, 0, 0, LocationSummary::kNoCall); |
} |
@@ -4710,7 +4797,8 @@ |
} |
-LocationSummary* CurrentContextInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* CurrentContextInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
return LocationSummary::Make(0, |
Location::RequiresRegister(), |
LocationSummary::kNoCall); |
@@ -4722,19 +4810,20 @@ |
} |
-LocationSummary* StrictCompareInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* StrictCompareInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
const intptr_t kNumInputs = 2; |
const intptr_t kNumTemps = 0; |
if (needs_number_check()) { |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kCall); |
locs->set_in(0, Location::RegisterLocation(R0)); |
locs->set_in(1, Location::RegisterLocation(R1)); |
locs->set_out(0, Location::RegisterLocation(R0)); |
return locs; |
} |
- LocationSummary* locs = |
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
+ LocationSummary* locs = new(isolate) LocationSummary( |
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall); |
locs->set_in(0, Location::RegisterOrConstant(left())); |
// Only one of the inputs can be a constant. Choose register if the first one |
// is a constant. |
@@ -4802,7 +4891,8 @@ |
} |
-LocationSummary* BooleanNegateInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* BooleanNegateInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
return LocationSummary::Make(1, |
Location::RequiresRegister(), |
LocationSummary::kNoCall); |
@@ -4820,7 +4910,8 @@ |
} |
-LocationSummary* AllocateObjectInstr::MakeLocationSummary(bool opt) const { |
+LocationSummary* AllocateObjectInstr::MakeLocationSummary(Isolate* isolate, |
+ bool opt) const { |
return MakeCallSummary(); |
} |