[liftoff] Remove kTaggedKind
Since the introduction of actual references, we should either use {kRef} for tagged values or {kSmiKind} for tagged values that are known to be Smis. {kTaggedKind} is misleading as it looks like it would be treated as a tagged references, but it is actually not. R=ahaas@chromium.org Change-Id: Ib74d8365497eeaa9ff9e9bbcbd204233451b498f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4020510 Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#84210}
This commit is contained in:
parent
590db5e6eb
commit
64e597b305
@ -26,7 +26,6 @@ using VarState = LiftoffAssembler::VarState;
|
||||
using ValueKindSig = LiftoffAssembler::ValueKindSig;
|
||||
|
||||
constexpr ValueKind LiftoffAssembler::kPointerKind;
|
||||
constexpr ValueKind LiftoffAssembler::kTaggedKind;
|
||||
constexpr ValueKind LiftoffAssembler::kSmiKind;
|
||||
|
||||
namespace {
|
||||
|
@ -116,9 +116,8 @@ class LiftoffAssembler : public TurboAssembler {
|
||||
|
||||
static constexpr ValueKind kPointerKind =
|
||||
kSystemPointerSize == kInt32Size ? kI32 : kI64;
|
||||
static constexpr ValueKind kTaggedKind =
|
||||
kTaggedSize == kInt32Size ? kI32 : kI64;
|
||||
static constexpr ValueKind kSmiKind = kTaggedKind;
|
||||
// A tagged value known to be a Smi can be treated like a ptr-sized int.
|
||||
static constexpr ValueKind kSmiKind = kTaggedSize == kInt32Size ? kI32 : kI64;
|
||||
|
||||
using ValueKindSig = Signature<ValueKind>;
|
||||
|
||||
|
@ -99,7 +99,6 @@ constexpr LoadType::LoadTypeValue kPointerLoadType =
|
||||
|
||||
constexpr ValueKind kPointerKind = LiftoffAssembler::kPointerKind;
|
||||
constexpr ValueKind kSmiKind = LiftoffAssembler::kSmiKind;
|
||||
constexpr ValueKind kTaggedKind = LiftoffAssembler::kTaggedKind;
|
||||
|
||||
// Used to construct fixed-size signatures: MakeSig::Returns(...).Params(...);
|
||||
using MakeSig = FixedSizeSignature<ValueKind>;
|
||||
@ -5437,15 +5436,17 @@ class LiftoffCompiler {
|
||||
LiftoffRegister table_index_reg =
|
||||
pinned.set(__ GetUnusedRegister(kGpReg, pinned));
|
||||
LoadSmi(table_index_reg, imm.index);
|
||||
LiftoffAssembler::VarState table_index(kPointerKind, table_index_reg, 0);
|
||||
LiftoffAssembler::VarState table_index(kSmiKind, table_index_reg, 0);
|
||||
|
||||
LiftoffAssembler::VarState delta = __ cache_state()->stack_state.end()[-1];
|
||||
LiftoffAssembler::VarState value = __ cache_state()->stack_state.end()[-2];
|
||||
|
||||
CallRuntimeStub(
|
||||
WasmCode::kWasmTableGrow,
|
||||
MakeSig::Returns(kSmiKind).Params(kSmiKind, kI32, kTaggedKind),
|
||||
{table_index, delta, value}, decoder->position());
|
||||
DCHECK_EQ(kI32, delta.kind());
|
||||
DCHECK(is_object_reference(value.kind()));
|
||||
|
||||
CallRuntimeStub(WasmCode::kWasmTableGrow,
|
||||
MakeSig::Returns(kSmiKind).Params(kSmiKind, kI32, kRef),
|
||||
{table_index, delta, value}, decoder->position());
|
||||
|
||||
// Pop parameters from the value stack.
|
||||
__ cache_state()->stack_state.pop_back(2);
|
||||
@ -5487,14 +5488,18 @@ class LiftoffCompiler {
|
||||
LiftoffRegister table_index_reg =
|
||||
pinned.set(__ GetUnusedRegister(kGpReg, pinned));
|
||||
LoadSmi(table_index_reg, imm.index);
|
||||
LiftoffAssembler::VarState table_index(kPointerKind, table_index_reg, 0);
|
||||
LiftoffAssembler::VarState table_index(kSmiKind, table_index_reg, 0);
|
||||
|
||||
LiftoffAssembler::VarState count = __ cache_state()->stack_state.end()[-1];
|
||||
LiftoffAssembler::VarState value = __ cache_state()->stack_state.end()[-2];
|
||||
LiftoffAssembler::VarState start = __ cache_state()->stack_state.end()[-3];
|
||||
|
||||
DCHECK_EQ(kI32, count.kind());
|
||||
DCHECK(is_object_reference(value.kind()));
|
||||
DCHECK_EQ(kI32, start.kind());
|
||||
|
||||
CallRuntimeStub(WasmCode::kWasmTableFill,
|
||||
MakeSig::Params(kSmiKind, kI32, kI32, kTaggedKind),
|
||||
MakeSig::Params(kSmiKind, kI32, kI32, kRef),
|
||||
{table_index, start, count, value}, decoder->position());
|
||||
|
||||
// Pop parameters from the value stack.
|
||||
|
Loading…
Reference in New Issue
Block a user