lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> Check -fno-crossjumping in the GCC manual. But I think there are
> quite a few rants from Anton Ertl about how every new GCC release
> messed up the code of his carefully crafted interpreters ...

I guess Anton is right. -fno-crossjumping did not help. Everything
in the tail code is kept separated for each case, except for the
final "jmp *%eax" (this is the same result as with -O0). The sequence

        ...
        movl    %edi, %eax
        andl    $63, %eax
        movl    disptab.6158(,%eax,4), %eax
        jmp     .L462

is repeated 40 times in the code, but all end in the same L462, that do
the final jump:

.L462:
        jmp     *%eax

(This is gcc version 4.4.3.)

-- Roberto