On 22 Oct 2008, at 10:46, Саша Иваненко wrote:

I have an assembler procedure of about a 1500 lines of code. The problem is the jumps are generated with absolute addresses only, even if I explicitly specify "short" postfix. Why is it? The code size is critical for me. I am using lazarus with fpc 2.2.2. Example code:

sub eax,dword ptr [esp]
add esp,04h
cmp eax,0FFFh
jbe short @not_traced // JBE 0xABSOLUTE_ADDRESS GENERATED - WHY???!!!

It's not an absolute address, but a 32 bit relative address.

popad
popad
retn
@not_traced:

Any suggestions? Thank you.

You can try using the external assembler (-Aas). And file a bug report against the internal one (although I thought there was already a bug report about this, I can't find it immediately)


Jonas_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to