------- Comment #8 from matz at gcc dot gnu dot org 2008-04-25 16:15 ------- FWIW, I think the error is in the caller of move_block_to_reg. move_block_to_reg can make use of a load_multiple instruction, which really loads full regs. I.e. it would be unreasonable to require changes in move_block_to_reg to handle non-power-of-2 sizes. Hence the caller (load_register_parameters) needs to handle this. I'm not sure if the n_aligned_regs thingy could be misused for this, or if one simply should opencode the special case of the last register being partial.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36043