------- Additional Comments From uros at kss-loka dot si 2004-11-30 14:58 ------- 'gcc -O -march=pentium4 -fomit-frame-pointer -S t32.c' now produces:
.file "t32.c" .text .globl old_64_to_32 .type old_64_to_32, @function old_64_to_32: subl $12, %esp movq %mm0, (%esp) movl (%esp), %eax addl $12, %esp ret .size old_64_to_32, .-old_64_to_32 .globl new_64_to_32 .type new_64_to_32, @function new_64_to_32: subl $12, %esp movq %mm0, (%esp) movl (%esp), %eax addl $12, %esp ret .size new_64_to_32, .-new_64_to_32 .globl old_32_to_64 .type old_32_to_64, @function old_32_to_64: movl 4(%esp), %eax movd 8(%esp), %mm0 movq %mm0, (%eax) ret $4 .size old_32_to_64, .-old_32_to_64 .globl new_32_to_64 .type new_32_to_64, @function new_32_to_64: movl 4(%esp), %eax movd 8(%esp), %mm0 movq %mm0, (%eax) ret $4 .size new_32_to_64, .-new_32_to_64 .ident "GCC: (GNU) 4.0.0 20041130 (experimental)" .section .note.GNU-stack,"",@progbits new_* and old_* functions produce the same code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11628