Add AArch64 stack pointer elision in drmemtrace offline traces
Offline traces elide addresses that can be reconstructed in post-processing. They also don't bother storing displacements, which simplifies instrumentation. The two go hand in hand and are assumed in the post-processing reconstruction.
However, the AArch64 ISA does not allow directly storing %sp
to memory, so we cannot elide stack pointer displacements. Since post-processing assumes that, today we also never elide stack pointer addresses: which is a lot of addresses we needn't record and write out.
This issue covers fixing up raw2trace to store the displacement along with reg_vals
so it can adjust displacements even when not elided, allowing us to elide redundant stack addresses.
Split from the too-general #2001.