This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/24536] New: [4.1 Regression] Register allocation to mmx asms broken
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 26 Oct 2005 10:01:06 -0000
- Subject: [Bug target/24536] New: [4.1 Regression] Register allocation to mmx asms broken
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
We fail to allocate an mmx register to class 'X' since the last couple of weeks
(20051015 worked). Testcase:
typedef union {
long long q;
unsigned long long uq;
} __attribute__ ((aligned (8))) mmx_t;
static mmx_t mmx_0x8080s = (mmx_t) 0x8080808080808080LL;
void dv_mb411_right_YUY2_mmx(void)
{
short *cr_frame;
int row;
for (row = 0; row < 8; row++)
{
__asm__ __volatile__ ("movq" " %0, %%" "mm1" : : "X" (*cr_frame));
__asm__ __volatile__ ("paddb" " %0, %%" "mm3" : : "X" (mmx_0x8080s));
}
}
where we produce with -O2:
.L2:
#APP
movq %bx, %mm1
paddb %edx, %mm3
#NO_APP
which of course makes the assembler barf.
--
Summary: [4.1 Regression] Register allocation to mmx asms broken
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: critical
Priority: P2
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org
GCC target triplet: i686-*-*
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24536