[Bug middle-end/49168] New: [4.7 Regression] Aligned store used with unaligned address
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed May 25 21:40:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49168
Summary: [4.7 Regression] Aligned store used with unaligned
address
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: hjl.tools@gmail.com
CC: rguenth@gcc.gnu.org
On Linux/x86-64, revision 174223 gave
[hjl@gnu-6 gcc]$ cat /tmp/x.c
#include <stdarg.h>
void
flt128_va (void *mem, va_list *ap)
{
__float128 d = va_arg (*ap, __float128);
__builtin_memcpy (mem, &d, sizeof (d));
}
[hjl@gnu-6 gcc]$ ./xgcc -B./ -O2 -S /tmp/x.c
[hjl@gnu-6 gcc]$ cat x.s
.file "x.c"
.text
.p2align 4,,15
.globl flt128_va
.type flt128_va, @function
flt128_va:
.LFB0:
.cfi_startproc
movl 4(%rsi), %edx
cmpl $176, %edx
jb .L5
movq 8(%rsi), %rax
addq $15, %rax
andq $-16, %rax
leaq 16(%rax), %rdx
movq %rdx, 8(%rsi)
movdqa (%rax), %xmm0
movdqa %xmm0, (%rdi)
ret
.p2align 4,,10
.p2align 3
.L5:
mov %edx, %eax
addq 16(%rsi), %rax
addl $16, %edx
movl %edx, 4(%rsi)
movdqa (%rax), %xmm0
movdqa %xmm0, (%rdi)
ret
.cfi_endproc
.LFE0:
.size flt128_va, .-flt128_va
It may be caused by revision 174206:
http://gcc.gnu.org/ml/gcc-cvs/2011-05/msg00987.html
More information about the Gcc-bugs
mailing list