Dan Sugalski <[EMAIL PROTECTED]> wrote:

[ Yet another f'up ]

> ..., except that it caches the top
> half of the register sets

[ ... ]

> copying the low half registers of the (now old)

Dan, the split in lower and upper half of registers was a premature
optimization with zig opcodes to address the problem, what we already
had at that time - memory copying.

Please remember how these opcodes and the split came in. It was wrong and
it remains wrong.

That approach tried to address the real problem (memory copying cost and
cache pullution) by only doing half of the work. This makes either a
16x4-register machine out of Parrot or a broken 32x4-register machine,
because some needed registers might not be preserved.

This does just not work as it doesn't account for the actual register
usage, neither of the caller nor the called sub.

And it's a PITA for the register allocation code.

leo

Reply via email to