[CSA][cleanup] Renamed bool rhs_is_smi to rhs_known_smi
functionality is: If rhs_is_smi is true, we are sure that rhs is a Smi. If rhs_is_smi is false, rhs might or not be a Smi. Therefore, rhs_known_smi fits better. Change-Id: Ie6dd0446ef85ba0730189e2012a21c24d1731b74 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796551 Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#63669}
This commit is contained in:
parent
17d2b57700
commit
6376671c9c
@ -15,7 +15,7 @@ using TNode = compiler::TNode<T>;
|
|||||||
TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback(
|
TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> lhs, TNode<Object> rhs,
|
TNode<Context> context, TNode<Object> lhs, TNode<Object> rhs,
|
||||||
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi) {
|
bool rhs_known_smi) {
|
||||||
// Shared entry for floating point addition.
|
// Shared entry for floating point addition.
|
||||||
Label do_fadd(this), if_lhsisnotnumber(this, Label::kDeferred),
|
Label do_fadd(this), if_lhsisnotnumber(this, Label::kDeferred),
|
||||||
check_rhsisoddball(this, Label::kDeferred),
|
check_rhsisoddball(this, Label::kDeferred),
|
||||||
@ -33,14 +33,14 @@ TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback(
|
|||||||
// both Smi and Number operations, so this path should not be marked as
|
// both Smi and Number operations, so this path should not be marked as
|
||||||
// Deferred.
|
// Deferred.
|
||||||
Label if_lhsisnotsmi(this,
|
Label if_lhsisnotsmi(this,
|
||||||
rhs_is_smi ? Label::kDeferred : Label::kNonDeferred);
|
rhs_known_smi ? Label::kDeferred : Label::kNonDeferred);
|
||||||
Branch(TaggedIsNotSmi(lhs), &if_lhsisnotsmi, &if_lhsissmi);
|
Branch(TaggedIsNotSmi(lhs), &if_lhsisnotsmi, &if_lhsissmi);
|
||||||
|
|
||||||
BIND(&if_lhsissmi);
|
BIND(&if_lhsissmi);
|
||||||
{
|
{
|
||||||
Comment("lhs is Smi");
|
Comment("lhs is Smi");
|
||||||
TNode<Smi> lhs_smi = CAST(lhs);
|
TNode<Smi> lhs_smi = CAST(lhs);
|
||||||
if (!rhs_is_smi) {
|
if (!rhs_known_smi) {
|
||||||
// Check if the {rhs} is also a Smi.
|
// Check if the {rhs} is also a Smi.
|
||||||
Label if_rhsissmi(this), if_rhsisnotsmi(this);
|
Label if_rhsissmi(this), if_rhsisnotsmi(this);
|
||||||
Branch(TaggedIsSmi(rhs), &if_rhsissmi, &if_rhsisnotsmi);
|
Branch(TaggedIsSmi(rhs), &if_rhsissmi, &if_rhsisnotsmi);
|
||||||
@ -67,7 +67,7 @@ TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback(
|
|||||||
// as Deferred.
|
// as Deferred.
|
||||||
TNode<Smi> rhs_smi = CAST(rhs);
|
TNode<Smi> rhs_smi = CAST(rhs);
|
||||||
Label if_overflow(this,
|
Label if_overflow(this,
|
||||||
rhs_is_smi ? Label::kDeferred : Label::kNonDeferred);
|
rhs_known_smi ? Label::kDeferred : Label::kNonDeferred);
|
||||||
TNode<Smi> smi_result = TrySmiAdd(lhs_smi, rhs_smi, &if_overflow);
|
TNode<Smi> smi_result = TrySmiAdd(lhs_smi, rhs_smi, &if_overflow);
|
||||||
// Not overflowed.
|
// Not overflowed.
|
||||||
{
|
{
|
||||||
@ -91,7 +91,7 @@ TNode<Object> BinaryOpAssembler::Generate_AddWithFeedback(
|
|||||||
TNode<HeapObject> lhs_heap_object = CAST(lhs);
|
TNode<HeapObject> lhs_heap_object = CAST(lhs);
|
||||||
GotoIfNot(IsHeapNumber(lhs_heap_object), &if_lhsisnotnumber);
|
GotoIfNot(IsHeapNumber(lhs_heap_object), &if_lhsisnotnumber);
|
||||||
|
|
||||||
if (!rhs_is_smi) {
|
if (!rhs_known_smi) {
|
||||||
// Check if the {rhs} is Smi.
|
// Check if the {rhs} is Smi.
|
||||||
Label if_rhsissmi(this), if_rhsisnotsmi(this);
|
Label if_rhsissmi(this), if_rhsisnotsmi(this);
|
||||||
Branch(TaggedIsSmi(rhs), &if_rhsissmi, &if_rhsisnotsmi);
|
Branch(TaggedIsSmi(rhs), &if_rhsissmi, &if_rhsisnotsmi);
|
||||||
@ -235,7 +235,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback(
|
|||||||
TNode<Context> context, TNode<Object> lhs, TNode<Object> rhs,
|
TNode<Context> context, TNode<Object> lhs, TNode<Object> rhs,
|
||||||
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
||||||
const SmiOperation& smiOperation, const FloatOperation& floatOperation,
|
const SmiOperation& smiOperation, const FloatOperation& floatOperation,
|
||||||
Operation op, bool rhs_is_smi) {
|
Operation op, bool rhs_known_smi) {
|
||||||
Label do_float_operation(this), end(this), call_stub(this),
|
Label do_float_operation(this), end(this), call_stub(this),
|
||||||
check_rhsisoddball(this, Label::kDeferred), call_with_any_feedback(this),
|
check_rhsisoddball(this, Label::kDeferred), call_with_any_feedback(this),
|
||||||
if_lhsisnotnumber(this, Label::kDeferred),
|
if_lhsisnotnumber(this, Label::kDeferred),
|
||||||
@ -251,7 +251,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback(
|
|||||||
// operation, we want to fast path both Smi and Number operations, so this
|
// operation, we want to fast path both Smi and Number operations, so this
|
||||||
// path should not be marked as Deferred.
|
// path should not be marked as Deferred.
|
||||||
Label if_lhsisnotsmi(this,
|
Label if_lhsisnotsmi(this,
|
||||||
rhs_is_smi ? Label::kDeferred : Label::kNonDeferred);
|
rhs_known_smi ? Label::kDeferred : Label::kNonDeferred);
|
||||||
Branch(TaggedIsNotSmi(lhs), &if_lhsisnotsmi, &if_lhsissmi);
|
Branch(TaggedIsNotSmi(lhs), &if_lhsisnotsmi, &if_lhsissmi);
|
||||||
|
|
||||||
// Check if the {lhs} is a Smi or a HeapObject.
|
// Check if the {lhs} is a Smi or a HeapObject.
|
||||||
@ -259,7 +259,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback(
|
|||||||
{
|
{
|
||||||
Comment("lhs is Smi");
|
Comment("lhs is Smi");
|
||||||
TNode<Smi> lhs_smi = CAST(lhs);
|
TNode<Smi> lhs_smi = CAST(lhs);
|
||||||
if (!rhs_is_smi) {
|
if (!rhs_known_smi) {
|
||||||
// Check if the {rhs} is also a Smi.
|
// Check if the {rhs} is also a Smi.
|
||||||
Label if_rhsissmi(this), if_rhsisnotsmi(this);
|
Label if_rhsissmi(this), if_rhsisnotsmi(this);
|
||||||
Branch(TaggedIsSmi(rhs), &if_rhsissmi, &if_rhsisnotsmi);
|
Branch(TaggedIsSmi(rhs), &if_rhsissmi, &if_rhsisnotsmi);
|
||||||
@ -293,7 +293,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback(
|
|||||||
TNode<HeapObject> lhs_heap_object = CAST(lhs);
|
TNode<HeapObject> lhs_heap_object = CAST(lhs);
|
||||||
GotoIfNot(IsHeapNumber(lhs_heap_object), &if_lhsisnotnumber);
|
GotoIfNot(IsHeapNumber(lhs_heap_object), &if_lhsisnotnumber);
|
||||||
|
|
||||||
if (!rhs_is_smi) {
|
if (!rhs_known_smi) {
|
||||||
// Check if the {rhs} is a Smi.
|
// Check if the {rhs} is a Smi.
|
||||||
Label if_rhsissmi(this), if_rhsisnotsmi(this);
|
Label if_rhsissmi(this), if_rhsisnotsmi(this);
|
||||||
Branch(TaggedIsSmi(rhs), &if_rhsissmi, &if_rhsisnotsmi);
|
Branch(TaggedIsSmi(rhs), &if_rhsissmi, &if_rhsisnotsmi);
|
||||||
@ -435,7 +435,7 @@ TNode<Object> BinaryOpAssembler::Generate_BinaryOperationWithFeedback(
|
|||||||
TNode<Object> BinaryOpAssembler::Generate_SubtractWithFeedback(
|
TNode<Object> BinaryOpAssembler::Generate_SubtractWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> lhs, TNode<Object> rhs,
|
TNode<Context> context, TNode<Object> lhs, TNode<Object> rhs,
|
||||||
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi) {
|
bool rhs_known_smi) {
|
||||||
auto smiFunction = [=](TNode<Smi> lhs, TNode<Smi> rhs,
|
auto smiFunction = [=](TNode<Smi> lhs, TNode<Smi> rhs,
|
||||||
TVariable<Smi>* var_type_feedback) {
|
TVariable<Smi>* var_type_feedback) {
|
||||||
Label end(this);
|
Label end(this);
|
||||||
@ -444,7 +444,7 @@ TNode<Object> BinaryOpAssembler::Generate_SubtractWithFeedback(
|
|||||||
// operation. For the normal Sub operation, we want to fast path both
|
// operation. For the normal Sub operation, we want to fast path both
|
||||||
// Smi and Number operations, so this path should not be marked as Deferred.
|
// Smi and Number operations, so this path should not be marked as Deferred.
|
||||||
Label if_overflow(this,
|
Label if_overflow(this,
|
||||||
rhs_is_smi ? Label::kDeferred : Label::kNonDeferred);
|
rhs_known_smi ? Label::kDeferred : Label::kNonDeferred);
|
||||||
var_result = TrySmiSub(lhs, rhs, &if_overflow);
|
var_result = TrySmiSub(lhs, rhs, &if_overflow);
|
||||||
*var_type_feedback = SmiConstant(BinaryOperationFeedback::kSignedSmall);
|
*var_type_feedback = SmiConstant(BinaryOperationFeedback::kSignedSmall);
|
||||||
Goto(&end);
|
Goto(&end);
|
||||||
@ -465,13 +465,13 @@ TNode<Object> BinaryOpAssembler::Generate_SubtractWithFeedback(
|
|||||||
};
|
};
|
||||||
return Generate_BinaryOperationWithFeedback(
|
return Generate_BinaryOperationWithFeedback(
|
||||||
context, lhs, rhs, slot_id, maybe_feedback_vector, smiFunction,
|
context, lhs, rhs, slot_id, maybe_feedback_vector, smiFunction,
|
||||||
floatFunction, Operation::kSubtract, rhs_is_smi);
|
floatFunction, Operation::kSubtract, rhs_known_smi);
|
||||||
}
|
}
|
||||||
|
|
||||||
TNode<Object> BinaryOpAssembler::Generate_MultiplyWithFeedback(
|
TNode<Object> BinaryOpAssembler::Generate_MultiplyWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> lhs, TNode<Object> rhs,
|
TNode<Context> context, TNode<Object> lhs, TNode<Object> rhs,
|
||||||
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi) {
|
bool rhs_known_smi) {
|
||||||
auto smiFunction = [=](TNode<Smi> lhs, TNode<Smi> rhs,
|
auto smiFunction = [=](TNode<Smi> lhs, TNode<Smi> rhs,
|
||||||
TVariable<Smi>* var_type_feedback) {
|
TVariable<Smi>* var_type_feedback) {
|
||||||
TNode<Number> result = SmiMul(lhs, rhs);
|
TNode<Number> result = SmiMul(lhs, rhs);
|
||||||
@ -485,20 +485,20 @@ TNode<Object> BinaryOpAssembler::Generate_MultiplyWithFeedback(
|
|||||||
};
|
};
|
||||||
return Generate_BinaryOperationWithFeedback(
|
return Generate_BinaryOperationWithFeedback(
|
||||||
context, lhs, rhs, slot_id, maybe_feedback_vector, smiFunction,
|
context, lhs, rhs, slot_id, maybe_feedback_vector, smiFunction,
|
||||||
floatFunction, Operation::kMultiply, rhs_is_smi);
|
floatFunction, Operation::kMultiply, rhs_known_smi);
|
||||||
}
|
}
|
||||||
|
|
||||||
TNode<Object> BinaryOpAssembler::Generate_DivideWithFeedback(
|
TNode<Object> BinaryOpAssembler::Generate_DivideWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
|
TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
|
||||||
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi) {
|
bool rhs_known_smi) {
|
||||||
auto smiFunction = [=](TNode<Smi> lhs, TNode<Smi> rhs,
|
auto smiFunction = [=](TNode<Smi> lhs, TNode<Smi> rhs,
|
||||||
TVariable<Smi>* var_type_feedback) {
|
TVariable<Smi>* var_type_feedback) {
|
||||||
TVARIABLE(Object, var_result);
|
TVARIABLE(Object, var_result);
|
||||||
// If rhs is known to be an Smi (for DivSmi) we want to fast path Smi
|
// If rhs is known to be an Smi (for DivSmi) we want to fast path Smi
|
||||||
// operation. For the normal Div operation, we want to fast path both
|
// operation. For the normal Div operation, we want to fast path both
|
||||||
// Smi and Number operations, so this path should not be marked as Deferred.
|
// Smi and Number operations, so this path should not be marked as Deferred.
|
||||||
Label bailout(this, rhs_is_smi ? Label::kDeferred : Label::kNonDeferred),
|
Label bailout(this, rhs_known_smi ? Label::kDeferred : Label::kNonDeferred),
|
||||||
end(this);
|
end(this);
|
||||||
var_result = TrySmiDiv(lhs, rhs, &bailout);
|
var_result = TrySmiDiv(lhs, rhs, &bailout);
|
||||||
*var_type_feedback = SmiConstant(BinaryOperationFeedback::kSignedSmall);
|
*var_type_feedback = SmiConstant(BinaryOperationFeedback::kSignedSmall);
|
||||||
@ -521,13 +521,13 @@ TNode<Object> BinaryOpAssembler::Generate_DivideWithFeedback(
|
|||||||
};
|
};
|
||||||
return Generate_BinaryOperationWithFeedback(
|
return Generate_BinaryOperationWithFeedback(
|
||||||
context, dividend, divisor, slot_id, maybe_feedback_vector, smiFunction,
|
context, dividend, divisor, slot_id, maybe_feedback_vector, smiFunction,
|
||||||
floatFunction, Operation::kDivide, rhs_is_smi);
|
floatFunction, Operation::kDivide, rhs_known_smi);
|
||||||
}
|
}
|
||||||
|
|
||||||
TNode<Object> BinaryOpAssembler::Generate_ModulusWithFeedback(
|
TNode<Object> BinaryOpAssembler::Generate_ModulusWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
|
TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
|
||||||
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi) {
|
bool rhs_known_smi) {
|
||||||
auto smiFunction = [=](TNode<Smi> lhs, TNode<Smi> rhs,
|
auto smiFunction = [=](TNode<Smi> lhs, TNode<Smi> rhs,
|
||||||
TVariable<Smi>* var_type_feedback) {
|
TVariable<Smi>* var_type_feedback) {
|
||||||
TNode<Number> result = SmiMod(lhs, rhs);
|
TNode<Number> result = SmiMod(lhs, rhs);
|
||||||
@ -541,13 +541,13 @@ TNode<Object> BinaryOpAssembler::Generate_ModulusWithFeedback(
|
|||||||
};
|
};
|
||||||
return Generate_BinaryOperationWithFeedback(
|
return Generate_BinaryOperationWithFeedback(
|
||||||
context, dividend, divisor, slot_id, maybe_feedback_vector, smiFunction,
|
context, dividend, divisor, slot_id, maybe_feedback_vector, smiFunction,
|
||||||
floatFunction, Operation::kModulus, rhs_is_smi);
|
floatFunction, Operation::kModulus, rhs_known_smi);
|
||||||
}
|
}
|
||||||
|
|
||||||
TNode<Object> BinaryOpAssembler::Generate_ExponentiateWithFeedback(
|
TNode<Object> BinaryOpAssembler::Generate_ExponentiateWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> base, TNode<Object> exponent,
|
TNode<Context> context, TNode<Object> base, TNode<Object> exponent,
|
||||||
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot_id, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi) {
|
bool rhs_known_smi) {
|
||||||
// We currently don't optimize exponentiation based on feedback.
|
// We currently don't optimize exponentiation based on feedback.
|
||||||
TNode<Smi> dummy_feedback = SmiConstant(BinaryOperationFeedback::kAny);
|
TNode<Smi> dummy_feedback = SmiConstant(BinaryOperationFeedback::kAny);
|
||||||
UpdateFeedback(dummy_feedback, maybe_feedback_vector, slot_id);
|
UpdateFeedback(dummy_feedback, maybe_feedback_vector, slot_id);
|
||||||
|
@ -23,32 +23,32 @@ class BinaryOpAssembler : public CodeStubAssembler {
|
|||||||
TNode<Object> Generate_AddWithFeedback(
|
TNode<Object> Generate_AddWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
||||||
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi);
|
bool rhs_known_smi);
|
||||||
|
|
||||||
TNode<Object> Generate_SubtractWithFeedback(
|
TNode<Object> Generate_SubtractWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
||||||
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi);
|
bool rhs_known_smi);
|
||||||
|
|
||||||
TNode<Object> Generate_MultiplyWithFeedback(
|
TNode<Object> Generate_MultiplyWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
||||||
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi);
|
bool rhs_known_smi);
|
||||||
|
|
||||||
TNode<Object> Generate_DivideWithFeedback(
|
TNode<Object> Generate_DivideWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
|
TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
|
||||||
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi);
|
bool rhs_known_smi);
|
||||||
|
|
||||||
TNode<Object> Generate_ModulusWithFeedback(
|
TNode<Object> Generate_ModulusWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
|
TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
|
||||||
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi);
|
bool rhs_known_smi);
|
||||||
|
|
||||||
TNode<Object> Generate_ExponentiateWithFeedback(
|
TNode<Object> Generate_ExponentiateWithFeedback(
|
||||||
TNode<Context> context, TNode<Object> base, TNode<Object> exponent,
|
TNode<Context> context, TNode<Object> base, TNode<Object> exponent,
|
||||||
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi);
|
bool rhs_known_smi);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
using SmiOperation =
|
using SmiOperation =
|
||||||
@ -60,7 +60,7 @@ class BinaryOpAssembler : public CodeStubAssembler {
|
|||||||
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
||||||
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
||||||
const SmiOperation& smiOperation, const FloatOperation& floatOperation,
|
const SmiOperation& smiOperation, const FloatOperation& floatOperation,
|
||||||
Operation op, bool rhs_is_smi);
|
Operation op, bool rhs_known_smi);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace internal
|
} // namespace internal
|
||||||
|
@ -835,7 +835,7 @@ class InterpreterBinaryOpAssembler : public InterpreterAssembler {
|
|||||||
using BinaryOpGenerator = TNode<Object> (BinaryOpAssembler::*)(
|
using BinaryOpGenerator = TNode<Object> (BinaryOpAssembler::*)(
|
||||||
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
TNode<Context> context, TNode<Object> left, TNode<Object> right,
|
||||||
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
|
||||||
bool rhs_is_smi);
|
bool rhs_known_smi);
|
||||||
|
|
||||||
void BinaryOpWithFeedback(BinaryOpGenerator generator) {
|
void BinaryOpWithFeedback(BinaryOpGenerator generator) {
|
||||||
TNode<Object> lhs = LoadRegisterAtOperandIndex(0);
|
TNode<Object> lhs = LoadRegisterAtOperandIndex(0);
|
||||||
|
Loading…
Reference in New Issue
Block a user