Commit 415ef632 authored by Milad Fa's avatar Milad Fa Committed by V8 LUCI CQ

PPC/s390: [wasm][liftoff] Fix and cleanup tracing of return value

Port 6f9e71fa

Original Commit Message:

    - Fix tracing of reference return values. StoreTaggedPointer should not
      use the write barrier since we are writing to the stack.
    - Avoid re-allocating a slot for the return value when it is already
      spilled.

R=thibaudm@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
BUG=
LOG=N

Change-Id: I5b16259b1c6e8c019f6b17e8efb7947776e4ee24
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3886398Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#83112}
parent 6852c402
......@@ -1093,6 +1093,10 @@ void LiftoffAssembler::FillStackSlotsWithZero(int start, int size) {
}
}
void LiftoffAssembler::LoadSpillAddress(Register dst, int offset) {
SubS64(dst, fp, Operand(offset));
}
#define SIGN_EXT(r) extsw(r, r)
#define ROUND_F64_TO_F32(fpr) frsp(fpr, fpr)
#define INT32_AND_WITH_1F(x) Operand(x & 0x1f)
......
......@@ -1552,6 +1552,10 @@ void LiftoffAssembler::FillStackSlotsWithZero(int start, int size) {
pop(r0);
}
void LiftoffAssembler::LoadSpillAddress(Register dst, int offset) {
SubS64(dst, fp, Operand(offset));
}
#define SIGN_EXT(r) lgfr(r, r)
#define INT32_AND_WITH_1F(x) Operand(x & 0x1f)
#define REGISTER_AND_WITH_1F \
......
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