Commit 16a23e9a authored by Santiago Aboy Solanes's avatar Santiago Aboy Solanes Committed by Commit Bot

[csa][cleanup] Template TaggedToParameter

Some non-templated uses remain until further TNodification.

Bug: v8:9708, v8:6949
Change-Id: Ica841f95a6ddfbdea78589f9db47c5b4126497f5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2212263
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67943}
parent 1443d07b
......@@ -566,6 +566,16 @@ TNode<BoolT> CodeStubAssembler::IsValidSmiIndex(TNode<Smi> smi) {
return Int32TrueConstant();
}
template <>
TNode<Smi> CodeStubAssembler::TaggedToParameter(TNode<Smi> value) {
return value;
}
template <>
TNode<IntPtrT> CodeStubAssembler::TaggedToParameter(TNode<Smi> value) {
return SmiUntag(value);
}
TNode<IntPtrT> CodeStubAssembler::TaggedIndexToIntPtr(
TNode<TaggedIndex> value) {
return Signed(WordSarShiftOutZeros(BitcastTaggedToWordForTagAndSmiBits(value),
......@@ -2860,12 +2870,11 @@ void CodeStubAssembler::PossiblyGrowElementsCapacity(
Label* bailout) {
ParameterMode mode = OptimalParameterMode();
Label fits(this, var_elements);
Node* capacity =
TaggedToParameter(LoadFixedArrayBaseLength(var_elements->value()), mode);
// length and growth nodes are already in a ParameterMode appropriate
// representation.
TNode<BInt> capacity =
TaggedToParameter<BInt>(LoadFixedArrayBaseLength(var_elements->value()));
TNode<BInt> new_length = IntPtrOrSmiAdd(growth, length);
GotoIfNot(IntPtrOrSmiGreaterThan(new_length, capacity, mode), &fits);
GotoIfNot(IntPtrOrSmiGreaterThan(new_length, capacity), &fits);
TNode<BInt> new_capacity = CalculateNewElementsCapacity(new_length);
*var_elements = GrowElementsCapacity(array, var_elements->value(), kind, kind,
capacity, new_capacity, mode, bailout);
......@@ -3742,7 +3751,7 @@ TNode<JSArray> CodeStubAssembler::CloneFastJSArray(
// Simple extraction that preserves holes.
new_elements =
ExtractFixedArray(LoadElements(array), IntPtrOrSmiConstant(0, mode),
TaggedToParameter(CAST(length), mode), nullptr,
TaggedToParameter<BInt>(CAST(length)), nullptr,
ExtractFixedArrayFlag::kAllFixedArraysDontCopyCOW, mode,
nullptr, var_elements_kind.value());
var_new_elements = new_elements;
......@@ -3760,7 +3769,7 @@ TNode<JSArray> CodeStubAssembler::CloneFastJSArray(
// ExtractFixedArrayFlag::kDontCopyCOW.
new_elements = ExtractFixedArray(
LoadElements(array), IntPtrOrSmiConstant(0, mode),
TaggedToParameter(CAST(length), mode), nullptr,
TaggedToParameter<BInt>(CAST(length)), nullptr,
ExtractFixedArrayFlag::kAllFixedArrays, mode, &var_holes_converted);
var_new_elements = new_elements;
// If the array type didn't change, use the original elements kind.
......@@ -4840,8 +4849,8 @@ TNode<FixedArrayBase> CodeStubAssembler::TryGrowElementsCapacity(
ParameterMode mode = OptimalParameterMode();
return TryGrowElementsCapacity(
object, elements, kind, TaggedToParameter(key, mode),
TaggedToParameter(capacity, mode), mode, bailout);
object, elements, kind, TaggedToParameter<BInt>(key),
TaggedToParameter<BInt>(capacity), mode, bailout);
}
TNode<FixedArrayBase> CodeStubAssembler::TryGrowElementsCapacity(
......
......@@ -387,6 +387,10 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
return UncheckedCast<Smi>(value);
}
template <typename TIndex>
TNode<TIndex> TaggedToParameter(TNode<Smi> value);
// TODO(v8:9708): remove once all uses are ported.
Node* TaggedToParameter(TNode<Smi> value, ParameterMode mode) {
if (mode != SMI_PARAMETERS) return SmiUntag(value);
return value;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment