[fpc-pascal] rotating bits
Michael Van Canneyt
michael at freepascal.org
Thu May 25 10:51:13 CEST 2006
On Thu, 25 May 2006, Florian Klaempfl wrote:
> Tomas Hajny wrote:
> > On 25 May 06, at 0:10, Ď¸ňđ Ęîńŕđĺâńęčé ń mail.ru wrote:
> >>>> First parameter is in eax, second in edx (third one is ecx)
> >> TH> Yes, of course, sorry for confusion... :-( Anyway, loading of the first
> >> TH> parameter can be still skipped (and the stack frame is probably not useful
> >> TH> in this case either). So you'd get:
> >> TH> function brol(b: byte; c: byte): byte; assembler; nostackframe;
> >> TH> asm
> >> TH> movb %dl,%cl
> >> TH> rolb %cl,%al
> >> TH> end ['cl'];
> >> TH> Tomas
> >> 1. So, is there any problem with including this functions and bit checks
> >> (bt./bs. in intel assembler: writing (a and (1 shl i)) isn't great too)?
> > I guess there is no problem in including it. The
> > only questions from my point of view are:
> > 1) Are they useful in general, so that it would
> > make sense to include them either in FPC itself
> > (as opposed to some standalone unit)?
> - they must be available for all cpu platforms, so we need at least a
> generic implementation
> - for an efficient implementation, this needs a compiler patch so the
> compiler can really efficiently inline
I don't think these functions are so useful that they warrant a compiler patch.
We can include them in some separate unit, but I would highly object against
putting them in the system unit.
More information about the fpc-pascal