s390x: [baseline] implement Store functions

Change-Id: If401e5c9d1ab6f293de2d8efed1f885683667408
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386389
Reviewed-by: Milad Farazmand <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#78629}
This commit is contained in:
Junliang Yan 2022-01-14 11:19:11 -05:00 committed by V8 LUCI CQ
parent b8440171c9
commit 2e147b4fae

View File

@ -440,17 +440,26 @@ void BaselineAssembler::LoadByteField(Register output, Register source,
}
void BaselineAssembler::StoreTaggedSignedField(Register target, int offset,
Smi value) {
UNIMPLEMENTED();
ASM_CODE_COMMENT(masm_);
ScratchRegisterScope temps(this);
Register tmp = temps.AcquireScratch();
__ LoadSmiLiteral(tmp, value);
__ StoreTaggedField(tmp, FieldMemOperand(target, offset), r0);
}
void BaselineAssembler::StoreTaggedFieldWithWriteBarrier(Register target,
int offset,
Register value) {
UNIMPLEMENTED();
ASM_CODE_COMMENT(masm_);
Register scratch = WriteBarrierDescriptor::SlotAddressRegister();
DCHECK(!AreAliased(target, value, scratch));
__ StoreTaggedField(value, FieldMemOperand(target, offset), r0);
__ RecordWriteField(target, offset, value, scratch, kLRHasNotBeenSaved,
SaveFPRegsMode::kIgnore);
}
void BaselineAssembler::StoreTaggedFieldNoWriteBarrier(Register target,
int offset,
Register value) {
UNIMPLEMENTED();
__ StoreTaggedField(value, FieldMemOperand(target, offset), r0);
}
void BaselineAssembler::AddToInterruptBudgetAndJumpIfNotExceeded(