Show stack maps and Dex register maps in oatdump's assembly code.
Stack maps and Dex register maps are not longer displayed
in CodeInfo sections, unless `--dump:code_info_stack_maps'
is passed to oatdump.
Change-Id: Id82adb406d7e56cda27df8e5a8bd328a88b9ee11
diff --git a/runtime/stack_map.h b/runtime/stack_map.h
index eefdaa7..f17fe1b 100644
--- a/runtime/stack_map.h
+++ b/runtime/stack_map.h
@@ -696,6 +696,12 @@
size_t native_pc_max,
size_t register_mask_max);
+ void Dump(std::ostream& os,
+ const CodeInfo& code_info,
+ uint32_t code_offset,
+ uint16_t number_of_dex_registers,
+ const std::string& header_suffix = "") const;
+
// Special (invalid) offset for the DexRegisterMapOffset field meaning
// that there is no Dex register map for this stack map.
static constexpr uint32_t kNoDexRegisterMap = -1;
@@ -1048,16 +1054,15 @@
return StackMap();
}
- // Dump this CodeInfo object on `os`. If `dump_stack_maps` is true,
- // also dump the stack maps and the associated Dex register maps.
- void Dump(std::ostream& os, uint16_t number_of_dex_registers, bool dump_stack_maps) const;
-
- // Dump stack map number `stack_map_num` as well as associated data on `os`,
- // such as Dex register locations.
- void DumpStackMap(std::ostream& os, size_t stack_map_num, uint16_t number_of_dex_registers) const;
- // Dump the header of stack map number `stack_map_num` on `os`, without
- // associated data.
- void DumpStackMapHeader(std::ostream& os, size_t stack_map_num) const;
+ // Dump this CodeInfo object on `os`. `code_offset` is the (absolute)
+ // native PC of the compiled method and `number_of_dex_registers` the
+ // number of Dex virtual registers used in this method. If
+ // `dump_stack_maps` is true, also dump the stack maps and the
+ // associated Dex register maps.
+ void Dump(std::ostream& os,
+ uint32_t code_offset,
+ uint16_t number_of_dex_registers,
+ bool dump_stack_maps) const;
private:
// TODO: Instead of plain types such as "uint32_t", introduce