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

Unified Diff: runtime/vm/intermediate_language_arm.cc

Issue 296003013: - Reduce the number of Isolate::Current() calls. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/intermediate_language.cc ('k') | runtime/vm/intermediate_language_arm64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language_arm.cc
===================================================================
--- runtime/vm/intermediate_language_arm.cc (revision 36483)
+++ runtime/vm/intermediate_language_arm.cc (working copy)
@@ -29,17 +29,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 {
Ivan Posva 2014/05/23 09:19:29 Fixing the formatting of this in the file.
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;
}
@@ -64,11 +67,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 {
Cutch 2014/05/23 09:28:36 wrong indent on bool opt
+ comparison()->InitializeLocationSummary(isolate, opt);
return comparison()->locs();
}
@@ -182,11 +187,12 @@
}
-LocationSummary* ClosureCallInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* ClosureCallInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
Cutch 2014/05/23 09:28:36 here too
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;
@@ -232,7 +238,8 @@
}
-LocationSummary* LoadLocalInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* LoadLocalInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
return LocationSummary::Make(0,
Location::RequiresRegister(),
LocationSummary::kNoCall);
@@ -245,7 +252,8 @@
}
-LocationSummary* StoreLocalInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* StoreLocalInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
return LocationSummary::Make(1,
Location::SameAsFirstInput(),
LocationSummary::kNoCall);
@@ -260,7 +268,8 @@
}
-LocationSummary* ConstantInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* ConstantInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
return LocationSummary::Make(0,
Location::RequiresRegister(),
LocationSummary::kNoCall);
@@ -276,11 +285,12 @@
}
-LocationSummary* UnboxedConstantInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* UnboxedConstantInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 0;
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_out(0, Location::RequiresFpuRegister());
locs->set_temp(0, Location::RequiresRegister());
return locs;
@@ -303,11 +313,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.
@@ -316,11 +327,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;
@@ -377,12 +389,13 @@
}
-LocationSummary* EqualityCompareInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* EqualityCompareInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 2;
if (operation_cid() == kMintCid) {
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::Pair(Location::RequiresRegister(),
Location::RequiresRegister()));
locs->set_in(1, Location::Pair(Location::RequiresRegister(),
@@ -392,8 +405,8 @@
}
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());
@@ -401,8 +414,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.
@@ -660,11 +673,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.
@@ -704,11 +718,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());
@@ -776,13 +791,14 @@
}
-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() == kMintCid) {
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::Pair(Location::RequiresRegister(),
Location::RequiresRegister()));
locs->set_in(1, Location::Pair(Location::RequiresRegister(),
@@ -792,16 +808,16 @@
return locs;
}
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.
@@ -874,11 +890,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));
@@ -935,7 +952,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,
@@ -954,7 +972,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(),
@@ -974,11 +993,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;
@@ -1000,7 +1020,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(),
@@ -1015,7 +1036,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(),
@@ -1115,11 +1137,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).
@@ -1359,11 +1382,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).
@@ -1593,10 +1617,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());
@@ -1947,11 +1972,12 @@
};
-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,
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs, kNumTemps,
!field().IsNull() &&
((field().guarded_cid() == kIllegalCid) || is_initialization_)
? LocationSummary::kCallOnSlowPath
@@ -2188,11 +2214,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;
@@ -2212,8 +2239,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());
@@ -2236,11 +2265,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));
@@ -2263,11 +2293,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));
@@ -2483,12 +2514,12 @@
};
-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,
+ LocationSummary* locs = new(isolate) LocationSummary(
+ isolate, kNumInputs, kNumTemps,
(opt && !IsPotentialUnboxedLoad())
? LocationSummary::kNoCall
: LocationSummary::kCallOnSlowPath);
@@ -2631,11 +2662,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;
@@ -2663,11 +2695,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;
@@ -2731,11 +2763,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;
@@ -2756,11 +2789,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;
@@ -2783,7 +2817,8 @@
}
-LocationSummary* CatchBlockEntryInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* CatchBlockEntryInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
UNREACHABLE();
return NULL;
}
@@ -2820,11 +2855,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,
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs,
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_temp(0, Location::RequiresRegister());
@@ -3022,11 +3058,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()) {
@@ -3387,14 +3424,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;
@@ -3422,11 +3460,12 @@
}
-LocationSummary* BoxDoubleInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* BoxDoubleInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = 1;
- LocationSummary* summary =
- new LocationSummary(kNumInputs,
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs,
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
@@ -3452,14 +3491,15 @@
}
-LocationSummary* UnboxDoubleInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* UnboxDoubleInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t value_cid = value()->Type()->ToCid();
const bool needs_temp = ((value_cid != kSmiCid) && (value_cid != kDoubleCid));
const bool needs_writable_input = (value_cid == kSmiCid);
const intptr_t kNumTemps = needs_temp ? 1 : 0;
- LocationSummary* summary =
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, needs_writable_input
? Location::WritableRegister()
: Location::RequiresRegister());
@@ -3512,11 +3552,12 @@
}
-LocationSummary* BoxFloat32x4Instr::MakeLocationSummary(bool opt) const {
+LocationSummary* BoxFloat32x4Instr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = 1;
- LocationSummary* summary =
- new LocationSummary(kNumInputs,
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs,
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
@@ -3545,12 +3586,13 @@
}
-LocationSummary* UnboxFloat32x4Instr::MakeLocationSummary(bool opt) const {
+LocationSummary* UnboxFloat32x4Instr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t value_cid = value()->Type()->ToCid();
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = value_cid == kFloat32x4Cid ? 0 : 1;
- 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 (kNumTemps > 0) {
ASSERT(kNumTemps == 1);
@@ -3581,11 +3623,12 @@
}
-LocationSummary* BoxFloat64x2Instr::MakeLocationSummary(bool opt) const {
+LocationSummary* BoxFloat64x2Instr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = 1;
- LocationSummary* summary =
- new LocationSummary(kNumInputs,
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs,
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
@@ -3614,12 +3657,13 @@
}
-LocationSummary* UnboxFloat64x2Instr::MakeLocationSummary(bool opt) const {
+LocationSummary* UnboxFloat64x2Instr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t value_cid = value()->Type()->ToCid();
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = value_cid == kFloat64x2Cid ? 0 : 1;
- 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 (kNumTemps > 0) {
ASSERT(kNumTemps == 1);
@@ -3650,11 +3694,12 @@
}
-LocationSummary* BoxInt32x4Instr::MakeLocationSummary(bool opt) const {
+LocationSummary* BoxInt32x4Instr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = 1;
- LocationSummary* summary =
- new LocationSummary(kNumInputs,
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs,
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::RequiresFpuRegister());
@@ -3714,12 +3759,13 @@
}
-LocationSummary* UnboxInt32x4Instr::MakeLocationSummary(bool opt) const {
+LocationSummary* UnboxInt32x4Instr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t value_cid = value()->Type()->ToCid();
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = value_cid == kInt32x4Cid ? 0 : 1;
- 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 (kNumTemps > 0) {
ASSERT(kNumTemps == 1);
@@ -3750,11 +3796,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());
@@ -3776,11 +3823,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());
@@ -3803,11 +3851,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());
@@ -3851,11 +3900,12 @@
}
-LocationSummary* Simd32x4ShuffleInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Simd32x4ShuffleInstr::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);
// Low (< Q7) Q registers are needed for the vcvtds and vmovs instructions.
summary->set_in(0, Location::FpuRegisterLocation(Q5));
summary->set_out(0, Location::FpuRegisterLocation(Q6));
@@ -3931,11 +3981,12 @@
}
-LocationSummary* Simd32x4ShuffleMixInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Simd32x4ShuffleMixInstr::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);
// Low (< Q7) Q registers are needed for the vcvtds and vmovs instructions.
summary->set_in(0, Location::FpuRegisterLocation(Q4));
summary->set_in(1, Location::FpuRegisterLocation(Q5));
@@ -3987,11 +4038,12 @@
}
-LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Simd32x4GetSignMaskInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = 1;
- LocationSummary* summary =
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::FpuRegisterLocation(Q5));
summary->set_temp(0, Location::RequiresRegister());
summary->set_out(0, Location::RequiresRegister());
@@ -4028,11 +4080,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());
@@ -4060,11 +4112,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;
}
@@ -4076,11 +4129,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;
@@ -4101,11 +4155,12 @@
}
-LocationSummary* Float32x4ComparisonInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float32x4ComparisonInstr::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());
@@ -4145,11 +4200,12 @@
}
-LocationSummary* Float32x4MinMaxInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float32x4MinMaxInstr::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());
@@ -4174,11 +4230,12 @@
}
-LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float32x4SqrtInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = 1;
- 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());
summary->set_temp(0, Location::RequiresFpuRegister());
@@ -4206,11 +4263,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());
@@ -4234,11 +4292,12 @@
}
-LocationSummary* Float32x4ZeroArgInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float32x4ZeroArgInstr::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;
@@ -4261,11 +4320,12 @@
}
-LocationSummary* Float32x4ClampInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float32x4ClampInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 3;
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());
@@ -4284,11 +4344,12 @@
}
-LocationSummary* Float32x4WithInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float32x4WithInstr::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());
// Low (< 7) Q registers are needed for the vmovs instruction.
@@ -4332,11 +4393,12 @@
}
-LocationSummary* Float32x4ToInt32x4Instr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float32x4ToInt32x4Instr::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;
@@ -4353,11 +4415,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;
@@ -4386,11 +4449,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;
}
@@ -4402,11 +4466,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;
@@ -4430,11 +4495,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());
@@ -4459,11 +4524,11 @@
LocationSummary* Float64x2ToFloat32x4Instr::MakeLocationSummary(
- bool opt) const {
+ 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());
// Low (< 7) Q registers are needed for the vcvtsd instruction.
summary->set_out(0, Location::FpuRegisterLocation(Q6));
@@ -4490,11 +4555,11 @@
LocationSummary* Float32x4ToFloat64x2Instr::MakeLocationSummary(
- bool opt) const {
+ 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());
// Low (< 7) Q registers are needed for the vcvtsd instruction.
summary->set_out(0, Location::FpuRegisterLocation(Q6));
@@ -4518,11 +4583,12 @@
}
-LocationSummary* Float64x2ZeroArgInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float64x2ZeroArgInstr::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);
if (representation() == kTagged) {
ASSERT(op_kind() == MethodRecognizer::kFloat64x2GetSignMask);
@@ -4585,11 +4651,12 @@
}
-LocationSummary* Float64x2OneArgInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Float64x2OneArgInstr::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::SameAsFirstInput());
@@ -4658,11 +4725,11 @@
LocationSummary* Int32x4BoolConstructorInstr::MakeLocationSummary(
- bool opt) const {
+ Isolate* isolate, bool opt) const {
const intptr_t kNumInputs = 4;
const intptr_t kNumTemps = 1;
- 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());
summary->set_in(2, Location::RequiresRegister());
@@ -4705,11 +4772,12 @@
}
-LocationSummary* Int32x4GetFlagInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Int32x4GetFlagInstr::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);
// Low (< 7) Q registers are needed for the vmovrs instruction.
summary->set_in(0, Location::FpuRegisterLocation(Q6));
summary->set_out(0, Location::RequiresRegister());
@@ -4750,11 +4818,12 @@
}
-LocationSummary* Int32x4SelectInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Int32x4SelectInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 3;
const intptr_t kNumTemps = 1;
- 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());
@@ -4784,11 +4853,12 @@
}
-LocationSummary* Int32x4SetFlagInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* Int32x4SetFlagInstr::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::RequiresRegister());
// Low (< 7) Q register needed for the vmovsr instruction.
@@ -4834,11 +4904,12 @@
}
-LocationSummary* Int32x4ToFloat32x4Instr::MakeLocationSummary(bool opt) const {
+LocationSummary* Int32x4ToFloat32x4Instr::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;
@@ -4855,11 +4926,12 @@
}
-LocationSummary* BinaryInt32x4OpInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* BinaryInt32x4OpInstr::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());
@@ -4895,12 +4967,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(Q0));
summary->set_out(0, Location::FpuRegisterLocation(Q0));
if (!TargetCPUFeatures::hardfp_supported()) {
@@ -4915,8 +4988,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;
@@ -4951,12 +5024,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 = 1;
- 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.
@@ -4967,8 +5041,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.
@@ -5036,11 +5110,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.
@@ -5070,11 +5145,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;
@@ -5088,11 +5164,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;
@@ -5108,11 +5185,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;
@@ -5160,11 +5238,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;
@@ -5190,7 +5269,8 @@
}
-LocationSummary* DoubleToDoubleInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* DoubleToDoubleInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
UNIMPLEMENTED();
return NULL;
}
@@ -5201,11 +5281,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);
// Low (<= Q7) Q registers are needed for the conversion instructions.
result->set_in(0, Location::RequiresFpuRegister());
result->set_out(0, Location::FpuRegisterLocation(Q7));
@@ -5221,11 +5302,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);
// Low (<= Q7) Q registers are needed for the conversion instructions.
result->set_in(0, Location::FpuRegisterLocation(Q7));
result->set_out(0, Location::RequiresFpuRegister());
@@ -5241,11 +5323,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(Q0));
if (InputCount() == 2) {
result->set_in(1, Location::FpuRegisterLocation(Q1));
@@ -5424,12 +5507,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(),
@@ -5473,12 +5557,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 = 2;
- 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());
summary->set_temp(0, Location::RequiresRegister());
@@ -5556,7 +5641,7 @@
LocationSummary* PolymorphicInstanceCallInstr::MakeLocationSummary(
- bool opt) const {
+ Isolate* isolate, bool opt) const {
return MakeCallSummary();
}
@@ -5599,8 +5684,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();
@@ -5612,11 +5698,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());
@@ -5666,11 +5753,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;
}
@@ -5684,11 +5772,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;
@@ -5752,11 +5841,12 @@
}
-LocationSummary* UnboxIntegerInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* UnboxIntegerInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = 1;
- 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_temp(0, Location::RequiresRegister());
summary->set_out(0, Location::Pair(Location::RequiresRegister(),
@@ -5828,11 +5918,12 @@
}
-LocationSummary* BoxIntegerInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* BoxIntegerInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 1;
const intptr_t kNumTemps = 1;
- LocationSummary* summary =
- new LocationSummary(kNumInputs,
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs,
kNumTemps,
LocationSummary::kCallOnSlowPath);
summary->set_in(0, Location::Pair(Location::RequiresRegister(),
@@ -5934,11 +6025,12 @@
}
-LocationSummary* BinaryMintOpInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* BinaryMintOpInstr::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::Pair(Location::RequiresRegister(),
Location::RequiresRegister()));
summary->set_in(1, Location::Pair(Location::RequiresRegister(),
@@ -6007,11 +6099,12 @@
}
-LocationSummary* ShiftMintOpInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* ShiftMintOpInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
const intptr_t kNumInputs = 2;
const intptr_t kNumTemps = 1;
- LocationSummary* summary =
- new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall);
+ LocationSummary* summary = new(isolate) LocationSummary(
+ isolate, kNumInputs, kNumTemps, LocationSummary::kNoCall);
summary->set_in(0, Location::Pair(Location::RequiresRegister(),
Location::RequiresRegister()));
summary->set_in(1, Location::WritableRegister());
@@ -6098,11 +6191,12 @@
}
-LocationSummary* UnaryMintOpInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* UnaryMintOpInstr::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::Pair(Location::RequiresRegister(),
Location::RequiresRegister()));
summary->set_out(0, Location::Pair(Location::RequiresRegister(),
@@ -6134,8 +6228,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);
}
@@ -6149,8 +6244,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);
}
@@ -6190,8 +6286,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);
}
@@ -6219,7 +6316,8 @@
}
-LocationSummary* CurrentContextInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* CurrentContextInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
return LocationSummary::Make(0,
Location::RequiresRegister(),
LocationSummary::kNoCall);
@@ -6231,19 +6329,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.
@@ -6304,7 +6403,8 @@
}
-LocationSummary* BooleanNegateInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* BooleanNegateInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
return LocationSummary::Make(1,
Location::RequiresRegister(),
LocationSummary::kNoCall);
@@ -6321,7 +6421,8 @@
}
-LocationSummary* AllocateObjectInstr::MakeLocationSummary(bool opt) const {
+LocationSummary* AllocateObjectInstr::MakeLocationSummary(Isolate* isolate,
+ bool opt) const {
return MakeCallSummary();
}
« no previous file with comments | « runtime/vm/intermediate_language.cc ('k') | runtime/vm/intermediate_language_arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698