[maglev] Support TypeOf, CreateArrayFromIterable and IncBlockCounter
These bytecodes simply call a builtin. Bug: v8:7700 Change-Id: I2616ea5571741a7f79b27bc6ddbd95cfb3254e97 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3805063 Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82158}
This commit is contained in:
parent
a8bff771fd
commit
71d3ae39e7
@ -1460,7 +1460,10 @@ void MaglevGraphBuilder::VisitLogicalNot() {
|
||||
}
|
||||
}
|
||||
|
||||
MAGLEV_UNIMPLEMENTED_BYTECODE(TypeOf)
|
||||
void MaglevGraphBuilder::VisitTypeOf() {
|
||||
ValueNode* value = GetAccumulatorTagged();
|
||||
SetAccumulator(BuildCallBuiltin<Builtin::kTypeof>({value}));
|
||||
}
|
||||
|
||||
void MaglevGraphBuilder::VisitDeletePropertyStrict() {
|
||||
ValueNode* object = LoadRegisterTagged(0);
|
||||
@ -2024,7 +2027,11 @@ void MaglevGraphBuilder::VisitCreateArrayLiteral() {
|
||||
SetAccumulator(result);
|
||||
}
|
||||
|
||||
MAGLEV_UNIMPLEMENTED_BYTECODE(CreateArrayFromIterable)
|
||||
void MaglevGraphBuilder::VisitCreateArrayFromIterable() {
|
||||
ValueNode* iterable = GetAccumulatorTagged();
|
||||
SetAccumulator(
|
||||
BuildCallBuiltin<Builtin::kIterableToListWithSymbolLookup>({iterable}));
|
||||
}
|
||||
|
||||
void MaglevGraphBuilder::VisitCreateEmptyArrayLiteral() {
|
||||
// TODO(v8:7700): Consider inlining the allocation.
|
||||
@ -2429,7 +2436,11 @@ void MaglevGraphBuilder::VisitDebugger() {
|
||||
BuildCallRuntime(Runtime::kHandleDebuggerStatement, {});
|
||||
}
|
||||
|
||||
MAGLEV_UNIMPLEMENTED_BYTECODE(IncBlockCounter)
|
||||
void MaglevGraphBuilder::VisitIncBlockCounter() {
|
||||
ValueNode* closure = GetClosure();
|
||||
ValueNode* coverage_array_slot = GetSmiConstant(iterator_.GetIndexOperand(0));
|
||||
BuildCallBuiltin<Builtin::kIncBlockCounter>({closure, coverage_array_slot});
|
||||
}
|
||||
|
||||
void MaglevGraphBuilder::VisitAbort() {
|
||||
AbortReason reason = static_cast<AbortReason>(GetFlagOperand(0));
|
||||
|
Loading…
Reference in New Issue
Block a user