ppc64: [baseline] port LoadTagged functions
Change-Id: Ic65f0cccaba6cea2d441540b57689e2c68af3125 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585526 Reviewed-by: Milad Farazmand <mfarazma@redhat.com> Commit-Queue: Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/main@{#79967}
This commit is contained in:
parent
af1fa2869b
commit
7a5f4f55aa
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user