Fix offsets of source tracking hooks in the disassembler.
The disassembler by default annotates code compiled under a sufficiently
high DEBUG optimization quality with source code fragments. This was
mostly broken: these annotations were being printed in the wrong place
(many lines too far into the output) or not at all.
The reason for this behaviour was that ADD-SOURCE-TRACKING-HOOKS
calculated the annotation's offsets relative to the start of the
instructions in the code component and passed them unchanged to the
hooks used to print the annotations, which expect them to be relative
to the start of the segment.
Fix this by adding code in ADD-SOURCE-TRACKING-HOOKS to convert the
This bug seems to have been inherited already from CMUCL and it only
attracted attention when a change to the handling of prefix instructions
added a new failure mode to the existing ones, namely source annotations
breaking up disassembly lines inmidst the instruction bytes. See
lp#1249205 for details.