------- Additional Comments From steven at gcc dot gnu dot org 2005-02-14 00:49 ------- This is not wasting a register at all, don't make unfounded claims like that if you don't know why exactly the code looks like it does. In this case the code comes from a peephole2 splitting the immediate move. Those peepholes run after register allocation, so the peephole can only apply if a register is available. If there are no available registers, the peephole simply does not match. So in fact this peephole makes gcc use the registers more efficiently!
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19945