We are looking at GCC and another compiler for use on an embedded powerpc project and in comparing the two compilers I get this, >From GCC lis 9,pstr@ha lwz 0,pstr@l(9) mr 3,0 crxor 6,6,6 bl atoi mr 29,3 >From vendor 172 lwz r3, 532(r31) 173 bl atof 174 bl _d_dtof 175 stw r3, 12(sp) GCC appears to be doing some extra work here and I am at a loss to work out what it is doing this for, why the crxor 6,6,6 from my reading this is the floating point exception in the CR, and GCC does this every time, as here... lwz 3,8(31) lis 9,.LC1@ha la 4,.LC1@l(9) mr 5,29 mr 6,0 crxor 6,6,6 bl sprintf Can some one explain this seemingly irrelevant extra step..