Bernd Paysan wrote:
> Ah, that's because look doesn't know about mixed threading (xts obtained by ' 
> and given to execute are indirect threaded, xts compiled are direct 
> threaded).

The code addresses in compiled threaded code are not xts.

> Since there's already an intermediate step to get from the 
> supposed xt to the real code address (decompile-prim), I put the necessary 
> code into the C code that knows which sort of threading there is. Add the 
> lines marked with ! to decompile_code in main.c:
> 
>   Label decompile_code(Label code)
>   {
> ! #ifdef DIRECT_THREADED
> !   if((code >= (Cell)vm_prims) && (code < (Cell)(vm_prims+npriminfos)))
> !     return *(Label *)code;
> ! #endif
>   #ifdef NO_DYNAMIC
>     return code;

Ugh!  I don't think the solution is to try to produce a word that
manages to automagically recognize what kind of parameter it got (code
address or xt).  This would work for built-in primitives, but not for
CODE words.

Instead, we should have different words (one for dealing with XTs and
one for dealing with CAs), and use them in the appropriate places.
I'll do that.

- anton

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to