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) { ...@@ -566,6 +566,16 @@ TNode<BoolT> CodeStubAssembler::IsValidSmiIndex(TNode<Smi> smi) {
return Int32TrueConstant(); 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<IntPtrT> CodeStubAssembler::TaggedIndexToIntPtr(
TNode<TaggedIndex> value) { TNode<TaggedIndex> value) {
return Signed(WordSarShiftOutZeros(BitcastTaggedToWordForTagAndSmiBits(value), return Signed(WordSarShiftOutZeros(BitcastTaggedToWordForTagAndSmiBits(value),
...@@ -2860,12 +2870,11 @@ void CodeStubAssembler::PossiblyGrowElementsCapacity( ...@@ -2860,12 +2870,11 @@ void CodeStubAssembler::PossiblyGrowElementsCapacity(
Label* bailout) { Label* bailout) {
ParameterMode mode = OptimalParameterMode(); ParameterMode mode = OptimalParameterMode();
Label fits(this, var_elements); Label fits(this, var_elements);
Node* capacity = TNode<BInt> capacity =
TaggedToParameter(LoadFixedArrayBaseLength(var_elements->value()), mode); TaggedToParameter<BInt>(LoadFixedArrayBaseLength(var_elements->value()));
// length and growth nodes are already in a ParameterMode appropriate
// representation.
TNode<BInt> new_length = IntPtrOrSmiAdd(growth, length); 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); TNode<BInt> new_capacity = CalculateNewElementsCapacity(new_length);
*var_elements = GrowElementsCapacity(array, var_elements->value(), kind, kind, *var_elements = GrowElementsCapacity(array, var_elements->value(), kind, kind,
capacity, new_capacity, mode, bailout); capacity, new_capacity, mode, bailout);
...@@ -3742,7 +3751,7 @@ TNode<JSArray> CodeStubAssembler::CloneFastJSArray( ...@@ -3742,7 +3751,7 @@ TNode<JSArray> CodeStubAssembler::CloneFastJSArray(
// Simple extraction that preserves holes. // Simple extraction that preserves holes.
new_elements = new_elements =
ExtractFixedArray(LoadElements(array), IntPtrOrSmiConstant(0, mode), ExtractFixedArray(LoadElements(array), IntPtrOrSmiConstant(0, mode),
TaggedToParameter(CAST(length), mode), nullptr, TaggedToParameter<BInt>(CAST(length)), nullptr,
ExtractFixedArrayFlag::kAllFixedArraysDontCopyCOW, mode, ExtractFixedArrayFlag::kAllFixedArraysDontCopyCOW, mode,
nullptr, var_elements_kind.value()); nullptr, var_elements_kind.value());
var_new_elements = new_elements; var_new_elements = new_elements;
...@@ -3760,7 +3769,7 @@ TNode<JSArray> CodeStubAssembler::CloneFastJSArray( ...@@ -3760,7 +3769,7 @@ TNode<JSArray> CodeStubAssembler::CloneFastJSArray(
// ExtractFixedArrayFlag::kDontCopyCOW. // ExtractFixedArrayFlag::kDontCopyCOW.
new_elements = ExtractFixedArray( new_elements = ExtractFixedArray(
LoadElements(array), IntPtrOrSmiConstant(0, mode), LoadElements(array), IntPtrOrSmiConstant(0, mode),
TaggedToParameter(CAST(length), mode), nullptr, TaggedToParameter<BInt>(CAST(length)), nullptr,
ExtractFixedArrayFlag::kAllFixedArrays, mode, &var_holes_converted); ExtractFixedArrayFlag::kAllFixedArrays, mode, &var_holes_converted);
var_new_elements = new_elements; var_new_elements = new_elements;
// If the array type didn't change, use the original elements kind. // If the array type didn't change, use the original elements kind.
...@@ -4840,8 +4849,8 @@ TNode<FixedArrayBase> CodeStubAssembler::TryGrowElementsCapacity( ...@@ -4840,8 +4849,8 @@ TNode<FixedArrayBase> CodeStubAssembler::TryGrowElementsCapacity(
ParameterMode mode = OptimalParameterMode(); ParameterMode mode = OptimalParameterMode();
return TryGrowElementsCapacity( return TryGrowElementsCapacity(
object, elements, kind, TaggedToParameter(key, mode), object, elements, kind, TaggedToParameter<BInt>(key),
TaggedToParameter(capacity, mode), mode, bailout); TaggedToParameter<BInt>(capacity), mode, bailout);
} }
TNode<FixedArrayBase> CodeStubAssembler::TryGrowElementsCapacity( TNode<FixedArrayBase> CodeStubAssembler::TryGrowElementsCapacity(
......
...@@ -387,6 +387,10 @@ class V8_EXPORT_PRIVATE CodeStubAssembler ...@@ -387,6 +387,10 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
return UncheckedCast<Smi>(value); 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) { Node* TaggedToParameter(TNode<Smi> value, ParameterMode mode) {
if (mode != SMI_PARAMETERS) return SmiUntag(value); if (mode != SMI_PARAMETERS) return SmiUntag(value);
return 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