Commit 7a5f4f55 authored by Junliang Yan's avatar Junliang Yan Committed by V8 LUCI CQ

ppc64: [baseline] port LoadTagged functions

Change-Id: Ic65f0cccaba6cea2d441540b57689e2c68af3125
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585526Reviewed-by: 's avatarMilad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#79967}
parent af1fa286
......@@ -332,11 +332,11 @@ void BaselineAssembler::Move(Register output, int32_t value) {
}
void BaselineAssembler::MoveMaybeSmi(Register output, Register source) {
__ mov(output, source);
__ mr(output, source);
}
void BaselineAssembler::MoveSmi(Register output, Register source) {
__ mov(output, source);
__ mr(output, source);
}
namespace detail {
......@@ -451,15 +451,17 @@ void BaselineAssembler::Pop(T... registers) {
void BaselineAssembler::LoadTaggedPointerField(Register output, Register source,
int offset) {
UNIMPLEMENTED();
__ LoadTaggedPointerField(output, FieldMemOperand(source, offset), r0);
}
void BaselineAssembler::LoadTaggedSignedField(Register output, Register source,
int offset) {
UNIMPLEMENTED();
__ LoadTaggedSignedField(output, FieldMemOperand(source, offset), r0);
}
void BaselineAssembler::LoadTaggedAnyField(Register output, Register source,
int offset) {
UNIMPLEMENTED();
__ LoadAnyTaggedField(output, FieldMemOperand(source, offset), r0);
}
void BaselineAssembler::LoadWord16FieldZeroExtend(Register output,
......@@ -469,7 +471,6 @@ void BaselineAssembler::LoadWord16FieldZeroExtend(Register output,
void BaselineAssembler::LoadWord8Field(Register output, Register source,
int offset) {
UNIMPLEMENTED();
__ LoadU8(output, FieldMemOperand(source, offset), r0);
}
......
......@@ -627,6 +627,16 @@ void TurboAssembler::DecompressAnyTagged(Register destination,
RecordComment("]");
}
void TurboAssembler::LoadTaggedSignedField(Register destination,
MemOperand field_operand,
Register scratch) {
if (COMPRESS_POINTERS_BOOL) {
DecompressTaggedSigned(destination, field_operand);
} else {
LoadU64(destination, field_operand, scratch);
}
}
void MacroAssembler::RecordWriteField(Register object, int offset,
Register value, Register slot_address,
LinkRegisterStatus lr_status,
......
......@@ -982,6 +982,8 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
void LoadTaggedPointerField(const Register& destination,
const MemOperand& field_operand,
const Register& scratch = no_reg);
void LoadTaggedSignedField(Register destination, MemOperand field_operand,
Register scratch);
// Loads a field containing any tagged value and decompresses it if necessary.
void LoadAnyTaggedField(const Register& destination,
......
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