[maglev] Move shared PrintParams
Node printing is architecture agnostic. Bug: v8:7700 Change-Id: If954c415d4fb7ec82b96eadc8742eb4efc69b290 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4061888 Auto-Submit: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#84525}
This commit is contained in:
parent
b49cea5506
commit
211fd627a5
@ -45,11 +45,6 @@ bool MaglevGraphHasUnimplementedNode(Graph* graph) {
|
||||
return processor.node_processor().has_unimplemented_node();
|
||||
}
|
||||
|
||||
#define UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Node, ...) \
|
||||
UNIMPLEMENTED_NODE(Node, __VA_ARGS__) \
|
||||
void Node::PrintParams(std::ostream& os, \
|
||||
MaglevGraphLabeller* graph_labeller) const {}
|
||||
|
||||
UNIMPLEMENTED_NODE(GenericAdd)
|
||||
UNIMPLEMENTED_NODE(GenericSubtract)
|
||||
UNIMPLEMENTED_NODE(GenericMultiply)
|
||||
@ -106,21 +101,20 @@ UNIMPLEMENTED_NODE(Float64LessThan)
|
||||
UNIMPLEMENTED_NODE(Float64LessThanOrEqual)
|
||||
UNIMPLEMENTED_NODE(Float64GreaterThan)
|
||||
UNIMPLEMENTED_NODE(Float64GreaterThanOrEqual)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Float64Ieee754Unary)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Constant)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Float64Constant)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Int32Constant)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(RootConstant)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(SmiConstant)
|
||||
UNIMPLEMENTED_NODE(Float64Ieee754Unary)
|
||||
UNIMPLEMENTED_NODE(Constant)
|
||||
UNIMPLEMENTED_NODE(Float64Constant)
|
||||
UNIMPLEMENTED_NODE(Int32Constant)
|
||||
UNIMPLEMENTED_NODE(RootConstant)
|
||||
UNIMPLEMENTED_NODE(SmiConstant)
|
||||
UNIMPLEMENTED_NODE(BuiltinStringFromCharCode)
|
||||
UNIMPLEMENTED_NODE(BuiltinStringPrototypeCharCodeAt)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Call, receiver_mode_, target_type_,
|
||||
feedback_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CallBuiltin)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CallRuntime)
|
||||
UNIMPLEMENTED_NODE(Call, receiver_mode_, target_type_, feedback_)
|
||||
UNIMPLEMENTED_NODE(CallBuiltin)
|
||||
UNIMPLEMENTED_NODE(CallRuntime)
|
||||
UNIMPLEMENTED_NODE(CallWithArrayLike)
|
||||
UNIMPLEMENTED_NODE(CallWithSpread)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CallKnownJSFunction)
|
||||
UNIMPLEMENTED_NODE(CallKnownJSFunction)
|
||||
UNIMPLEMENTED_NODE(Construct)
|
||||
UNIMPLEMENTED_NODE(ConstructWithSpread)
|
||||
UNIMPLEMENTED_NODE(ConvertReceiver, mode_)
|
||||
@ -131,20 +125,20 @@ UNIMPLEMENTED_NODE(CreateShallowArrayLiteral)
|
||||
UNIMPLEMENTED_NODE(CreateObjectLiteral)
|
||||
UNIMPLEMENTED_NODE(CreateEmptyObjectLiteral)
|
||||
UNIMPLEMENTED_NODE(CreateShallowObjectLiteral)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CreateFunctionContext)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CreateClosure)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(FastCreateClosure)
|
||||
UNIMPLEMENTED_NODE(CreateFunctionContext)
|
||||
UNIMPLEMENTED_NODE(CreateClosure)
|
||||
UNIMPLEMENTED_NODE(FastCreateClosure)
|
||||
UNIMPLEMENTED_NODE(CreateRegExpLiteral)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(DeleteProperty)
|
||||
UNIMPLEMENTED_NODE(DeleteProperty)
|
||||
UNIMPLEMENTED_NODE(ForInPrepare)
|
||||
UNIMPLEMENTED_NODE(ForInNext)
|
||||
UNIMPLEMENTED_NODE(GeneratorRestoreRegister)
|
||||
UNIMPLEMENTED_NODE(GetIterator)
|
||||
UNIMPLEMENTED_NODE(GetSecondReturnedValue)
|
||||
UNIMPLEMENTED_NODE(GetTemplateObject)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(InitialValue)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(LoadTaggedField)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(LoadDoubleField)
|
||||
UNIMPLEMENTED_NODE(InitialValue)
|
||||
UNIMPLEMENTED_NODE(LoadTaggedField)
|
||||
UNIMPLEMENTED_NODE(LoadDoubleField)
|
||||
UNIMPLEMENTED_NODE(LoadTaggedElement)
|
||||
UNIMPLEMENTED_NODE(LoadSignedIntDataViewElement, type_)
|
||||
UNIMPLEMENTED_NODE(LoadDoubleDataViewElement)
|
||||
@ -152,19 +146,19 @@ UNIMPLEMENTED_NODE(LoadSignedIntTypedArrayElement, elements_kind_)
|
||||
UNIMPLEMENTED_NODE(LoadUnsignedIntTypedArrayElement, elements_kind_)
|
||||
UNIMPLEMENTED_NODE(LoadDoubleTypedArrayElement, elements_kind_)
|
||||
UNIMPLEMENTED_NODE(LoadDoubleElement)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(LoadGlobal)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(LoadNamedGeneric)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(LoadNamedFromSuperGeneric)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(SetNamedGeneric)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(DefineNamedOwnGeneric)
|
||||
UNIMPLEMENTED_NODE(LoadGlobal)
|
||||
UNIMPLEMENTED_NODE(LoadNamedGeneric)
|
||||
UNIMPLEMENTED_NODE(LoadNamedFromSuperGeneric)
|
||||
UNIMPLEMENTED_NODE(SetNamedGeneric)
|
||||
UNIMPLEMENTED_NODE(DefineNamedOwnGeneric)
|
||||
UNIMPLEMENTED_NODE(StoreInArrayLiteralGeneric)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(StoreGlobal)
|
||||
UNIMPLEMENTED_NODE(StoreGlobal)
|
||||
UNIMPLEMENTED_NODE(GetKeyedGeneric)
|
||||
UNIMPLEMENTED_NODE(SetKeyedGeneric)
|
||||
UNIMPLEMENTED_NODE(DefineKeyedOwnGeneric)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Phi)
|
||||
UNIMPLEMENTED_NODE(Phi)
|
||||
void Phi::AllocateVregInPostProcess(MaglevVregAllocationState*) {}
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(RegisterInput)
|
||||
UNIMPLEMENTED_NODE(RegisterInput)
|
||||
UNIMPLEMENTED_NODE(CheckedSmiTagInt32)
|
||||
UNIMPLEMENTED_NODE(CheckedSmiTagUint32)
|
||||
UNIMPLEMENTED_NODE(UnsafeSmiTag)
|
||||
@ -201,56 +195,56 @@ UNIMPLEMENTED_NODE(ToName)
|
||||
UNIMPLEMENTED_NODE(ToNumberOrNumeric)
|
||||
UNIMPLEMENTED_NODE(ToObject)
|
||||
UNIMPLEMENTED_NODE(ToString)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(ConstantGapMove)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(GapMove)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(AssertInt32, condition_, reason_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckDynamicValue)
|
||||
UNIMPLEMENTED_NODE(ConstantGapMove)
|
||||
UNIMPLEMENTED_NODE(GapMove)
|
||||
UNIMPLEMENTED_NODE(AssertInt32, condition_, reason_)
|
||||
UNIMPLEMENTED_NODE(CheckDynamicValue)
|
||||
UNIMPLEMENTED_NODE(CheckInt32IsSmi)
|
||||
UNIMPLEMENTED_NODE(CheckUint32IsSmi)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckHeapObject)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckInt32Condition, condition_, reason_)
|
||||
UNIMPLEMENTED_NODE(CheckHeapObject)
|
||||
UNIMPLEMENTED_NODE(CheckInt32Condition, condition_, reason_)
|
||||
UNIMPLEMENTED_NODE(CheckJSArrayBounds)
|
||||
UNIMPLEMENTED_NODE(CheckJSDataViewBounds, element_type_)
|
||||
UNIMPLEMENTED_NODE(CheckJSObjectElementsBounds)
|
||||
UNIMPLEMENTED_NODE(CheckJSTypedArrayBounds, elements_kind_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckMaps, check_type_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckMapsWithMigration, check_type_)
|
||||
UNIMPLEMENTED_NODE(CheckMaps, check_type_)
|
||||
UNIMPLEMENTED_NODE(CheckMapsWithMigration, check_type_)
|
||||
UNIMPLEMENTED_NODE(CheckNumber)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckSmi)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckString, check_type_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckSymbol, check_type_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckValue)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(CheckInstanceType, check_type_)
|
||||
UNIMPLEMENTED_NODE(CheckSmi)
|
||||
UNIMPLEMENTED_NODE(CheckString, check_type_)
|
||||
UNIMPLEMENTED_NODE(CheckSymbol, check_type_)
|
||||
UNIMPLEMENTED_NODE(CheckValue)
|
||||
UNIMPLEMENTED_NODE(CheckInstanceType, check_type_)
|
||||
UNIMPLEMENTED_NODE(DebugBreak)
|
||||
UNIMPLEMENTED_NODE(GeneratorStore)
|
||||
UNIMPLEMENTED_NODE(JumpLoopPrologue, loop_depth_, unit_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(StoreMap)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(StoreDoubleField)
|
||||
UNIMPLEMENTED_NODE(StoreMap)
|
||||
UNIMPLEMENTED_NODE(StoreDoubleField)
|
||||
UNIMPLEMENTED_NODE(StoreSignedIntDataViewElement, type_)
|
||||
UNIMPLEMENTED_NODE(StoreDoubleDataViewElement)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(StoreTaggedFieldNoWriteBarrier)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(StoreTaggedFieldWithWriteBarrier)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(IncreaseInterruptBudget)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(ReduceInterruptBudget)
|
||||
UNIMPLEMENTED_NODE(StoreTaggedFieldNoWriteBarrier)
|
||||
UNIMPLEMENTED_NODE(StoreTaggedFieldWithWriteBarrier)
|
||||
UNIMPLEMENTED_NODE(IncreaseInterruptBudget)
|
||||
UNIMPLEMENTED_NODE(ReduceInterruptBudget)
|
||||
UNIMPLEMENTED_NODE(ThrowReferenceErrorIfHole)
|
||||
UNIMPLEMENTED_NODE(ThrowSuperNotCalledIfHole)
|
||||
UNIMPLEMENTED_NODE(ThrowSuperAlreadyCalledIfNotHole)
|
||||
UNIMPLEMENTED_NODE(ThrowIfNotSuperConstructor)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(BranchIfRootConstant)
|
||||
UNIMPLEMENTED_NODE(BranchIfRootConstant)
|
||||
UNIMPLEMENTED_NODE(BranchIfToBooleanTrue)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(BranchIfReferenceCompare, operation_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(BranchIfInt32Compare, operation_)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(BranchIfFloat64Compare, operation_)
|
||||
UNIMPLEMENTED_NODE(BranchIfReferenceCompare, operation_)
|
||||
UNIMPLEMENTED_NODE(BranchIfInt32Compare, operation_)
|
||||
UNIMPLEMENTED_NODE(BranchIfFloat64Compare, operation_)
|
||||
UNIMPLEMENTED_NODE(BranchIfUndefinedOrNull)
|
||||
UNIMPLEMENTED_NODE(BranchIfJSReceiver)
|
||||
UNIMPLEMENTED_NODE(Switch)
|
||||
UNIMPLEMENTED_NODE(Jump)
|
||||
UNIMPLEMENTED_NODE(JumpLoop)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(JumpToInlined)
|
||||
UNIMPLEMENTED_NODE(JumpToInlined)
|
||||
UNIMPLEMENTED_NODE(JumpFromInlined)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Abort)
|
||||
UNIMPLEMENTED_NODE(Abort)
|
||||
UNIMPLEMENTED_NODE(Return)
|
||||
UNIMPLEMENTED_NODE_WITH_PRINT_PARAMS(Deopt)
|
||||
UNIMPLEMENTED_NODE(Deopt)
|
||||
|
||||
} // namespace maglev
|
||||
} // namespace internal
|
||||
|
@ -196,6 +196,10 @@ void ValueNode::SetConstantLocation() {
|
||||
.virtual_register());
|
||||
}
|
||||
|
||||
// ---
|
||||
// Check input value representation
|
||||
// ---
|
||||
|
||||
ValueRepresentation ToValueRepresentation(MachineType type) {
|
||||
switch (type.representation()) {
|
||||
case MachineRepresentation::kTagged:
|
||||
@ -334,6 +338,276 @@ void CallRuntime::VerifyInputs(MaglevGraphLabeller* graph_labeller) const {
|
||||
}
|
||||
}
|
||||
|
||||
// ---
|
||||
// Print params
|
||||
// ---
|
||||
|
||||
void SmiConstant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << value() << ")";
|
||||
}
|
||||
|
||||
void Int32Constant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << value() << ")";
|
||||
}
|
||||
|
||||
void Float64Constant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << value() << ")";
|
||||
}
|
||||
|
||||
void Constant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << object_ << ")";
|
||||
}
|
||||
|
||||
void DeleteProperty::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << LanguageMode2String(mode()) << ")";
|
||||
}
|
||||
|
||||
void InitialValue::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << source().ToString() << ")";
|
||||
}
|
||||
|
||||
void LoadGlobal::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name() << ")";
|
||||
}
|
||||
|
||||
void StoreGlobal::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name() << ")";
|
||||
}
|
||||
|
||||
void RegisterInput::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << input() << ")";
|
||||
}
|
||||
|
||||
void RootConstant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << RootsTable::name(index()) << ")";
|
||||
}
|
||||
|
||||
void CreateFunctionContext::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *scope_info().object() << ", " << slot_count() << ")";
|
||||
}
|
||||
|
||||
void FastCreateClosure::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *shared_function_info().object() << ", "
|
||||
<< feedback_cell().object() << ")";
|
||||
}
|
||||
|
||||
void CreateClosure::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *shared_function_info().object() << ", "
|
||||
<< feedback_cell().object();
|
||||
if (pretenured()) {
|
||||
os << " [pretenured]";
|
||||
}
|
||||
os << ")";
|
||||
}
|
||||
|
||||
void Abort::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << GetAbortReason(reason()) << ")";
|
||||
}
|
||||
|
||||
void AssertInt32::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << condition_ << ")";
|
||||
}
|
||||
|
||||
void CheckMaps::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(";
|
||||
size_t map_count = maps().size();
|
||||
if (map_count > 0) {
|
||||
for (size_t i = 0; i < map_count - 1; ++i) {
|
||||
os << maps().at(i) << ", ";
|
||||
}
|
||||
os << maps().at(map_count - 1);
|
||||
}
|
||||
os << ")";
|
||||
}
|
||||
|
||||
void CheckValue::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *value().object() << ")";
|
||||
}
|
||||
|
||||
void CheckInstanceType::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << instance_type() << ")";
|
||||
}
|
||||
|
||||
void CheckMapsWithMigration::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(";
|
||||
size_t map_count = maps().size();
|
||||
if (map_count > 0) {
|
||||
for (size_t i = 0; i < map_count - 1; ++i) {
|
||||
os << maps().at(i) << ", ";
|
||||
}
|
||||
os << maps().at(map_count - 1);
|
||||
}
|
||||
os << ")";
|
||||
}
|
||||
|
||||
void CheckInt32Condition::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << condition_ << ")";
|
||||
}
|
||||
|
||||
void LoadTaggedField::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(0x" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void LoadDoubleField::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(0x" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void StoreDoubleField::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void StoreTaggedFieldNoWriteBarrier::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void StoreMap::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *map_.object() << ")";
|
||||
}
|
||||
|
||||
void StoreTaggedFieldWithWriteBarrier::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void LoadNamedGeneric::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name_ << ")";
|
||||
}
|
||||
|
||||
void LoadNamedFromSuperGeneric::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name_ << ")";
|
||||
}
|
||||
|
||||
void SetNamedGeneric::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name_ << ")";
|
||||
}
|
||||
|
||||
void DefineNamedOwnGeneric::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name_ << ")";
|
||||
}
|
||||
|
||||
void GapMove::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << source() << " → " << target() << ")";
|
||||
}
|
||||
|
||||
void ConstantGapMove::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(";
|
||||
graph_labeller->PrintNodeLabel(os, node_);
|
||||
os << " → " << target() << ")";
|
||||
}
|
||||
|
||||
void Float64Ieee754Unary::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "("
|
||||
<< ExternalReferenceTable::NameOfIsolateIndependentAddress(
|
||||
ieee_function_.address())
|
||||
<< ")";
|
||||
}
|
||||
|
||||
void Phi::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << owner().ToString() << ")";
|
||||
}
|
||||
|
||||
void Call::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << receiver_mode_ << ", ";
|
||||
switch (target_type_) {
|
||||
case TargetType::kJSFunction:
|
||||
os << "JSFunction";
|
||||
break;
|
||||
case TargetType::kAny:
|
||||
os << "Any";
|
||||
break;
|
||||
}
|
||||
os << ")";
|
||||
}
|
||||
|
||||
void CallKnownJSFunction::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << function_.object() << ")";
|
||||
}
|
||||
|
||||
void CallBuiltin::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << Builtins::name(builtin()) << ")";
|
||||
}
|
||||
|
||||
void CallRuntime::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << Runtime::FunctionForId(function_id())->name << ")";
|
||||
}
|
||||
|
||||
void IncreaseInterruptBudget::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << amount() << ")";
|
||||
}
|
||||
|
||||
void ReduceInterruptBudget::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << amount() << ")";
|
||||
}
|
||||
|
||||
void Deopt::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << DeoptimizeReasonToString(reason()) << ")";
|
||||
}
|
||||
|
||||
void JumpToInlined::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << Brief(*unit()->shared_function_info().object()) << ")";
|
||||
}
|
||||
|
||||
void BranchIfRootConstant::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << RootsTable::name(root_index_) << ")";
|
||||
}
|
||||
|
||||
void BranchIfFloat64Compare::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << operation_ << ")";
|
||||
}
|
||||
|
||||
void BranchIfInt32Compare::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << operation_ << ")";
|
||||
}
|
||||
|
||||
void BranchIfReferenceCompare::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << operation_ << ")";
|
||||
}
|
||||
|
||||
} // namespace maglev
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
@ -3461,7 +3461,7 @@ class CheckDynamicValue : public FixedInputNodeT<2, CheckDynamicValue> {
|
||||
|
||||
void AllocateVreg(MaglevVregAllocationState*);
|
||||
void GenerateCode(MaglevAssembler*, const ProcessingState&);
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const;
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {}
|
||||
};
|
||||
|
||||
class CheckSmi : public FixedInputNodeT<1, CheckSmi> {
|
||||
@ -3479,7 +3479,7 @@ class CheckSmi : public FixedInputNodeT<1, CheckSmi> {
|
||||
|
||||
void AllocateVreg(MaglevVregAllocationState*);
|
||||
void GenerateCode(MaglevAssembler*, const ProcessingState&);
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const;
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {}
|
||||
};
|
||||
|
||||
class CheckNumber : public FixedInputNodeT<1, CheckNumber> {
|
||||
@ -3520,7 +3520,7 @@ class CheckHeapObject : public FixedInputNodeT<1, CheckHeapObject> {
|
||||
|
||||
void AllocateVreg(MaglevVregAllocationState*);
|
||||
void GenerateCode(MaglevAssembler*, const ProcessingState&);
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const;
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {}
|
||||
};
|
||||
|
||||
class CheckSymbol : public FixedInputNodeT<1, CheckSymbol> {
|
||||
@ -3539,7 +3539,7 @@ class CheckSymbol : public FixedInputNodeT<1, CheckSymbol> {
|
||||
|
||||
void AllocateVreg(MaglevVregAllocationState*);
|
||||
void GenerateCode(MaglevAssembler*, const ProcessingState&);
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const;
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {}
|
||||
|
||||
private:
|
||||
const CheckType check_type_;
|
||||
@ -3589,7 +3589,7 @@ class CheckString : public FixedInputNodeT<1, CheckString> {
|
||||
|
||||
void AllocateVreg(MaglevVregAllocationState*);
|
||||
void GenerateCode(MaglevAssembler*, const ProcessingState&);
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const;
|
||||
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {}
|
||||
|
||||
private:
|
||||
const CheckType check_type_;
|
||||
|
@ -211,10 +211,6 @@ Handle<Object> SmiConstant::DoReify(LocalIsolate* isolate) {
|
||||
void SmiConstant::DoLoadToRegister(MaglevAssembler* masm, Register reg) {
|
||||
__ Move(reg, Immediate(value()));
|
||||
}
|
||||
void SmiConstant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << value() << ")";
|
||||
}
|
||||
|
||||
void Float64Constant::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
DefineAsConstant(vreg_state, this);
|
||||
@ -228,10 +224,6 @@ void Float64Constant::DoLoadToRegister(MaglevAssembler* masm,
|
||||
DoubleRegister reg) {
|
||||
__ Move(reg, value());
|
||||
}
|
||||
void Float64Constant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << value() << ")";
|
||||
}
|
||||
|
||||
void Constant::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
DefineAsConstant(vreg_state, this);
|
||||
@ -244,10 +236,6 @@ void Constant::DoLoadToRegister(MaglevAssembler* masm, Register reg) {
|
||||
Handle<Object> Constant::DoReify(LocalIsolate* isolate) {
|
||||
return object_.object();
|
||||
}
|
||||
void Constant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << object_ << ")";
|
||||
}
|
||||
|
||||
void DeleteProperty::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
using D = CallInterfaceDescriptorFor<Builtin::kDeleteProperty>::type;
|
||||
@ -267,10 +255,6 @@ void DeleteProperty::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallBuiltin(Builtin::kDeleteProperty);
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void DeleteProperty::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << LanguageMode2String(mode()) << ")";
|
||||
}
|
||||
|
||||
void GeneratorStore::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseAny(context_input());
|
||||
@ -526,10 +510,6 @@ void InitialValue::GenerateCode(MaglevAssembler* masm,
|
||||
const ProcessingState& state) {
|
||||
// No-op, the value is already in the appropriate slot.
|
||||
}
|
||||
void InitialValue::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << source().ToString() << ")";
|
||||
}
|
||||
|
||||
void LoadGlobal::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseFixed(context(), kContextRegister);
|
||||
@ -562,10 +542,6 @@ void LoadGlobal::GenerateCode(MaglevAssembler* masm,
|
||||
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void LoadGlobal::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name() << ")";
|
||||
}
|
||||
|
||||
void StoreGlobal::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
using D = CallInterfaceDescriptorFor<Builtin::kStoreGlobalIC>::type;
|
||||
@ -586,10 +562,6 @@ void StoreGlobal::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallBuiltin(Builtin::kStoreGlobalIC);
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void StoreGlobal::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name() << ")";
|
||||
}
|
||||
|
||||
void RegisterInput::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
DefineAsFixed(vreg_state, this, input());
|
||||
@ -598,10 +570,6 @@ void RegisterInput::GenerateCode(MaglevAssembler* masm,
|
||||
const ProcessingState& state) {
|
||||
// Nothing to be done, the value is already in the register.
|
||||
}
|
||||
void RegisterInput::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << input() << ")";
|
||||
}
|
||||
|
||||
void RootConstant::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
DefineAsConstant(vreg_state, this);
|
||||
@ -614,10 +582,6 @@ void RootConstant::DoLoadToRegister(MaglevAssembler* masm, Register reg) {
|
||||
Handle<Object> RootConstant::DoReify(LocalIsolate* isolate) {
|
||||
return isolate->root_handle(index());
|
||||
}
|
||||
void RootConstant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << RootsTable::name(index()) << ")";
|
||||
}
|
||||
|
||||
void CreateEmptyArrayLiteral::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -760,10 +724,6 @@ void CreateFunctionContext::GenerateCode(MaglevAssembler* masm,
|
||||
}
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void CreateFunctionContext::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *scope_info().object() << ", " << slot_count() << ")";
|
||||
}
|
||||
|
||||
void FastCreateClosure::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
using D = CallInterfaceDescriptorFor<Builtin::kFastNewClosure>::type;
|
||||
@ -782,11 +742,6 @@ void FastCreateClosure::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallBuiltin(Builtin::kFastNewClosure);
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void FastCreateClosure::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *shared_function_info().object() << ", "
|
||||
<< feedback_cell().object() << ")";
|
||||
}
|
||||
|
||||
void CreateClosure::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseFixed(context(), kContextRegister);
|
||||
@ -800,15 +755,6 @@ void CreateClosure::GenerateCode(MaglevAssembler* masm,
|
||||
__ Push(feedback_cell().object());
|
||||
__ CallRuntime(function_id);
|
||||
}
|
||||
void CreateClosure::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *shared_function_info().object() << ", "
|
||||
<< feedback_cell().object();
|
||||
if (pretenured()) {
|
||||
os << " [pretenured]";
|
||||
}
|
||||
os << ")";
|
||||
}
|
||||
|
||||
void CreateRegExpLiteral::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
DefineAsFixed(vreg_state, this, kReturnRegister0);
|
||||
@ -848,10 +794,6 @@ void Abort::GenerateCode(MaglevAssembler* masm, const ProcessingState& state) {
|
||||
__ CallRuntime(Runtime::kAbort, 1);
|
||||
__ Trap();
|
||||
}
|
||||
void Abort::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << GetAbortReason(reason()) << ")";
|
||||
}
|
||||
|
||||
namespace {
|
||||
Condition ToCondition(AssertCondition cond) {
|
||||
@ -889,10 +831,6 @@ void AssertInt32::GenerateCode(MaglevAssembler* masm,
|
||||
__ cmpq(ToRegister(left_input()), ToRegister(right_input()));
|
||||
__ Check(ToCondition(condition_), reason_);
|
||||
}
|
||||
void AssertInt32::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << condition_ << ")";
|
||||
}
|
||||
|
||||
bool AnyMapIsHeapNumber(const ZoneHandleSet<Map>& maps) {
|
||||
return std::any_of(maps.begin(), maps.end(),
|
||||
@ -940,18 +878,7 @@ void CheckMaps::GenerateCode(MaglevAssembler* masm,
|
||||
__ EmitEagerDeoptIf(not_equal, DeoptimizeReason::kWrongMap, this);
|
||||
__ bind(&done);
|
||||
}
|
||||
void CheckMaps::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(";
|
||||
size_t map_count = maps().size();
|
||||
if (map_count > 0) {
|
||||
for (size_t i = 0; i < map_count - 1; ++i) {
|
||||
os << maps().at(i) << ", ";
|
||||
}
|
||||
os << maps().at(map_count - 1);
|
||||
}
|
||||
os << ")";
|
||||
}
|
||||
|
||||
void CheckValue::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(target_input());
|
||||
}
|
||||
@ -962,10 +889,7 @@ void CheckValue::GenerateCode(MaglevAssembler* masm,
|
||||
__ Cmp(target, value().object());
|
||||
__ EmitEagerDeoptIf(not_equal, DeoptimizeReason::kWrongValue, this);
|
||||
}
|
||||
void CheckValue::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *value().object() << ")";
|
||||
}
|
||||
|
||||
void CheckDynamicValue::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(first_input());
|
||||
UseRegister(second_input());
|
||||
@ -978,9 +902,6 @@ void CheckDynamicValue::GenerateCode(MaglevAssembler* masm,
|
||||
__ cmpl(first, second);
|
||||
__ EmitEagerDeoptIf(not_equal, DeoptimizeReason::kWrongValue, this);
|
||||
}
|
||||
void CheckDynamicValue::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
}
|
||||
|
||||
void CheckSmi::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(receiver_input());
|
||||
@ -992,8 +913,6 @@ void CheckSmi::GenerateCode(MaglevAssembler* masm,
|
||||
__ EmitEagerDeoptIf(NegateCondition(is_smi), DeoptimizeReason::kNotASmi,
|
||||
this);
|
||||
}
|
||||
void CheckSmi::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {}
|
||||
|
||||
void CheckNumber::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(receiver_input());
|
||||
@ -1027,8 +946,7 @@ void CheckHeapObject::GenerateCode(MaglevAssembler* masm,
|
||||
Condition is_smi = __ CheckSmi(object);
|
||||
__ EmitEagerDeoptIf(is_smi, DeoptimizeReason::kSmi, this);
|
||||
}
|
||||
void CheckHeapObject::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {}
|
||||
|
||||
void CheckSymbol::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(receiver_input());
|
||||
}
|
||||
@ -1045,8 +963,6 @@ void CheckSymbol::GenerateCode(MaglevAssembler* masm,
|
||||
__ CmpInstanceType(kScratchRegister, SYMBOL_TYPE);
|
||||
__ EmitEagerDeoptIf(not_equal, DeoptimizeReason::kNotASymbol, this);
|
||||
}
|
||||
void CheckSymbol::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {}
|
||||
|
||||
void CheckInstanceType::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(receiver_input());
|
||||
@ -1064,10 +980,6 @@ void CheckInstanceType::GenerateCode(MaglevAssembler* masm,
|
||||
__ CmpInstanceType(kScratchRegister, instance_type());
|
||||
__ EmitEagerDeoptIf(not_equal, DeoptimizeReason::kWrongInstanceType, this);
|
||||
}
|
||||
void CheckInstanceType::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << instance_type() << ")";
|
||||
}
|
||||
|
||||
void CheckString::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(receiver_input());
|
||||
@ -1086,8 +998,6 @@ void CheckString::GenerateCode(MaglevAssembler* masm,
|
||||
LAST_STRING_TYPE);
|
||||
__ EmitEagerDeoptIf(above, DeoptimizeReason::kNotAString, this);
|
||||
}
|
||||
void CheckString::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {}
|
||||
|
||||
void CheckMapsWithMigration::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -1208,18 +1118,6 @@ void CheckMapsWithMigration::GenerateCode(MaglevAssembler* masm,
|
||||
|
||||
__ bind(*done);
|
||||
}
|
||||
void CheckMapsWithMigration::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(";
|
||||
size_t map_count = maps().size();
|
||||
if (map_count > 0) {
|
||||
for (size_t i = 0; i < map_count - 1; ++i) {
|
||||
os << maps().at(i) << ", ";
|
||||
}
|
||||
os << maps().at(map_count - 1);
|
||||
}
|
||||
os << ")";
|
||||
}
|
||||
|
||||
void CheckJSArrayBounds::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(receiver_input());
|
||||
@ -1362,10 +1260,6 @@ void CheckInt32Condition::GenerateCode(MaglevAssembler* masm,
|
||||
__ cmpq(ToRegister(left_input()), ToRegister(right_input()));
|
||||
__ EmitEagerDeoptIf(NegateCondition(ToCondition(condition_)), reason_, this);
|
||||
}
|
||||
void CheckInt32Condition::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << condition_ << ")";
|
||||
}
|
||||
|
||||
void DebugBreak::AllocateVreg(MaglevVregAllocationState* vreg_state) {}
|
||||
void DebugBreak::GenerateCode(MaglevAssembler* masm,
|
||||
@ -1567,10 +1461,6 @@ void LoadTaggedField::GenerateCode(MaglevAssembler* masm,
|
||||
__ AssertNotSmi(object);
|
||||
__ DecompressAnyTagged(ToRegister(result()), FieldOperand(object, offset()));
|
||||
}
|
||||
void LoadTaggedField::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(0x" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void LoadDoubleField::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(object_input());
|
||||
@ -1587,10 +1477,6 @@ void LoadDoubleField::GenerateCode(MaglevAssembler* masm,
|
||||
__ Movsd(ToDoubleRegister(result()),
|
||||
FieldOperand(tmp, HeapNumber::kValueOffset));
|
||||
}
|
||||
void LoadDoubleField::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(0x" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void LoadTaggedElement::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(object_input());
|
||||
@ -2012,10 +1898,7 @@ void StoreDoubleField::GenerateCode(MaglevAssembler* masm,
|
||||
__ AssertNotSmi(tmp);
|
||||
__ Movsd(FieldOperand(tmp, HeapNumber::kValueOffset), value);
|
||||
}
|
||||
void StoreDoubleField::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void StoreTaggedFieldNoWriteBarrier::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(object_input());
|
||||
@ -2029,10 +1912,6 @@ void StoreTaggedFieldNoWriteBarrier::GenerateCode(
|
||||
__ AssertNotSmi(object);
|
||||
__ StoreTaggedField(FieldOperand(object, offset()), value);
|
||||
}
|
||||
void StoreTaggedFieldNoWriteBarrier::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void StoreMap::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseFixed(object_input(), WriteBarrierDescriptor::ObjectRegister());
|
||||
@ -2087,10 +1966,6 @@ void StoreMap::GenerateCode(MaglevAssembler* masm,
|
||||
&deferred_write_barrier->deferred_code_label);
|
||||
__ bind(*done);
|
||||
}
|
||||
void StoreMap::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << *map_.object() << ")";
|
||||
}
|
||||
|
||||
void StoreTaggedFieldWithWriteBarrier::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -2146,10 +2021,6 @@ void StoreTaggedFieldWithWriteBarrier::GenerateCode(
|
||||
&deferred_write_barrier->deferred_code_label);
|
||||
__ bind(*done);
|
||||
}
|
||||
void StoreTaggedFieldWithWriteBarrier::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << std::hex << offset() << std::dec << ")";
|
||||
}
|
||||
|
||||
void LoadNamedGeneric::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
using D = LoadWithVectorDescriptor;
|
||||
@ -2169,10 +2040,6 @@ void LoadNamedGeneric::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallBuiltin(Builtin::kLoadIC);
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void LoadNamedGeneric::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name_ << ")";
|
||||
}
|
||||
|
||||
void LoadNamedFromSuperGeneric::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -2197,10 +2064,6 @@ void LoadNamedFromSuperGeneric::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallBuiltin(Builtin::kLoadSuperIC);
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void LoadNamedFromSuperGeneric::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name_ << ")";
|
||||
}
|
||||
|
||||
void SetNamedGeneric::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
using D = CallInterfaceDescriptorFor<Builtin::kStoreIC>::type;
|
||||
@ -2222,10 +2085,6 @@ void SetNamedGeneric::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallBuiltin(Builtin::kStoreIC);
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void SetNamedGeneric::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name_ << ")";
|
||||
}
|
||||
|
||||
void StringLength::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(object_input());
|
||||
@ -2294,10 +2153,6 @@ void DefineNamedOwnGeneric::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallBuiltin(Builtin::kDefineNamedOwnIC);
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void DefineNamedOwnGeneric::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << name_ << ")";
|
||||
}
|
||||
|
||||
void SetKeyedGeneric::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
using D = CallInterfaceDescriptorFor<Builtin::kKeyedStoreIC>::type;
|
||||
@ -2424,10 +2279,7 @@ void GapMove::GenerateCode(MaglevAssembler* masm,
|
||||
}
|
||||
}
|
||||
}
|
||||
void GapMove::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << source() << " → " << target() << ")";
|
||||
}
|
||||
|
||||
void ConstantGapMove::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UNREACHABLE();
|
||||
}
|
||||
@ -2461,12 +2313,6 @@ void ConstantGapMove::GenerateCode(MaglevAssembler* masm,
|
||||
UNREACHABLE();
|
||||
}
|
||||
}
|
||||
void ConstantGapMove::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(";
|
||||
graph_labeller->PrintNodeLabel(os, node_);
|
||||
os << " → " << target() << ")";
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
@ -3126,14 +2972,6 @@ void Float64Ieee754Unary::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallCFunction(ieee_function_, 1);
|
||||
}
|
||||
|
||||
void Float64Ieee754Unary::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "("
|
||||
<< ExternalReferenceTable::NameOfIsolateIndependentAddress(
|
||||
ieee_function_.address())
|
||||
<< ")";
|
||||
}
|
||||
|
||||
template <class Derived, Operation kOperation>
|
||||
void Float64CompareNode<Derived, kOperation>::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -3300,10 +3138,6 @@ void Int32Constant::DoLoadToRegister(MaglevAssembler* masm, Register reg) {
|
||||
Handle<Object> Int32Constant::DoReify(LocalIsolate* isolate) {
|
||||
return isolate->factory()->NewNumber<AllocationType::kOld>(value());
|
||||
}
|
||||
void Int32Constant::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << value() << ")";
|
||||
}
|
||||
|
||||
void Int32ToNumber::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(input());
|
||||
@ -3966,10 +3800,6 @@ void Phi::AllocateVregInPostProcess(MaglevVregAllocationState* vreg_state) {
|
||||
}
|
||||
}
|
||||
void Phi::GenerateCode(MaglevAssembler* masm, const ProcessingState& state) {}
|
||||
void Phi::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << owner().ToString() << ")";
|
||||
}
|
||||
|
||||
void Call::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
// TODO(leszeks): Consider splitting Call into with- and without-feedback
|
||||
@ -4065,19 +3895,6 @@ void Call::GenerateCode(MaglevAssembler* masm, const ProcessingState& state) {
|
||||
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void Call::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << receiver_mode_ << ", ";
|
||||
switch (target_type_) {
|
||||
case TargetType::kJSFunction:
|
||||
os << "JSFunction";
|
||||
break;
|
||||
case TargetType::kAny:
|
||||
os << "Any";
|
||||
break;
|
||||
}
|
||||
os << ")";
|
||||
}
|
||||
|
||||
void CallKnownJSFunction::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseAny(receiver());
|
||||
@ -4118,10 +3935,6 @@ void CallKnownJSFunction::GenerateCode(MaglevAssembler* masm,
|
||||
}
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void CallKnownJSFunction::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << function_.object() << ")";
|
||||
}
|
||||
|
||||
void Construct::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
using D = Construct_WithFeedbackDescriptor;
|
||||
@ -4257,10 +4070,6 @@ void CallBuiltin::GenerateCode(MaglevAssembler* masm,
|
||||
__ CallBuiltin(builtin());
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void CallBuiltin::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << Builtins::name(builtin()) << ")";
|
||||
}
|
||||
|
||||
void CallRuntime::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseFixed(context(), kContextRegister);
|
||||
@ -4279,10 +4088,6 @@ void CallRuntime::GenerateCode(MaglevAssembler* masm,
|
||||
// TODO(victorgomes): Not sure if this is needed for all runtime calls.
|
||||
masm->DefineExceptionHandlerAndLazyDeoptPoint(this);
|
||||
}
|
||||
void CallRuntime::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << Runtime::FunctionForId(function_id())->name << ")";
|
||||
}
|
||||
|
||||
void CallWithSpread::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
if (feedback_.IsValid()) {
|
||||
@ -4466,10 +4271,6 @@ void IncreaseInterruptBudget::GenerateCode(MaglevAssembler* masm,
|
||||
__ addl(FieldOperand(scratch, FeedbackCell::kInterruptBudgetOffset),
|
||||
Immediate(amount()));
|
||||
}
|
||||
void IncreaseInterruptBudget::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << amount() << ")";
|
||||
}
|
||||
|
||||
void ReduceInterruptBudget::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -4503,10 +4304,6 @@ void ReduceInterruptBudget::GenerateCode(MaglevAssembler* masm,
|
||||
done, this);
|
||||
__ bind(*done);
|
||||
}
|
||||
void ReduceInterruptBudget::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << amount() << ")";
|
||||
}
|
||||
|
||||
void ThrowReferenceErrorIfHole::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -4649,10 +4446,6 @@ void Deopt::AllocateVreg(MaglevVregAllocationState* vreg_state) {}
|
||||
void Deopt::GenerateCode(MaglevAssembler* masm, const ProcessingState& state) {
|
||||
__ EmitEagerDeopt(this, reason());
|
||||
}
|
||||
void Deopt::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << DeoptimizeReasonToString(reason()) << ")";
|
||||
}
|
||||
|
||||
void Switch::AllocateVreg(MaglevVregAllocationState* vreg_state) {
|
||||
UseRegister(value());
|
||||
@ -4687,11 +4480,6 @@ void JumpToInlined::GenerateCode(MaglevAssembler* masm,
|
||||
__ jmp(target()->label());
|
||||
}
|
||||
}
|
||||
void JumpToInlined::PrintParams(std::ostream& os,
|
||||
MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << Brief(*unit()->shared_function_info().object()) << ")";
|
||||
}
|
||||
|
||||
void JumpFromInlined::AllocateVreg(MaglevVregAllocationState* vreg_state) {}
|
||||
void JumpFromInlined::GenerateCode(MaglevAssembler* masm,
|
||||
const ProcessingState& state) {
|
||||
@ -4821,10 +4609,6 @@ void BranchIfRootConstant::GenerateCode(MaglevAssembler* masm,
|
||||
__ CompareRoot(ToRegister(condition_input()), root_index());
|
||||
__ Branch(equal, if_true(), if_false(), state.next_block());
|
||||
}
|
||||
void BranchIfRootConstant::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << RootsTable::name(root_index_) << ")";
|
||||
}
|
||||
|
||||
void BranchIfUndefinedOrNull::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -4865,10 +4649,6 @@ void BranchIfInt32Compare::GenerateCode(MaglevAssembler* masm,
|
||||
__ Branch(ConditionFor(operation_), if_true(), if_false(),
|
||||
state.next_block());
|
||||
}
|
||||
void BranchIfFloat64Compare::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << operation_ << ")";
|
||||
}
|
||||
|
||||
void BranchIfFloat64Compare::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -4884,10 +4664,6 @@ void BranchIfFloat64Compare::GenerateCode(MaglevAssembler* masm,
|
||||
__ Branch(ConditionForFloat64(operation_), if_true(), if_false(),
|
||||
state.next_block());
|
||||
}
|
||||
void BranchIfInt32Compare::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << operation_ << ")";
|
||||
}
|
||||
|
||||
void BranchIfReferenceCompare::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
@ -4902,10 +4678,6 @@ void BranchIfReferenceCompare::GenerateCode(MaglevAssembler* masm,
|
||||
__ Branch(ConditionFor(operation_), if_true(), if_false(),
|
||||
state.next_block());
|
||||
}
|
||||
void BranchIfReferenceCompare::PrintParams(
|
||||
std::ostream& os, MaglevGraphLabeller* graph_labeller) const {
|
||||
os << "(" << operation_ << ")";
|
||||
}
|
||||
|
||||
void BranchIfToBooleanTrue::AllocateVreg(
|
||||
MaglevVregAllocationState* vreg_state) {
|
||||
|
Loading…
Reference in New Issue
Block a user