Thomas Preud'homme wrote:
So I looked at it and the reason it works on x86_64 but not on i386 target is
that for i386 target it only works when I386_ASM_16 is defined (16-bit
support). It seems from (i386|x86_64)-asm.h that jmp can take a register (such
as %eax) instead of an address (*%eax). I guess in one case (register) it does
a jump relative to the beginning of the segment while for the address case
it's an absolute jump at the address stored in the register.
I have no idea what the '*' means with "jmp *%eax" but according
to gcc it doesn't make a difference whether or not it is there.
(both emit FFE0).
Beyond that
error: unknown opcode 'jmp'
is just a rather bad message. Maybe it could say something like
error: bad operand '%eax' with opcode 'jmp'
--- grischka
_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel