On 2007-12-20 22:22:51 +0100, Markus Weissmann wrote:
If I remember correctly, all powerpc instructions have a length of 32 bit.
That's not different from the ARM.
Given that you need some bits for the opcode, a mere 16 bit remain to stuff a constant value to it (for the load high/add intermediate instructions).
You missed the point: there is no need to encode the constant in the instructions since it can be somewhere else in the memory (e.g. in a "constant pool").
Keep in mind that these 64 bit constants only cost you for pointers.
If all pointers are sufficiently close to each other, another solution is to keep a base pointer in some register, and compute the other ones with an addition to a 16-bit or a 32-bit constant (2 or 3 instructions). -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)