Well it seems I've got to back to the drawing board anyway - the
termination condition that I set out to solve has havoc wrought upon it by
local function calls.
Local calls move the target address into a register using the LEA
instruction. If the computed address happens to be a few instructions after
the current program counter, the entire rest of the disassembly is lost,
supposing it to be unboxed constants.
On Sun, Jun 2, 2013 at 9:57 AM, Zach Beane <xach@...> wrote:
> Paul Khuong <pvk@...> writes:
> > Douglas Katzman wrote:
> > [...]
> >> And by the way, why not make disassembly start at the beginning rather
> >> than the no-arg-parsing entry?
> >> As it is you have to jump through a hoop by calling
> >> disassemble-code-component when you want to see the arg parsing.
> > DISASSEMBLE used to include the argument parsing prologue. However, it
> > can be a lot of code, and there's little most programmers can do about
> > the prologue when optimising code.
> The programmer can control the complexity of the lambda list,
> though. Does its complexity or simplicity affect the volume of code in
> the prologue?
> > An additional keyword argument for DISASSEMBLE to directly include the
> > arg parsing code would be a reasonable way out of this dilemma.
> That would be pretty nice.