http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51364
--- Comment #11 from Janis Johnson <janis at gcc dot gnu.org> 2011-12-19 20:36:52 UTC --- The large code size isn't from the generated code, it's from the runtime support in static libraries; compile main.c with -c and look at the size of main.o. You might compare it to similar code using double and long double compiled with and without -msoft-float. With limited exceptions (I know of only one) decimal floating-point arithmetic must be supported through software emulation. GCC does this with libraries that were written to be fast and accurate rather than small.