[Bug inline-asm/42321] New: NEON/VFP registers from inline assembly clobber list are saved/restored incorrectly
siarhei dot siamashka at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Dec 7 14:34:00 GMT 2009
Test program:
/************************/
void f()
{
asm volatile("veor d8, d8, d8" : : :"d8","d9","d10","d11","d14","d15");
}
/************************/
$ gcc -c -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O2 test.c
$ objdump -d test.o
00000000 <f>:
0: ed2d8b08 vpush {d8-d11}
4: ed2deb04 vpush {d14-d15}
8: f3088118 veor d8, d8, d8
c: ecbd8b08 vpop {d8-d11}
10: ecbdeb04 vpop {d14-d15}
14: e12fff1e bx lr
The order of the last two vpop instructions is messed up.
--
Summary: NEON/VFP registers from inline assembly clobber list are
saved/restored incorrectly
Product: gcc
Version: 4.4.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: inline-asm
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: siarhei dot siamashka at gmail dot com
GCC build triplet: armv4tl-softfloat-linux-gnueabi
GCC host triplet: armv4tl-softfloat-linux-gnueabi
GCC target triplet: armv4tl-softfloat-linux-gnueabi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42321
More information about the Gcc-bugs
mailing list