Patchset adds in the ETMv3 instruction trace decoder to the OpenCSD library.
ETMv3 tested using the TC2 snapshot. Checked that perf still builds (with associated patch on the perf branch) Checked that the perf example trace decodes for ETMv4 are unaffected.
v2 patchset addressing comments from first patch set.
Patch relative to arm-dev branch.
Mike Leach (9): OCSD response enum value name corrected. ETMv3 packet decoder Refactor etmv3 config class and etmv3 packet class to improve encapsulation. ETMv3 decoder - created code follower generic class. ETMv3 decoder updates. TC2 snapshot update. ETMv3 Decoder Updates - decoder complete. ETMv3 : update to linux build makefile Documentation Update
HOWTO.md | 13 +- README.md | 22 +- TODO | 11 +- decoder/build/linux/ref_trace_decode_lib/makefile | 5 +- .../ref_trace_decode_lib.vcxproj | 6 +- .../ref_trace_decode_lib.vcxproj.filters | 18 +- decoder/docs/doxygen_config.dox | 2 +- decoder/include/c_api/opencsd_c_api.h | 13 + decoder/include/common/ocsd_code_follower.h | 231 + decoder/include/common/ocsd_dcd_tree_elem.h | 4 +- decoder/include/common/ocsd_gen_elem_list.h | 153 + decoder/include/common/ocsd_pe_context.h | 116 + decoder/include/common/trc_gen_elem.h | 82 +- decoder/include/etmv3/etmv3_decoder.h | 1 + decoder/include/etmv3/trc_cmp_cfg_etmv3.h | 58 +- decoder/include/etmv3/trc_pkt_decode_etmv3.h | 199 +- decoder/include/etmv3/trc_pkt_elem_etmv3.h | 115 +- decoder/include/etmv3/trc_pkt_types_etmv3.h | 12 +- decoder/include/ocsd_if_types.h | 8 +- decoder/include/trc_gen_elem_types.h | 4 +- decoder/include/trc_pkt_types.h | 2 +- decoder/source/c_api/ocsd_c_api.cpp | 21 +- decoder/source/etmv3/trc_cmp_cfg_etmv3.cpp | 17 +- decoder/source/etmv3/trc_pkt_decode_etmv3.cpp | 558 +- decoder/source/etmv3/trc_pkt_elem_etmv3.cpp | 261 +- decoder/source/etmv3/trc_pkt_proc_etmv3_impl.cpp | 9 +- decoder/source/etmv4/trc_pkt_decode_etmv4i.cpp | 16 +- decoder/source/etmv4/trc_pkt_proc_etmv4i_impl.cpp | 2 +- decoder/source/ocsd_code_follower.cpp | 161 + decoder/source/ocsd_dcd_tree.cpp | 29 +- decoder/source/ocsd_error.cpp | 3 +- decoder/source/ocsd_gen_elem_list.cpp | 168 + decoder/source/ptm/trc_pkt_decode_ptm.cpp | 2 +- decoder/source/ptm/trc_pkt_proc_ptm.cpp | 2 +- decoder/source/stm/trc_pkt_proc_stm.cpp | 2 +- decoder/source/trc_frame_deformatter.cpp | 2 +- decoder/source/trc_gen_elem.cpp | 19 +- .../snapshot_parser_lib/source/ss_to_dcdtree.cpp | 13 +- decoder/tests/snapshots/TC2/ds5-dumps/etm_0.txt | 7379 ------------ decoder/tests/snapshots/TC2/ds5-dumps/etm_0x10.txt | 7381 ------------ decoder/tests/snapshots/TC2/ds5-dumps/etm_0x11.txt | 7612 ------------ decoder/tests/snapshots/TC2/ds5-dumps/etm_0x12.txt | 1980 ---- .../tests/snapshots/TC2/ds5-dumps/etmv3_0x10.txt | 7518 ++++++++++++ .../tests/snapshots/TC2/ds5-dumps/etmv3_0x11.txt | 7728 +++++++++++++ .../tests/snapshots/TC2/ds5-dumps/etmv3_0x12.txt | 2001 ++++ decoder/tests/snapshots/TC2/ds5-dumps/ptm_0x13.txt | 11553 ------------------- .../tests/snapshots/TC2/ds5-dumps/ptmv1_0x13.txt | 9913 ++++++++++++++++ decoder/tests/source/simple_pkt_c_api.c | 18 +- 48 files changed, 29254 insertions(+), 36189 deletions(-) create mode 100644 decoder/include/common/ocsd_code_follower.h create mode 100644 decoder/include/common/ocsd_gen_elem_list.h create mode 100644 decoder/include/common/ocsd_pe_context.h create mode 100644 decoder/source/ocsd_code_follower.cpp create mode 100644 decoder/source/ocsd_gen_elem_list.cpp delete mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/etm_0.txt delete mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/etm_0x10.txt delete mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/etm_0x11.txt delete mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/etm_0x12.txt create mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/etmv3_0x10.txt create mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/etmv3_0x11.txt create mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/etmv3_0x12.txt delete mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/ptm_0x13.txt create mode 100644 decoder/tests/snapshots/TC2/ds5-dumps/ptmv1_0x13.txt