On 28 May 2006, at 15:45, Florian Klaempfl wrote:

It is possible to implement a peephole optimization to change the
shift/or into the native variant of rol/ror if it exists.

The code currently generated is rather lengthy.

Of course, but it's going to be a pretty consistent pattern which can be recognised by the peephole optimizer (if someone implements it).

And I don't
think any architecture apart from x86 support rol/ror for anything but
the native word size (at least ppc doesn't).

But it can be done on ppc with two rlw* instructions which is also ok,
no?

I think it needs three: to to rotate left/right, one to insert the overflow at the end/start, and one to mask the overfow at the end/ start. But peephole optimizations to turn a number of shift and or operations into a sequence of rlw* is needed for ppc anyway (e.g. for record regvars).


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

Reply via email to