[wasm] Change trace memory instr offset to be relative to module
Instead of {func-index}+{pc of instruction relative to function}, make it {func-index}:{pc of instruction in module}. This is more consistent with existing conventions (https://webassembly.github.io/spec/web-api/index.html#conventions) and other tools (like output of wasm-objdump). Bug: v8:10773 Change-Id: I7ceecafd984e2d1adbb57266e1f7448762e23ac9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2842267 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74110}
This commit is contained in:
parent
02820f3a08
commit
c8f1b36d2b
@ -423,14 +423,10 @@ RUNTIME_FUNCTION(Runtime_WasmTraceMemory) {
|
|||||||
frame->wasm_instance().memory_object().array_buffer().backing_store());
|
frame->wasm_instance().memory_object().array_buffer().backing_store());
|
||||||
int func_index = frame->function_index();
|
int func_index = frame->function_index();
|
||||||
int pos = frame->position();
|
int pos = frame->position();
|
||||||
// TODO(titzer): eliminate dependency on WasmModule definition here.
|
|
||||||
int func_start =
|
|
||||||
frame->wasm_instance().module()->functions[func_index].code.offset();
|
|
||||||
wasm::ExecutionTier tier = frame->wasm_code()->is_liftoff()
|
wasm::ExecutionTier tier = frame->wasm_code()->is_liftoff()
|
||||||
? wasm::ExecutionTier::kLiftoff
|
? wasm::ExecutionTier::kLiftoff
|
||||||
: wasm::ExecutionTier::kTurbofan;
|
: wasm::ExecutionTier::kTurbofan;
|
||||||
wasm::TraceMemoryOperation(tier, info, func_index, pos - func_start,
|
wasm::TraceMemoryOperation(tier, info, func_index, pos, mem_start);
|
||||||
mem_start);
|
|
||||||
return ReadOnlyRoots(isolate).undefined_value();
|
return ReadOnlyRoots(isolate).undefined_value();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ void TraceMemoryOperation(base::Optional<ExecutionTier> tier,
|
|||||||
}
|
}
|
||||||
const char* eng =
|
const char* eng =
|
||||||
tier.has_value() ? ExecutionTierToString(tier.value()) : "?";
|
tier.has_value() ? ExecutionTierToString(tier.value()) : "?";
|
||||||
printf("%-11s func:%6d+0x%-6x%s %016" PRIuPTR " val: %s\n", eng, func_index,
|
printf("%-11s func:%6d:0x%-6x%s %016" PRIuPTR " val: %s\n", eng, func_index,
|
||||||
position, info->is_store ? " store to" : "load from", info->offset,
|
position, info->is_store ? " store to" : "load from", info->offset,
|
||||||
value.begin());
|
value.begin());
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
liftoff func: 0+0x3 load from 0000000000000004 val: i32:0 / 00000000
|
liftoff func: 0:0xab load from 0000000000000004 val: i32:0 / 00000000
|
||||||
liftoff func: 1+0x3 load from 0000000000000001 val: i8:0 / 00
|
liftoff func: 1:0xb4 load from 0000000000000001 val: i8:0 / 00
|
||||||
liftoff func: 3+0x5 store to 0000000000000004 val: i32:305419896 / 12345678
|
liftoff func: 3:0xc8 store to 0000000000000004 val: i32:305419896 / 12345678
|
||||||
liftoff func: 0+0x3 load from 0000000000000002 val: i32:1450704896 / 56780000
|
liftoff func: 0:0xab load from 0000000000000002 val: i32:1450704896 / 56780000
|
||||||
liftoff func: 1+0x3 load from 0000000000000006 val: i8:52 / 34
|
liftoff func: 1:0xb4 load from 0000000000000006 val: i8:52 / 34
|
||||||
liftoff func: 2+0x3 load from 0000000000000002 val: f32:68169720922112.000000 / 56780000
|
liftoff func: 2:0xbd load from 0000000000000002 val: f32:68169720922112.000000 / 56780000
|
||||||
liftoff func: 4+0x5 store to 0000000000000004 val: i8:171 / ab
|
liftoff func: 4:0xd2 store to 0000000000000004 val: i8:171 / ab
|
||||||
liftoff func: 0+0x3 load from 0000000000000002 val: i32:1454047232 / 56ab0000
|
liftoff func: 0:0xab load from 0000000000000002 val: i32:1454047232 / 56ab0000
|
||||||
liftoff func: 2+0x3 load from 0000000000000002 val: f32:94008244174848.000000 / 56ab0000
|
liftoff func: 2:0xbd load from 0000000000000002 val: f32:94008244174848.000000 / 56ab0000
|
||||||
liftoff func: 6+0x7 store to 0000000000000004 val: s128:48879 48879 48879 48879 / 0000beef 0000beef 0000beef 0000beef
|
liftoff func: 6:0xe8 store to 0000000000000004 val: s128:48879 48879 48879 48879 / 0000beef 0000beef 0000beef 0000beef
|
||||||
liftoff func: 5+0x3 load from 0000000000000002 val: s128:-1091633152 -1091633152 -1091633152 -1091633152 / beef0000 beef0000 beef0000 beef0000
|
liftoff func: 5:0xda load from 0000000000000002 val: s128:-1091633152 -1091633152 -1091633152 -1091633152 / beef0000 beef0000 beef0000 beef0000
|
||||||
liftoff func: 7+0x3 load from 0000000000000004 val: i16:48879 / beef
|
liftoff func: 7:0xf1 load from 0000000000000004 val: i16:48879 / beef
|
||||||
liftoff func: 8+0x3 load from 0000000000000002 val: i64:-4688528683866062848 / beef0000beef0000
|
liftoff func: 8:0xfa load from 0000000000000002 val: i64:-4688528683866062848 / beef0000beef0000
|
||||||
liftoff func: 9+0x3 load from 0000000000000002 val: f64:-0.000015 / beef0000beef0000
|
liftoff func: 9:0x103 load from 0000000000000002 val: f64:-0.000015 / beef0000beef0000
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
turbofan func: 0+0x3 load from 0000000000000004 val: i32:0 / 00000000
|
turbofan func: 0:0xab load from 0000000000000004 val: i32:0 / 00000000
|
||||||
turbofan func: 1+0x3 load from 0000000000000001 val: i8:0 / 00
|
turbofan func: 1:0xb4 load from 0000000000000001 val: i8:0 / 00
|
||||||
turbofan func: 3+0x5 store to 0000000000000004 val: i32:305419896 / 12345678
|
turbofan func: 3:0xc8 store to 0000000000000004 val: i32:305419896 / 12345678
|
||||||
turbofan func: 0+0x3 load from 0000000000000002 val: i32:1450704896 / 56780000
|
turbofan func: 0:0xab load from 0000000000000002 val: i32:1450704896 / 56780000
|
||||||
turbofan func: 1+0x3 load from 0000000000000006 val: i8:52 / 34
|
turbofan func: 1:0xb4 load from 0000000000000006 val: i8:52 / 34
|
||||||
turbofan func: 2+0x3 load from 0000000000000002 val: f32:68169720922112.000000 / 56780000
|
turbofan func: 2:0xbd load from 0000000000000002 val: f32:68169720922112.000000 / 56780000
|
||||||
turbofan func: 4+0x5 store to 0000000000000004 val: i8:171 / ab
|
turbofan func: 4:0xd2 store to 0000000000000004 val: i8:171 / ab
|
||||||
turbofan func: 0+0x3 load from 0000000000000002 val: i32:1454047232 / 56ab0000
|
turbofan func: 0:0xab load from 0000000000000002 val: i32:1454047232 / 56ab0000
|
||||||
turbofan func: 2+0x3 load from 0000000000000002 val: f32:94008244174848.000000 / 56ab0000
|
turbofan func: 2:0xbd load from 0000000000000002 val: f32:94008244174848.000000 / 56ab0000
|
||||||
turbofan func: 6+0x7 store to 0000000000000004 val: s128:48879 48879 48879 48879 / 0000beef 0000beef 0000beef 0000beef
|
turbofan func: 6:0xe8 store to 0000000000000004 val: s128:48879 48879 48879 48879 / 0000beef 0000beef 0000beef 0000beef
|
||||||
turbofan func: 5+0x3 load from 0000000000000002 val: s128:-1091633152 -1091633152 -1091633152 -1091633152 / beef0000 beef0000 beef0000 beef0000
|
turbofan func: 5:0xda load from 0000000000000002 val: s128:-1091633152 -1091633152 -1091633152 -1091633152 / beef0000 beef0000 beef0000 beef0000
|
||||||
turbofan func: 7+0x3 load from 0000000000000004 val: i16:48879 / beef
|
turbofan func: 7:0xf1 load from 0000000000000004 val: i16:48879 / beef
|
||||||
turbofan func: 8+0x3 load from 0000000000000002 val: i64:-4688528683866062848 / beef0000beef0000
|
turbofan func: 8:0xfa load from 0000000000000002 val: i64:-4688528683866062848 / beef0000beef0000
|
||||||
turbofan func: 9+0x3 load from 0000000000000002 val: f64:-0.000015 / beef0000beef0000
|
turbofan func: 9:0x103 load from 0000000000000002 val: f64:-0.000015 / beef0000beef0000
|
||||||
|
Loading…
Reference in New Issue
Block a user