[EMAIL PROTECTED] wrote on Mon, Dec 09, 2002 at 01:12:26PM -0600: 
> 
> I'm not!  :-)  and IT'S NOT MY CODE!  I'm porting someone else's code
> from Allegro to CMUCL.  Otherwise I would have rewritten it a bunch.
> Should my lexical environment be caught or killed, I will disavow any
> knowledge of this macro.
> 
> Seriously, I'm trying to port this as part of a consulting job, and
> thus want to make as few changes to the source as possible; if I make
> too many, I'll cause a code fork, and all kinds of unpleasant
> professional ramifications.  I'm supposed to be making these folks'
> jobs easier, not imposing all kinds of code rewrite!

The code, when compiled under Allegro, ends up with an additional
useless pointer indirection going after the fdefinition through the
symbol.  So it is arguable the correct solution is also better
(faster) when running under Allegro.

<  105: ff 76 3a    pushl       [esi+58]        ; (P1 P2 &OPTIONAL (TEST '#'EQ))
---
>  105: ff 76 3a    pushl       [esi+58]        ; (P1 P2 &OPTIONAL (TEST #'EQ))
79,81c80,84
<  168: 8b 56 42    movl        edx,[esi+66]    ; #'EQ
<  171: eb e1       jmp 142
<  173: 90          nop
---
>  168: 8b 9f ab fc movl        ebx,[edi-853]   ; EQ
>       ff ff 
>  174: 8b 53 15    movl        edx,[ebx+21]
>  177: eb db       jmp 142
>  179: 90          nop


I ran into the same issue with ITA's system.  May I ask what company
and system this is about?  

Martin

Reply via email to