Commit 7131234f authored by Junliang Yan's avatar Junliang Yan Committed by Commit Bot

s390: [wasm][debug] Implement instrumentation breakpoints

Port 15f3392a

Original Commit Message:

    This CL adds support for instrumentation breakpoints in wasm. The
    request for "break on entry" is set on the script, and we need to
keep
    it stored there because there might not be any instances of that
wasm
    module yet. Once instances get created, the flag value is
transferred to
    all instances. The flag stored there is then checked in the function
    prologue in Liftoff debugging code. This ensures that we will stop
at
    the first valid break position in any function within that module.
    Hitting that instrumentation breakpoint will then clear the flag
from
    the script and from all other live instances (in the same isolate).

    A first basic test is contained in this CL. More tests will be added
    later.

R=clemensb@chromium.org, midawson@redhat.com, mfarazma@redhat.com
BUG=
LOG=N

Change-Id: I892eec22aa804abb8b22f3bdd811664f9a2605d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695606Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72749}
parent f9366e76
......@@ -175,13 +175,20 @@ void LiftoffAssembler::LoadConstant(LiftoffRegister reg, WasmValue value,
}
void LiftoffAssembler::LoadFromInstance(Register dst, int offset, int size) {
DCHECK_LE(offset, kMaxInt);
DCHECK_LE(0, offset);
LoadU64(dst, liftoff::GetInstanceOperand());
DCHECK(size == 4 || size == 8);
if (size == 4) {
LoadS32(dst, MemOperand(dst, offset));
} else {
LoadU64(dst, MemOperand(dst, offset));
switch (size) {
case 1:
LoadU8(dst, MemOperand(dst, offset));
break;
case 4:
LoadU32(dst, MemOperand(dst, offset));
break;
case 8:
LoadU64(dst, MemOperand(dst, offset));
break;
default:
UNIMPLEMENTED();
}
}
......
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