Yah, in retrospect I don't like the apparent misalignment of data in relative offset mode.
I also failed to realize that my latest patch totally failed to print labels correctly. D'oh.

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.


On Tue, May 28, 2013 at 7:15 AM, Lutz Euler <lutz.euler@freenet.de> wrote:
Hi Christophe,

> lutz.euler@freenet.de (Lutz Euler) writes:
>
> >   ; Origin #x1004568445
> >   ;       45:       F6C201           TEST DL, 1 ; no-arg-parsing entry point
> >   ;       48:       7509             JNE L0
>
> I like this, but I would like even better
>
> ; Origin #x1004568445
> ;  45:  F6C201      TEST DL, 1 ; no-arg-parsing entry point
> ;  48:  7509        JNE L0
>
> in a bid to reclaim the right margin, at least somewhat -- particularly
> in this era of extremely large instructions :)

that may be difficult. Here is a line from the disassembly of
SB-EVAL::%EVAL (in SBCL 1.1.6.19) which has a size of 8867 bytes:

;     4325: L100: 488953F8         MOV [RBX-8], RDX

The space between address and code bytes is needed for labels.
The size of the address is currently calculated as the shortest postfix
of the address that covers all digits that change over the course of the
function. This is not bounded by the size of the function, for example:

; Size: 417 bytes
; 01026F0C:       8BC6             MOV EAX, ESI ; first line of disassembly
[...]
;     70AC:       15               BYTE #X15    ; last line of disassembly

One could change this to output only so many address digits that the
addresses don't repeat during the disassembly (that would be three
digits in the previous example and would be bounded by the size of the
function).
Then one could often get by with 4 hex digits or less (the largest
function in SBCL itself is EXPT with around 30 KB size).

Greetings,

Lutz

------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Sbcl-devel mailing list
Sbcl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-devel