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

Unified Diff: src/compiler/bytecode-graph-builder.cc

Issue 1642893004: [interpreter] Refactor iterator access in BytecodeGraphBuilder. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebased. Created 4 years, 11 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 | « src/compiler/bytecode-graph-builder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/bytecode-graph-builder.cc
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc
index 0476c0710f208e86dffb764017ce690b6c64d2bf..72339be8eacbe95e49f0835953915dab60bebed0 100644
--- a/src/compiler/bytecode-graph-builder.cc
+++ b/src/compiler/bytecode-graph-builder.cc
@@ -103,17 +103,17 @@ class BytecodeGraphBuilder::Environment : public ZoneObject {
// Helper for generating frame states for before and after a bytecode.
class BytecodeGraphBuilder::FrameStateBeforeAndAfter {
public:
- FrameStateBeforeAndAfter(BytecodeGraphBuilder* builder,
- const interpreter::BytecodeArrayIterator& iterator)
+ explicit FrameStateBeforeAndAfter(BytecodeGraphBuilder* builder)
: builder_(builder),
id_after_(BailoutId::None()),
added_to_node_(false),
output_poke_offset_(0),
output_poke_count_(0) {
- BailoutId id_before(iterator.current_offset());
+ BailoutId id_before(builder->bytecode_iterator().current_offset());
frame_state_before_ = builder_->environment()->Checkpoint(
id_before, OutputFrameStateCombine::Ignore());
- id_after_ = BailoutId(id_before.ToInt() + iterator.current_bytecode_size());
+ id_after_ = BailoutId(id_before.ToInt() +
+ builder->bytecode_iterator().current_bytecode_size());
}
~FrameStateBeforeAndAfter() {
@@ -624,7 +624,7 @@ void BytecodeGraphBuilder::VisitBytecodes() {
switch (iterator.current_bytecode()) {
#define BYTECODE_CASE(name, ...) \
case interpreter::Bytecode::k##name: \
- Visit##name(iterator); \
+ Visit##name(); \
break;
BYTECODE_LIST(BYTECODE_CASE)
#undef BYTECODE_CODE
@@ -637,173 +637,131 @@ void BytecodeGraphBuilder::VisitBytecodes() {
DCHECK(exception_handlers_.empty());
}
-
-void BytecodeGraphBuilder::VisitLdaZero(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaZero() {
Node* node = jsgraph()->ZeroConstant();
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdaSmi8(
- const interpreter::BytecodeArrayIterator& iterator) {
- Node* node = jsgraph()->Constant(iterator.GetImmediateOperand(0));
+void BytecodeGraphBuilder::VisitLdaSmi8() {
+ Node* node = jsgraph()->Constant(bytecode_iterator().GetImmediateOperand(0));
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdaConstantWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- Node* node = jsgraph()->Constant(iterator.GetConstantForIndexOperand(0));
+void BytecodeGraphBuilder::VisitLdaConstantWide() {
+ Node* node =
+ jsgraph()->Constant(bytecode_iterator().GetConstantForIndexOperand(0));
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdaConstant(
- const interpreter::BytecodeArrayIterator& iterator) {
- Node* node = jsgraph()->Constant(iterator.GetConstantForIndexOperand(0));
+void BytecodeGraphBuilder::VisitLdaConstant() {
+ Node* node =
+ jsgraph()->Constant(bytecode_iterator().GetConstantForIndexOperand(0));
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdaUndefined(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaUndefined() {
Node* node = jsgraph()->UndefinedConstant();
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdaNull(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaNull() {
Node* node = jsgraph()->NullConstant();
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdaTheHole(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaTheHole() {
Node* node = jsgraph()->TheHoleConstant();
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdaTrue(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaTrue() {
Node* node = jsgraph()->TrueConstant();
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdaFalse(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaFalse() {
Node* node = jsgraph()->FalseConstant();
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitLdar(
- const interpreter::BytecodeArrayIterator& iterator) {
- Node* value = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+void BytecodeGraphBuilder::VisitLdar() {
+ Node* value =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
environment()->BindAccumulator(value);
}
-
-void BytecodeGraphBuilder::VisitStar(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStar() {
Node* value = environment()->LookupAccumulator();
- environment()->BindRegister(iterator.GetRegisterOperand(0), value);
-}
-
-
-void BytecodeGraphBuilder::VisitMov(
- const interpreter::BytecodeArrayIterator& iterator) {
- Node* value = environment()->LookupRegister(iterator.GetRegisterOperand(0));
- environment()->BindRegister(iterator.GetRegisterOperand(1), value);
+ environment()->BindRegister(bytecode_iterator().GetRegisterOperand(0), value);
}
-
-void BytecodeGraphBuilder::VisitMovWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- VisitMov(iterator);
+void BytecodeGraphBuilder::VisitMov() {
+ Node* value =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
+ environment()->BindRegister(bytecode_iterator().GetRegisterOperand(1), value);
}
+void BytecodeGraphBuilder::VisitMovWide() { VisitMov(); }
void BytecodeGraphBuilder::BuildLoadGlobal(
- const interpreter::BytecodeArrayIterator& iterator,
TypeofMode typeof_mode) {
- FrameStateBeforeAndAfter states(this, iterator);
+ FrameStateBeforeAndAfter states(this);
Handle<Name> name =
- Handle<Name>::cast(iterator.GetConstantForIndexOperand(0));
- VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(1));
+ Handle<Name>::cast(bytecode_iterator().GetConstantForIndexOperand(0));
+ VectorSlotPair feedback =
+ CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(1));
const Operator* op = javascript()->LoadGlobal(name, feedback, typeof_mode);
Node* node = NewNode(op, BuildLoadFeedbackVector());
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitLdaGlobalSloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaGlobalSloppy() {
DCHECK(is_sloppy(language_mode()));
- BuildLoadGlobal(iterator, TypeofMode::NOT_INSIDE_TYPEOF);
+ BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::VisitLdaGlobalStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaGlobalStrict() {
DCHECK(is_strict(language_mode()));
- BuildLoadGlobal(iterator, TypeofMode::NOT_INSIDE_TYPEOF);
+ BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofSloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofSloppy() {
DCHECK(is_sloppy(language_mode()));
- BuildLoadGlobal(iterator, TypeofMode::INSIDE_TYPEOF);
+ BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofStrict() {
DCHECK(is_strict(language_mode()));
- BuildLoadGlobal(iterator, TypeofMode::INSIDE_TYPEOF);
+ BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::VisitLdaGlobalSloppyWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaGlobalSloppyWide() {
DCHECK(is_sloppy(language_mode()));
- BuildLoadGlobal(iterator, TypeofMode::NOT_INSIDE_TYPEOF);
+ BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::VisitLdaGlobalStrictWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaGlobalStrictWide() {
DCHECK(is_strict(language_mode()));
- BuildLoadGlobal(iterator, TypeofMode::NOT_INSIDE_TYPEOF);
+ BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofSloppyWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofSloppyWide() {
DCHECK(is_sloppy(language_mode()));
- BuildLoadGlobal(iterator, TypeofMode::INSIDE_TYPEOF);
+ BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofStrictWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeofStrictWide() {
DCHECK(is_strict(language_mode()));
- BuildLoadGlobal(iterator, TypeofMode::INSIDE_TYPEOF);
+ BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::BuildStoreGlobal(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildStoreGlobal() {
+ FrameStateBeforeAndAfter states(this);
Handle<Name> name =
- Handle<Name>::cast(iterator.GetConstantForIndexOperand(0));
- VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(1));
+ Handle<Name>::cast(bytecode_iterator().GetConstantForIndexOperand(0));
+ VectorSlotPair feedback =
+ CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(1));
Node* value = environment()->LookupAccumulator();
const Operator* op =
@@ -812,240 +770,184 @@ void BytecodeGraphBuilder::BuildStoreGlobal(
environment()->RecordAfterState(node, &states);
}
-
-void BytecodeGraphBuilder::VisitStaGlobalSloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStaGlobalSloppy() {
DCHECK(is_sloppy(language_mode()));
- BuildStoreGlobal(iterator);
+ BuildStoreGlobal();
}
-
-void BytecodeGraphBuilder::VisitStaGlobalStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStaGlobalStrict() {
DCHECK(is_strict(language_mode()));
- BuildStoreGlobal(iterator);
+ BuildStoreGlobal();
}
-void BytecodeGraphBuilder::VisitStaGlobalSloppyWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStaGlobalSloppyWide() {
DCHECK(is_sloppy(language_mode()));
- BuildStoreGlobal(iterator);
+ BuildStoreGlobal();
}
-
-void BytecodeGraphBuilder::VisitStaGlobalStrictWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStaGlobalStrictWide() {
DCHECK(is_strict(language_mode()));
- BuildStoreGlobal(iterator);
+ BuildStoreGlobal();
}
-
-void BytecodeGraphBuilder::VisitLdaContextSlot(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLdaContextSlot() {
// TODO(mythria): LoadContextSlots are unrolled by the required depth when
// generating bytecode. Hence the value of depth is always 0. Update this
// code, when the implementation changes.
// TODO(mythria): immutable flag is also set to false. This information is not
// available in bytecode array. update this code when the implementation
// changes.
- const Operator* op =
- javascript()->LoadContext(0, iterator.GetIndexOperand(1), false);
- Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+ const Operator* op = javascript()->LoadContext(
+ 0, bytecode_iterator().GetIndexOperand(1), false);
+ Node* context =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
Node* node = NewNode(op, context);
environment()->BindAccumulator(node);
}
+void BytecodeGraphBuilder::VisitLdaContextSlotWide() { VisitLdaContextSlot(); }
-void BytecodeGraphBuilder::VisitLdaContextSlotWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- VisitLdaContextSlot(iterator);
-}
-
-
-void BytecodeGraphBuilder::VisitStaContextSlot(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStaContextSlot() {
// TODO(mythria): LoadContextSlots are unrolled by the required depth when
// generating bytecode. Hence the value of depth is always 0. Update this
// code, when the implementation changes.
const Operator* op =
- javascript()->StoreContext(0, iterator.GetIndexOperand(1));
- Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+ javascript()->StoreContext(0, bytecode_iterator().GetIndexOperand(1));
+ Node* context =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
Node* value = environment()->LookupAccumulator();
NewNode(op, context, value);
}
+void BytecodeGraphBuilder::VisitStaContextSlotWide() { VisitStaContextSlot(); }
-void BytecodeGraphBuilder::VisitStaContextSlotWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- VisitStaContextSlot(iterator);
-}
-
-
-void BytecodeGraphBuilder::BuildLdaLookupSlot(
- TypeofMode typeof_mode,
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildLdaLookupSlot(TypeofMode typeof_mode) {
+ FrameStateBeforeAndAfter states(this);
Handle<String> name =
- Handle<String>::cast(iterator.GetConstantForIndexOperand(0));
+ Handle<String>::cast(bytecode_iterator().GetConstantForIndexOperand(0));
const Operator* op = javascript()->LoadDynamic(name, typeof_mode);
Node* value =
NewNode(op, BuildLoadFeedbackVector(), environment()->Context());
environment()->BindAccumulator(value, &states);
}
-
-void BytecodeGraphBuilder::VisitLdaLookupSlot(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildLdaLookupSlot(TypeofMode::NOT_INSIDE_TYPEOF, iterator);
+void BytecodeGraphBuilder::VisitLdaLookupSlot() {
+ BuildLdaLookupSlot(TypeofMode::NOT_INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::VisitLdaLookupSlotInsideTypeof(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildLdaLookupSlot(TypeofMode::INSIDE_TYPEOF, iterator);
+void BytecodeGraphBuilder::VisitLdaLookupSlotInsideTypeof() {
+ BuildLdaLookupSlot(TypeofMode::INSIDE_TYPEOF);
}
-
-void BytecodeGraphBuilder::BuildStaLookupSlot(
- LanguageMode language_mode,
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildStaLookupSlot(LanguageMode language_mode) {
+ FrameStateBeforeAndAfter states(this);
Node* value = environment()->LookupAccumulator();
- Node* name = jsgraph()->Constant(iterator.GetConstantForIndexOperand(0));
+ Node* name =
+ jsgraph()->Constant(bytecode_iterator().GetConstantForIndexOperand(0));
Node* language = jsgraph()->Constant(language_mode);
const Operator* op = javascript()->CallRuntime(Runtime::kStoreLookupSlot);
Node* store = NewNode(op, value, environment()->Context(), name, language);
environment()->BindAccumulator(store, &states);
}
+void BytecodeGraphBuilder::VisitLdaLookupSlotWide() { VisitLdaLookupSlot(); }
-void BytecodeGraphBuilder::VisitLdaLookupSlotWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- VisitLdaLookupSlot(iterator);
+void BytecodeGraphBuilder::VisitLdaLookupSlotInsideTypeofWide() {
+ VisitLdaLookupSlotInsideTypeof();
}
-
-void BytecodeGraphBuilder::VisitLdaLookupSlotInsideTypeofWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- VisitLdaLookupSlotInsideTypeof(iterator);
+void BytecodeGraphBuilder::VisitStaLookupSlotSloppy() {
+ BuildStaLookupSlot(LanguageMode::SLOPPY);
}
-
-void BytecodeGraphBuilder::VisitStaLookupSlotSloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildStaLookupSlot(LanguageMode::SLOPPY, iterator);
+void BytecodeGraphBuilder::VisitStaLookupSlotStrict() {
+ BuildStaLookupSlot(LanguageMode::STRICT);
}
-
-void BytecodeGraphBuilder::VisitStaLookupSlotStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildStaLookupSlot(LanguageMode::STRICT, iterator);
+void BytecodeGraphBuilder::VisitStaLookupSlotSloppyWide() {
+ VisitStaLookupSlotSloppy();
}
-
-void BytecodeGraphBuilder::VisitStaLookupSlotSloppyWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- VisitStaLookupSlotSloppy(iterator);
+void BytecodeGraphBuilder::VisitStaLookupSlotStrictWide() {
+ VisitStaLookupSlotStrict();
}
-
-void BytecodeGraphBuilder::VisitStaLookupSlotStrictWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- VisitStaLookupSlotStrict(iterator);
-}
-
-
-void BytecodeGraphBuilder::BuildNamedLoad(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
- Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+void BytecodeGraphBuilder::BuildNamedLoad() {
+ FrameStateBeforeAndAfter states(this);
+ Node* object =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
Handle<Name> name =
- Handle<Name>::cast(iterator.GetConstantForIndexOperand(1));
- VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(2));
+ Handle<Name>::cast(bytecode_iterator().GetConstantForIndexOperand(1));
+ VectorSlotPair feedback =
+ CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(2));
const Operator* op = javascript()->LoadNamed(language_mode(), name, feedback);
Node* node = NewNode(op, object, BuildLoadFeedbackVector());
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitLoadICSloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLoadICSloppy() {
DCHECK(is_sloppy(language_mode()));
- BuildNamedLoad(iterator);
+ BuildNamedLoad();
}
-
-void BytecodeGraphBuilder::VisitLoadICStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLoadICStrict() {
DCHECK(is_strict(language_mode()));
- BuildNamedLoad(iterator);
+ BuildNamedLoad();
}
-
-void BytecodeGraphBuilder::VisitLoadICSloppyWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLoadICSloppyWide() {
DCHECK(is_sloppy(language_mode()));
- BuildNamedLoad(iterator);
+ BuildNamedLoad();
}
-
-void BytecodeGraphBuilder::VisitLoadICStrictWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLoadICStrictWide() {
DCHECK(is_strict(language_mode()));
- BuildNamedLoad(iterator);
+ BuildNamedLoad();
}
-
-void BytecodeGraphBuilder::BuildKeyedLoad(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildKeyedLoad() {
+ FrameStateBeforeAndAfter states(this);
Node* key = environment()->LookupAccumulator();
- Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
- VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(1));
+ Node* object =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
+ VectorSlotPair feedback =
+ CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(1));
const Operator* op = javascript()->LoadProperty(language_mode(), feedback);
Node* node = NewNode(op, object, key, BuildLoadFeedbackVector());
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitKeyedLoadICSloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitKeyedLoadICSloppy() {
DCHECK(is_sloppy(language_mode()));
- BuildKeyedLoad(iterator);
+ BuildKeyedLoad();
}
-
-void BytecodeGraphBuilder::VisitKeyedLoadICStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitKeyedLoadICStrict() {
DCHECK(is_strict(language_mode()));
- BuildKeyedLoad(iterator);
+ BuildKeyedLoad();
}
-
-void BytecodeGraphBuilder::VisitKeyedLoadICSloppyWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitKeyedLoadICSloppyWide() {
DCHECK(is_sloppy(language_mode()));
- BuildKeyedLoad(iterator);
+ BuildKeyedLoad();
}
-
-void BytecodeGraphBuilder::VisitKeyedLoadICStrictWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitKeyedLoadICStrictWide() {
DCHECK(is_strict(language_mode()));
- BuildKeyedLoad(iterator);
+ BuildKeyedLoad();
}
-
-void BytecodeGraphBuilder::BuildNamedStore(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildNamedStore() {
+ FrameStateBeforeAndAfter states(this);
Node* value = environment()->LookupAccumulator();
- Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+ Node* object =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
Handle<Name> name =
- Handle<Name>::cast(iterator.GetConstantForIndexOperand(1));
- VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(2));
+ Handle<Name>::cast(bytecode_iterator().GetConstantForIndexOperand(1));
+ VectorSlotPair feedback =
+ CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(2));
const Operator* op =
javascript()->StoreNamed(language_mode(), name, feedback);
@@ -1053,210 +955,160 @@ void BytecodeGraphBuilder::BuildNamedStore(
environment()->RecordAfterState(node, &states);
}
-
-void BytecodeGraphBuilder::VisitStoreICSloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStoreICSloppy() {
DCHECK(is_sloppy(language_mode()));
- BuildNamedStore(iterator);
+ BuildNamedStore();
}
-
-void BytecodeGraphBuilder::VisitStoreICStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStoreICStrict() {
DCHECK(is_strict(language_mode()));
- BuildNamedStore(iterator);
+ BuildNamedStore();
}
-
-void BytecodeGraphBuilder::VisitStoreICSloppyWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStoreICSloppyWide() {
DCHECK(is_sloppy(language_mode()));
- BuildNamedStore(iterator);
+ BuildNamedStore();
}
-
-void BytecodeGraphBuilder::VisitStoreICStrictWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitStoreICStrictWide() {
DCHECK(is_strict(language_mode()));
- BuildNamedStore(iterator);
+ BuildNamedStore();
}
-
-void BytecodeGraphBuilder::BuildKeyedStore(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildKeyedStore() {
+ FrameStateBeforeAndAfter states(this);
Node* value = environment()->LookupAccumulator();
- Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
- Node* key = environment()->LookupRegister(iterator.GetRegisterOperand(1));
- VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(2));
+ Node* object =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
+ Node* key =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(1));
+ VectorSlotPair feedback =
+ CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(2));
const Operator* op = javascript()->StoreProperty(language_mode(), feedback);
Node* node = NewNode(op, object, key, value, BuildLoadFeedbackVector());
environment()->RecordAfterState(node, &states);
}
-
-void BytecodeGraphBuilder::VisitKeyedStoreICSloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitKeyedStoreICSloppy() {
DCHECK(is_sloppy(language_mode()));
- BuildKeyedStore(iterator);
+ BuildKeyedStore();
}
-
-void BytecodeGraphBuilder::VisitKeyedStoreICStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitKeyedStoreICStrict() {
DCHECK(is_strict(language_mode()));
- BuildKeyedStore(iterator);
+ BuildKeyedStore();
}
-
-void BytecodeGraphBuilder::VisitKeyedStoreICSloppyWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitKeyedStoreICSloppyWide() {
DCHECK(is_sloppy(language_mode()));
- BuildKeyedStore(iterator);
+ BuildKeyedStore();
}
-
-void BytecodeGraphBuilder::VisitKeyedStoreICStrictWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitKeyedStoreICStrictWide() {
DCHECK(is_strict(language_mode()));
- BuildKeyedStore(iterator);
+ BuildKeyedStore();
}
-
-void BytecodeGraphBuilder::VisitPushContext(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitPushContext() {
Node* new_context = environment()->LookupAccumulator();
- environment()->BindRegister(iterator.GetRegisterOperand(0),
+ environment()->BindRegister(bytecode_iterator().GetRegisterOperand(0),
environment()->Context());
environment()->SetContext(new_context);
}
-
-void BytecodeGraphBuilder::VisitPopContext(
- const interpreter::BytecodeArrayIterator& iterator) {
- Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+void BytecodeGraphBuilder::VisitPopContext() {
+ Node* context =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
environment()->SetContext(context);
}
-
-void BytecodeGraphBuilder::VisitCreateClosure(
- const interpreter::BytecodeArrayIterator& iterator) {
- Handle<SharedFunctionInfo> shared_info =
- Handle<SharedFunctionInfo>::cast(iterator.GetConstantForIndexOperand(0));
+void BytecodeGraphBuilder::VisitCreateClosure() {
+ Handle<SharedFunctionInfo> shared_info = Handle<SharedFunctionInfo>::cast(
+ bytecode_iterator().GetConstantForIndexOperand(0));
PretenureFlag tenured =
- iterator.GetImmediateOperand(1) ? TENURED : NOT_TENURED;
+ bytecode_iterator().GetImmediateOperand(1) ? TENURED : NOT_TENURED;
const Operator* op = javascript()->CreateClosure(shared_info, tenured);
Node* closure = NewNode(op);
environment()->BindAccumulator(closure);
}
-
-void BytecodeGraphBuilder::VisitCreateClosureWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- VisitCreateClosure(iterator);
-}
-
+void BytecodeGraphBuilder::VisitCreateClosureWide() { VisitCreateClosure(); }
void BytecodeGraphBuilder::BuildCreateArguments(
- CreateArgumentsParameters::Type type,
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+ CreateArgumentsParameters::Type type) {
+ FrameStateBeforeAndAfter states(this);
const Operator* op = javascript()->CreateArguments(type, 0);
Node* object = NewNode(op, GetFunctionClosure());
environment()->BindAccumulator(object, &states);
}
-
-void BytecodeGraphBuilder::VisitCreateMappedArguments(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCreateArguments(CreateArgumentsParameters::kMappedArguments, iterator);
+void BytecodeGraphBuilder::VisitCreateMappedArguments() {
+ BuildCreateArguments(CreateArgumentsParameters::kMappedArguments);
}
-
-void BytecodeGraphBuilder::VisitCreateUnmappedArguments(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCreateArguments(CreateArgumentsParameters::kUnmappedArguments, iterator);
+void BytecodeGraphBuilder::VisitCreateUnmappedArguments() {
+ BuildCreateArguments(CreateArgumentsParameters::kUnmappedArguments);
}
-
-void BytecodeGraphBuilder::BuildCreateLiteral(
- const Operator* op, const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildCreateLiteral(const Operator* op) {
+ FrameStateBeforeAndAfter states(this);
Node* literal = NewNode(op, GetFunctionClosure());
environment()->BindAccumulator(literal, &states);
}
-
-void BytecodeGraphBuilder::BuildCreateRegExpLiteral(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::BuildCreateRegExpLiteral() {
Handle<String> constant_pattern =
- Handle<String>::cast(iterator.GetConstantForIndexOperand(0));
- int literal_index = iterator.GetIndexOperand(1);
- int literal_flags = iterator.GetImmediateOperand(2);
+ Handle<String>::cast(bytecode_iterator().GetConstantForIndexOperand(0));
+ int literal_index = bytecode_iterator().GetIndexOperand(1);
+ int literal_flags = bytecode_iterator().GetImmediateOperand(2);
const Operator* op = javascript()->CreateLiteralRegExp(
constant_pattern, literal_flags, literal_index);
- BuildCreateLiteral(op, iterator);
+ BuildCreateLiteral(op);
}
-
-void BytecodeGraphBuilder::VisitCreateRegExpLiteral(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCreateRegExpLiteral(iterator);
+void BytecodeGraphBuilder::VisitCreateRegExpLiteral() {
+ BuildCreateRegExpLiteral();
}
-
-void BytecodeGraphBuilder::VisitCreateRegExpLiteralWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCreateRegExpLiteral(iterator);
+void BytecodeGraphBuilder::VisitCreateRegExpLiteralWide() {
+ BuildCreateRegExpLiteral();
}
-
-void BytecodeGraphBuilder::BuildCreateArrayLiteral(
- const interpreter::BytecodeArrayIterator& iterator) {
- Handle<FixedArray> constant_elements =
- Handle<FixedArray>::cast(iterator.GetConstantForIndexOperand(0));
- int literal_index = iterator.GetIndexOperand(1);
- int literal_flags = iterator.GetImmediateOperand(2);
+void BytecodeGraphBuilder::BuildCreateArrayLiteral() {
+ Handle<FixedArray> constant_elements = Handle<FixedArray>::cast(
+ bytecode_iterator().GetConstantForIndexOperand(0));
+ int literal_index = bytecode_iterator().GetIndexOperand(1);
+ int literal_flags = bytecode_iterator().GetImmediateOperand(2);
const Operator* op = javascript()->CreateLiteralArray(
constant_elements, literal_flags, literal_index);
- BuildCreateLiteral(op, iterator);
+ BuildCreateLiteral(op);
}
-
-void BytecodeGraphBuilder::VisitCreateArrayLiteral(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCreateArrayLiteral(iterator);
+void BytecodeGraphBuilder::VisitCreateArrayLiteral() {
+ BuildCreateArrayLiteral();
}
-
-void BytecodeGraphBuilder::VisitCreateArrayLiteralWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCreateArrayLiteral(iterator);
+void BytecodeGraphBuilder::VisitCreateArrayLiteralWide() {
+ BuildCreateArrayLiteral();
}
-
-void BytecodeGraphBuilder::BuildCreateObjectLiteral(
- const interpreter::BytecodeArrayIterator& iterator) {
- Handle<FixedArray> constant_properties =
- Handle<FixedArray>::cast(iterator.GetConstantForIndexOperand(0));
- int literal_index = iterator.GetIndexOperand(1);
- int literal_flags = iterator.GetImmediateOperand(2);
+void BytecodeGraphBuilder::BuildCreateObjectLiteral() {
+ Handle<FixedArray> constant_properties = Handle<FixedArray>::cast(
+ bytecode_iterator().GetConstantForIndexOperand(0));
+ int literal_index = bytecode_iterator().GetIndexOperand(1);
+ int literal_flags = bytecode_iterator().GetImmediateOperand(2);
const Operator* op = javascript()->CreateLiteralObject(
constant_properties, literal_flags, literal_index);
- BuildCreateLiteral(op, iterator);
+ BuildCreateLiteral(op);
}
-
-void BytecodeGraphBuilder::VisitCreateObjectLiteral(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCreateObjectLiteral(iterator);
+void BytecodeGraphBuilder::VisitCreateObjectLiteral() {
+ BuildCreateObjectLiteral();
}
-
-void BytecodeGraphBuilder::VisitCreateObjectLiteralWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCreateObjectLiteral(iterator);
+void BytecodeGraphBuilder::VisitCreateObjectLiteralWide() {
+ BuildCreateObjectLiteral();
}
@@ -1276,18 +1128,18 @@ Node* BytecodeGraphBuilder::ProcessCallArguments(const Operator* call_op,
return value;
}
-
-void BytecodeGraphBuilder::BuildCall(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildCall() {
+ FrameStateBeforeAndAfter states(this);
// TODO(rmcilroy): Set receiver_hint correctly based on whether the receiver
// register has been loaded with null / undefined explicitly or we are sure it
// is not null / undefined.
ConvertReceiverMode receiver_hint = ConvertReceiverMode::kAny;
- Node* callee = environment()->LookupRegister(iterator.GetRegisterOperand(0));
- interpreter::Register receiver = iterator.GetRegisterOperand(1);
- size_t arg_count = iterator.GetCountOperand(2);
- VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(3));
+ Node* callee =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
+ interpreter::Register receiver = bytecode_iterator().GetRegisterOperand(1);
+ size_t arg_count = bytecode_iterator().GetCountOperand(2);
+ VectorSlotPair feedback =
+ CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(3));
// TODO(ishell): provide correct tail_call_mode value to CallFunction.
const Operator* call = javascript()->CallFunction(
@@ -1296,25 +1148,16 @@ void BytecodeGraphBuilder::BuildCall(
environment()->BindAccumulator(value, &states);
}
+void BytecodeGraphBuilder::VisitCall() { BuildCall(); }
-void BytecodeGraphBuilder::VisitCall(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCall(iterator);
-}
-
-
-void BytecodeGraphBuilder::VisitCallWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCall(iterator);
-}
-
+void BytecodeGraphBuilder::VisitCallWide() { BuildCall(); }
-void BytecodeGraphBuilder::BuildCallJSRuntime(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
- Node* callee = BuildLoadNativeContextField(iterator.GetIndexOperand(0));
- interpreter::Register receiver = iterator.GetRegisterOperand(1);
- size_t arg_count = iterator.GetCountOperand(2);
+void BytecodeGraphBuilder::BuildCallJSRuntime() {
+ FrameStateBeforeAndAfter states(this);
+ Node* callee =
+ BuildLoadNativeContextField(bytecode_iterator().GetIndexOperand(0));
+ interpreter::Register receiver = bytecode_iterator().GetRegisterOperand(1);
+ size_t arg_count = bytecode_iterator().GetCountOperand(2);
// Create node to perform the JS runtime call.
const Operator* call =
@@ -1323,18 +1166,9 @@ void BytecodeGraphBuilder::BuildCallJSRuntime(
environment()->BindAccumulator(value, &states);
}
+void BytecodeGraphBuilder::VisitCallJSRuntime() { BuildCallJSRuntime(); }
-void BytecodeGraphBuilder::VisitCallJSRuntime(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCallJSRuntime(iterator);
-}
-
-
-void BytecodeGraphBuilder::VisitCallJSRuntimeWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCallJSRuntime(iterator);
-}
-
+void BytecodeGraphBuilder::VisitCallJSRuntimeWide() { BuildCallJSRuntime(); }
Node* BytecodeGraphBuilder::ProcessCallRuntimeArguments(
const Operator* call_runtime_op, interpreter::Register first_arg,
@@ -1349,14 +1183,12 @@ Node* BytecodeGraphBuilder::ProcessCallRuntimeArguments(
return value;
}
-
-void BytecodeGraphBuilder::BuildCallRuntime(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildCallRuntime() {
+ FrameStateBeforeAndAfter states(this);
Runtime::FunctionId functionId =
- static_cast<Runtime::FunctionId>(iterator.GetIndexOperand(0));
- interpreter::Register first_arg = iterator.GetRegisterOperand(1);
- size_t arg_count = iterator.GetCountOperand(2);
+ static_cast<Runtime::FunctionId>(bytecode_iterator().GetIndexOperand(0));
+ interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(1);
+ size_t arg_count = bytecode_iterator().GetCountOperand(2);
// Create node to perform the runtime call.
const Operator* call = javascript()->CallRuntime(functionId, arg_count);
@@ -1364,27 +1196,18 @@ void BytecodeGraphBuilder::BuildCallRuntime(
environment()->BindAccumulator(value, &states);
}
+void BytecodeGraphBuilder::VisitCallRuntime() { BuildCallRuntime(); }
-void BytecodeGraphBuilder::VisitCallRuntime(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCallRuntime(iterator);
-}
-
-
-void BytecodeGraphBuilder::VisitCallRuntimeWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCallRuntime(iterator);
-}
-
+void BytecodeGraphBuilder::VisitCallRuntimeWide() { BuildCallRuntime(); }
-void BytecodeGraphBuilder::BuildCallRuntimeForPair(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildCallRuntimeForPair() {
+ FrameStateBeforeAndAfter states(this);
Runtime::FunctionId functionId =
- static_cast<Runtime::FunctionId>(iterator.GetIndexOperand(0));
- interpreter::Register first_arg = iterator.GetRegisterOperand(1);
- size_t arg_count = iterator.GetCountOperand(2);
- interpreter::Register first_return = iterator.GetRegisterOperand(3);
+ static_cast<Runtime::FunctionId>(bytecode_iterator().GetIndexOperand(0));
+ interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(1);
+ size_t arg_count = bytecode_iterator().GetCountOperand(2);
+ interpreter::Register first_return =
+ bytecode_iterator().GetRegisterOperand(3);
// Create node to perform the runtime call.
const Operator* call = javascript()->CallRuntime(functionId, arg_count);
@@ -1392,16 +1215,12 @@ void BytecodeGraphBuilder::BuildCallRuntimeForPair(
environment()->BindRegistersToProjections(first_return, return_pair, &states);
}
-
-void BytecodeGraphBuilder::VisitCallRuntimeForPair(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCallRuntimeForPair(iterator);
+void BytecodeGraphBuilder::VisitCallRuntimeForPair() {
+ BuildCallRuntimeForPair();
}
-
-void BytecodeGraphBuilder::VisitCallRuntimeForPairWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCallRuntimeForPair(iterator);
+void BytecodeGraphBuilder::VisitCallRuntimeForPairWide() {
+ BuildCallRuntimeForPair();
}
@@ -1421,13 +1240,11 @@ Node* BytecodeGraphBuilder::ProcessCallNewArguments(
return value;
}
-
-void BytecodeGraphBuilder::BuildCallConstruct(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
- interpreter::Register callee = iterator.GetRegisterOperand(0);
- interpreter::Register first_arg = iterator.GetRegisterOperand(1);
- size_t arg_count = iterator.GetCountOperand(2);
+void BytecodeGraphBuilder::BuildCallConstruct() {
+ FrameStateBeforeAndAfter states(this);
+ interpreter::Register callee = bytecode_iterator().GetRegisterOperand(0);
+ interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(1);
+ size_t arg_count = bytecode_iterator().GetCountOperand(2);
// TODO(turbofan): Pass the feedback here.
const Operator* call = javascript()->CallConstruct(
@@ -1436,22 +1253,12 @@ void BytecodeGraphBuilder::BuildCallConstruct(
environment()->BindAccumulator(value, &states);
}
+void BytecodeGraphBuilder::VisitNew() { BuildCallConstruct(); }
-void BytecodeGraphBuilder::VisitNew(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCallConstruct(iterator);
-}
-
-
-void BytecodeGraphBuilder::VisitNewWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCallConstruct(iterator);
-}
+void BytecodeGraphBuilder::VisitNewWide() { BuildCallConstruct(); }
-
-void BytecodeGraphBuilder::VisitThrow(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::VisitThrow() {
+ FrameStateBeforeAndAfter states(this);
Node* value = environment()->LookupAccumulator();
Node* call = NewNode(javascript()->CallRuntime(Runtime::kThrow), value);
environment()->RecordAfterState(call, &states);
@@ -1459,10 +1266,8 @@ void BytecodeGraphBuilder::VisitThrow(
UpdateControlDependencyToLeaveFunction(control);
}
-
-void BytecodeGraphBuilder::VisitReThrow(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::VisitReThrow() {
+ FrameStateBeforeAndAfter states(this);
Node* value = environment()->LookupAccumulator();
Node* call = NewNode(javascript()->CallRuntime(Runtime::kReThrow), value);
environment()->RecordAfterState(call, &states);
@@ -1470,98 +1275,72 @@ void BytecodeGraphBuilder::VisitReThrow(
UpdateControlDependencyToLeaveFunction(control);
}
-
-void BytecodeGraphBuilder::BuildBinaryOp(
- const Operator* js_op, const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
- Node* left = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+void BytecodeGraphBuilder::BuildBinaryOp(const Operator* js_op) {
+ FrameStateBeforeAndAfter states(this);
+ Node* left =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
Node* right = environment()->LookupAccumulator();
Node* node = NewNode(js_op, left, right);
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitAdd(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitAdd() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->Add(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->Add(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitSub(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitSub() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->Subtract(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->Subtract(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitMul(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitMul() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->Multiply(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->Multiply(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitDiv(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitDiv() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->Divide(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->Divide(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitMod(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitMod() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->Modulus(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->Modulus(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitBitwiseOr(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitBitwiseOr() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->BitwiseOr(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->BitwiseOr(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitBitwiseXor(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitBitwiseXor() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->BitwiseXor(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->BitwiseXor(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitBitwiseAnd(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitBitwiseAnd() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->BitwiseAnd(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->BitwiseAnd(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitShiftLeft(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitShiftLeft() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->ShiftLeft(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->ShiftLeft(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitShiftRight(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitShiftRight() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->ShiftRight(language_mode(), hints), iterator);
+ BuildBinaryOp(javascript()->ShiftRight(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitShiftRightLogical(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitShiftRightLogical() {
BinaryOperationHints hints = BinaryOperationHints::Any();
- BuildBinaryOp(javascript()->ShiftRightLogical(language_mode(), hints),
- iterator);
+ BuildBinaryOp(javascript()->ShiftRightLogical(language_mode(), hints));
}
-
-void BytecodeGraphBuilder::VisitInc(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::VisitInc() {
+ FrameStateBeforeAndAfter states(this);
const Operator* js_op =
javascript()->Add(language_mode(), BinaryOperationHints::Any());
Node* node = NewNode(js_op, environment()->LookupAccumulator(),
@@ -1569,10 +1348,8 @@ void BytecodeGraphBuilder::VisitInc(
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitDec(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::VisitDec() {
+ FrameStateBeforeAndAfter states(this);
const Operator* js_op =
javascript()->Subtract(language_mode(), BinaryOperationHints::Any());
Node* node = NewNode(js_op, environment()->LookupAccumulator(),
@@ -1580,9 +1357,7 @@ void BytecodeGraphBuilder::VisitDec(
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitLogicalNot(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitLogicalNot() {
Node* value = NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
environment()->LookupAccumulator());
Node* node = NewNode(common()->Select(MachineRepresentation::kTagged), value,
@@ -1590,321 +1365,221 @@ void BytecodeGraphBuilder::VisitLogicalNot(
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::VisitTypeOf(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitTypeOf() {
Node* node =
NewNode(javascript()->TypeOf(), environment()->LookupAccumulator());
environment()->BindAccumulator(node);
}
-
-void BytecodeGraphBuilder::BuildDelete(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildDelete() {
+ FrameStateBeforeAndAfter states(this);
Node* key = environment()->LookupAccumulator();
- Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+ Node* object =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
Node* node =
NewNode(javascript()->DeleteProperty(language_mode()), object, key);
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitDeletePropertyStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitDeletePropertyStrict() {
DCHECK(is_strict(language_mode()));
- BuildDelete(iterator);
+ BuildDelete();
}
-
-void BytecodeGraphBuilder::VisitDeletePropertySloppy(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitDeletePropertySloppy() {
DCHECK(is_sloppy(language_mode()));
- BuildDelete(iterator);
+ BuildDelete();
}
-
-void BytecodeGraphBuilder::VisitDeleteLookupSlot(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::VisitDeleteLookupSlot() {
+ FrameStateBeforeAndAfter states(this);
Node* name = environment()->LookupAccumulator();
const Operator* op = javascript()->CallRuntime(Runtime::kDeleteLookupSlot);
Node* result = NewNode(op, environment()->Context(), name);
environment()->BindAccumulator(result, &states);
}
-
-void BytecodeGraphBuilder::BuildCompareOp(
- const Operator* js_op, const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
- Node* left = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+void BytecodeGraphBuilder::BuildCompareOp(const Operator* js_op) {
+ FrameStateBeforeAndAfter states(this);
+ Node* left =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
Node* right = environment()->LookupAccumulator();
Node* node = NewNode(js_op, left, right);
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitTestEqual(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->Equal(), iterator);
+void BytecodeGraphBuilder::VisitTestEqual() {
+ BuildCompareOp(javascript()->Equal());
}
-
-void BytecodeGraphBuilder::VisitTestNotEqual(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->NotEqual(), iterator);
+void BytecodeGraphBuilder::VisitTestNotEqual() {
+ BuildCompareOp(javascript()->NotEqual());
}
-
-void BytecodeGraphBuilder::VisitTestEqualStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->StrictEqual(), iterator);
+void BytecodeGraphBuilder::VisitTestEqualStrict() {
+ BuildCompareOp(javascript()->StrictEqual());
}
-
-void BytecodeGraphBuilder::VisitTestNotEqualStrict(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->StrictNotEqual(), iterator);
+void BytecodeGraphBuilder::VisitTestNotEqualStrict() {
+ BuildCompareOp(javascript()->StrictNotEqual());
}
-
-void BytecodeGraphBuilder::VisitTestLessThan(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->LessThan(language_mode()), iterator);
+void BytecodeGraphBuilder::VisitTestLessThan() {
+ BuildCompareOp(javascript()->LessThan(language_mode()));
}
-
-void BytecodeGraphBuilder::VisitTestGreaterThan(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->GreaterThan(language_mode()), iterator);
+void BytecodeGraphBuilder::VisitTestGreaterThan() {
+ BuildCompareOp(javascript()->GreaterThan(language_mode()));
}
-
-void BytecodeGraphBuilder::VisitTestLessThanOrEqual(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->LessThanOrEqual(language_mode()), iterator);
+void BytecodeGraphBuilder::VisitTestLessThanOrEqual() {
+ BuildCompareOp(javascript()->LessThanOrEqual(language_mode()));
}
-
-void BytecodeGraphBuilder::VisitTestGreaterThanOrEqual(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->GreaterThanOrEqual(language_mode()), iterator);
+void BytecodeGraphBuilder::VisitTestGreaterThanOrEqual() {
+ BuildCompareOp(javascript()->GreaterThanOrEqual(language_mode()));
}
-
-void BytecodeGraphBuilder::VisitTestIn(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->HasProperty(), iterator);
+void BytecodeGraphBuilder::VisitTestIn() {
+ BuildCompareOp(javascript()->HasProperty());
}
-
-void BytecodeGraphBuilder::VisitTestInstanceOf(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCompareOp(javascript()->InstanceOf(), iterator);
+void BytecodeGraphBuilder::VisitTestInstanceOf() {
+ BuildCompareOp(javascript()->InstanceOf());
}
-
-void BytecodeGraphBuilder::BuildCastOperator(
- const Operator* js_op, const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildCastOperator(const Operator* js_op) {
+ FrameStateBeforeAndAfter states(this);
Node* node = NewNode(js_op, environment()->LookupAccumulator());
environment()->BindAccumulator(node, &states);
}
-
-void BytecodeGraphBuilder::VisitToName(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCastOperator(javascript()->ToName(), iterator);
+void BytecodeGraphBuilder::VisitToName() {
+ BuildCastOperator(javascript()->ToName());
}
-
-void BytecodeGraphBuilder::VisitToObject(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCastOperator(javascript()->ToObject(), iterator);
+void BytecodeGraphBuilder::VisitToObject() {
+ BuildCastOperator(javascript()->ToObject());
}
-
-void BytecodeGraphBuilder::VisitToNumber(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildCastOperator(javascript()->ToNumber(), iterator);
+void BytecodeGraphBuilder::VisitToNumber() {
+ BuildCastOperator(javascript()->ToNumber());
}
+void BytecodeGraphBuilder::VisitJump() { BuildJump(); }
-void BytecodeGraphBuilder::VisitJump(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildJump();
-}
-
+void BytecodeGraphBuilder::VisitJumpConstant() { BuildJump(); }
-void BytecodeGraphBuilder::VisitJumpConstant(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildJump();
-}
+void BytecodeGraphBuilder::VisitJumpConstantWide() { BuildJump(); }
-
-void BytecodeGraphBuilder::VisitJumpConstantWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildJump();
-}
-
-
-void BytecodeGraphBuilder::VisitJumpIfTrue(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfTrue() {
BuildJumpIfEqual(jsgraph()->TrueConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfTrueConstant(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfTrueConstant() {
BuildJumpIfEqual(jsgraph()->TrueConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfTrueConstantWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfTrueConstantWide() {
BuildJumpIfEqual(jsgraph()->TrueConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfFalse(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfFalse() {
BuildJumpIfEqual(jsgraph()->FalseConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfFalseConstant(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfFalseConstant() {
BuildJumpIfEqual(jsgraph()->FalseConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfFalseConstantWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfFalseConstantWide() {
BuildJumpIfEqual(jsgraph()->FalseConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfToBooleanTrue(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfToBooleanTrue() {
BuildJumpIfToBooleanEqual(jsgraph()->TrueConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfToBooleanTrueConstant(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfToBooleanTrueConstant() {
BuildJumpIfToBooleanEqual(jsgraph()->TrueConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfToBooleanTrueConstantWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfToBooleanTrueConstantWide() {
BuildJumpIfToBooleanEqual(jsgraph()->TrueConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfToBooleanFalse(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfToBooleanFalse() {
BuildJumpIfToBooleanEqual(jsgraph()->FalseConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfToBooleanFalseConstant(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfToBooleanFalseConstant() {
BuildJumpIfToBooleanEqual(jsgraph()->FalseConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfToBooleanFalseConstantWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfToBooleanFalseConstantWide() {
BuildJumpIfToBooleanEqual(jsgraph()->FalseConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfNull(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfNull() {
BuildJumpIfEqual(jsgraph()->NullConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfNullConstant(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfNullConstant() {
BuildJumpIfEqual(jsgraph()->NullConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfNullConstantWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfNullConstantWide() {
BuildJumpIfEqual(jsgraph()->NullConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfUndefined(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfUndefined() {
BuildJumpIfEqual(jsgraph()->UndefinedConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfUndefinedConstant(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfUndefinedConstant() {
BuildJumpIfEqual(jsgraph()->UndefinedConstant());
}
-
-void BytecodeGraphBuilder::VisitJumpIfUndefinedConstantWide(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitJumpIfUndefinedConstantWide() {
BuildJumpIfEqual(jsgraph()->UndefinedConstant());
}
-
-void BytecodeGraphBuilder::VisitReturn(
- const interpreter::BytecodeArrayIterator& iterator) {
+void BytecodeGraphBuilder::VisitReturn() {
Node* control =
NewNode(common()->Return(), environment()->LookupAccumulator());
UpdateControlDependencyToLeaveFunction(control);
set_environment(nullptr);
}
-
-void BytecodeGraphBuilder::BuildForInPrepare(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildForInPrepare() {
+ FrameStateBeforeAndAfter states(this);
Node* receiver = environment()->LookupAccumulator();
Node* prepare = NewNode(javascript()->ForInPrepare(), receiver);
- environment()->BindRegistersToProjections(iterator.GetRegisterOperand(0),
- prepare, &states);
+ environment()->BindRegistersToProjections(
+ bytecode_iterator().GetRegisterOperand(0), prepare, &states);
}
+void BytecodeGraphBuilder::VisitForInPrepare() { BuildForInPrepare(); }
-void BytecodeGraphBuilder::VisitForInPrepare(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildForInPrepare(iterator);
-}
-
-
-void BytecodeGraphBuilder::VisitForInPrepareWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildForInPrepare(iterator);
-}
-
+void BytecodeGraphBuilder::VisitForInPrepareWide() { BuildForInPrepare(); }
-void BytecodeGraphBuilder::VisitForInDone(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
- Node* index = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+void BytecodeGraphBuilder::VisitForInDone() {
+ FrameStateBeforeAndAfter states(this);
+ Node* index =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
Node* cache_length =
- environment()->LookupRegister(iterator.GetRegisterOperand(1));
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(1));
Node* exit_cond = NewNode(javascript()->ForInDone(), index, cache_length);
environment()->BindAccumulator(exit_cond, &states);
}
-
-void BytecodeGraphBuilder::BuildForInNext(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
+void BytecodeGraphBuilder::BuildForInNext() {
+ FrameStateBeforeAndAfter states(this);
Node* receiver =
- environment()->LookupRegister(iterator.GetRegisterOperand(0));
- Node* index = environment()->LookupRegister(iterator.GetRegisterOperand(1));
- int catch_reg_pair_index = iterator.GetRegisterOperand(2).index();
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
+ Node* index =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(1));
+ int catch_reg_pair_index = bytecode_iterator().GetRegisterOperand(2).index();
Node* cache_type = environment()->LookupRegister(
interpreter::Register(catch_reg_pair_index));
Node* cache_array = environment()->LookupRegister(
@@ -1915,23 +1590,14 @@ void BytecodeGraphBuilder::BuildForInNext(
environment()->BindAccumulator(value, &states);
}
+void BytecodeGraphBuilder::VisitForInNext() { BuildForInNext(); }
-void BytecodeGraphBuilder::VisitForInNext(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildForInNext(iterator);
-}
-
-
-void BytecodeGraphBuilder::VisitForInNextWide(
- const interpreter::BytecodeArrayIterator& iterator) {
- BuildForInNext(iterator);
-}
-
+void BytecodeGraphBuilder::VisitForInNextWide() { BuildForInNext(); }
-void BytecodeGraphBuilder::VisitForInStep(
- const interpreter::BytecodeArrayIterator& iterator) {
- FrameStateBeforeAndAfter states(this, iterator);
- Node* index = environment()->LookupRegister(iterator.GetRegisterOperand(0));
+void BytecodeGraphBuilder::VisitForInStep() {
+ FrameStateBeforeAndAfter states(this);
+ Node* index =
+ environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
index = NewNode(javascript()->ForInStep(), index);
environment()->BindAccumulator(index, &states);
}
@@ -2004,18 +1670,18 @@ void BytecodeGraphBuilder::BuildJump(int source_offset, int target_offset) {
void BytecodeGraphBuilder::BuildJump() {
- int source_offset = bytecode_iterator()->current_offset();
- int target_offset = bytecode_iterator()->GetJumpTargetOffset();
+ int source_offset = bytecode_iterator().current_offset();
+ int target_offset = bytecode_iterator().GetJumpTargetOffset();
BuildJump(source_offset, target_offset);
}
void BytecodeGraphBuilder::BuildConditionalJump(Node* condition) {
- int source_offset = bytecode_iterator()->current_offset();
+ int source_offset = bytecode_iterator().current_offset();
NewBranch(condition);
Environment* if_false_environment = environment()->CopyForConditional();
NewIfTrue();
- BuildJump(source_offset, bytecode_iterator()->GetJumpTargetOffset());
+ BuildJump(source_offset, bytecode_iterator().GetJumpTargetOffset());
set_environment(if_false_environment);
NewIfFalse();
}
@@ -2131,7 +1797,7 @@ Node* BytecodeGraphBuilder::MakeNode(const Operator* op, int value_input_count,
}
// Add implicit exception continuation for throwing nodes.
if (!result->op()->HasProperty(Operator::kNoThrow) && inside_handler) {
- int throw_offset = bytecode_iterator()->current_offset();
+ int throw_offset = bytecode_iterator().current_offset();
int handler_offset = exception_handlers_.top().handler_offset_;
// TODO(mstarzinger): Thread through correct prediction!
IfExceptionHint hint = IfExceptionHint::kLocallyCaught;
« no previous file with comments | « src/compiler/bytecode-graph-builder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698