Jonas Maebe wrote: > On 24 mei 2006, at 17:09, ���� �О�а�ов�киК wrote: > >>> function brol(b: byte; c: byte): byte; assembler; inline; >>> asm >>> rolb %cl,%al >>> end; >>> (and similarly for all the other functions). The first parameter >>> goes to >>> eax, the second to ecx, and the result is supposed to be in eax >>> again. >>> Tomas >> >> Did you test it? >> >> It does not work for me (one-liner). >> >> ("result" line does not seem to be needed, but calling conventions >> used seem to be somewhat different). > > First parameter is in eax, second in edx (third one is ecx)
Yes, of course, sorry for confusion... :-( Anyway, loading of the first parameter can be still skipped (and the stack frame is probably not useful in this case either). So you'd get: function brol(b: byte; c: byte): byte; assembler; nostackframe; asm movb %dl,%cl rolb %cl,%al end ['cl']; Tomas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal