Adds support for Thumb versus Arm modes in AArch32 with respect to drmemtrace stored encodings by setting the LSB when storing in the tracer and raw2trace, and by properly setting the base mode to Arm when decoding.
Augments decode_from_copy() to switch locally to Thumb if either the read or original PC has LSB=1 as that better fits most use cases (including reading from a drmemtrace encoding buffer).
Adds AArch32 support to the burst_gencode test.
Fixes 3 outstanding AArch32 issues:
-
Removes a quote in a comment in third_party/libgcc/arm/lib1funcs.S code not handled by old toolchains.
-
Removes an ASSERT_NOT_TESTED path now hit.
-
Fixes an AArch32 tracer bug where a 2nd temp register is needed for a 2nd conditional skip.
Tested by running the drcacheoff.gencode test on an AArch32 machine which now passes.
Issue: #5520 (closed)