------- Comment #27 from hjl at lucon dot org 2007-08-07 18:10 ------- Created an attachment (id=14033) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14033&action=view) An updated patch
My patch works on gcc 4.3: [EMAIL PROTECTED] 30961]$ cat c.c double convert4(long long in ) { double f; __builtin_memcpy( &f, &in, sizeof( in ) ); return f; } [EMAIL PROTECTED] 30961]$ make c.s /export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -S -O2 -fno-asynchronous-unwind-tables c.c [EMAIL PROTECTED] 30961]$ cat c.s .file "c.c" .text .p2align 4,,15 .globl convert4 .type convert4, @function convert4: movq %rdi, -8(%rsp) movsd -8(%rsp), %xmm0 ret .size convert4, .-convert4 .ident "GCC: (GNU) 4.3.0 20070806 (experimental) [trunk revision 127248]" .section .note.GNU-stack,"",@progbits [EMAIL PROTECTED] 30961]$ If you can find which patch causes this regression, it will be easier to find a solution for 4.2. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30961