s390x: [liftoff] implement instance access

Change-Id: I46d7d6e876351ddd75224090d9645877d1cb244b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2627868
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72081}
This commit is contained in:
Junliang Yan 2021-01-13 13:07:02 -05:00 committed by Commit Bot
parent 8df5142c34
commit 77840c5092

View File

@ -175,19 +175,28 @@ void LiftoffAssembler::LoadConstant(LiftoffRegister reg, WasmValue value,
}
void LiftoffAssembler::LoadFromInstance(Register dst, int offset, int size) {
bailout(kUnsupportedArchitecture, "LoadFromInstance");
DCHECK_LE(offset, kMaxInt);
LoadU64(dst, liftoff::GetInstanceOperand());
DCHECK(size == 4 || size == 8);
if (size == 4) {
LoadS32(dst, MemOperand(dst, offset));
} else {
LoadU64(dst, MemOperand(dst, offset));
}
}
void LiftoffAssembler::LoadTaggedPointerFromInstance(Register dst, int offset) {
bailout(kUnsupportedArchitecture, "LoadTaggedPointerFromInstance");
DCHECK_LE(0, offset);
LoadU64(dst, liftoff::GetInstanceOperand());
LoadTaggedPointerField(dst, MemOperand(dst, offset));
}
void LiftoffAssembler::SpillInstance(Register instance) {
bailout(kUnsupportedArchitecture, "SpillInstance");
StoreU64(instance, liftoff::GetInstanceOperand());
}
void LiftoffAssembler::FillInstanceInto(Register dst) {
bailout(kUnsupportedArchitecture, "FillInstanceInto");
LoadU64(dst, liftoff::GetInstanceOperand());
}
void LiftoffAssembler::LoadTaggedPointer(Register dst, Register src_addr,