On 10/15/2009 07:41 AM, Markus L wrote:
However the IS is designed so that it is beneficial to to store 16bit
values in the high part of the registers (rNh) and also the calling
conventions that we want follow require 16bit values to be passed and
returned in rNh.
What would be the "proper way" make the compiler use the upper parts
of these registers for the 16bit operands?
This feature is going to be difficult, but not impossible, and unless
your ISA has some really odd features I won't vouch for the code quality.
You say you want to canonically represent HImode in the high-part of the
register. Additionally, you'll have to represent QImode in the
high-part (if not further in the high byte).
You'll need to follow the mips port and define TRULY_NOOP_TRUNCATION and
the associated truncMN2 patterns.
If you do all this, you won't have to do anything with FUNCTION_VALUE
etc at all.
r~