This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/30919] [4.1 regression] unable to find a register to spill in class 'CREG'
- 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: 22 Feb 2007 11:04:20 -0000
- Subject: [Bug target/30919] [4.1 regression] unable to find a register to spill in class 'CREG'
- References: <bug-30919-5724@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from rguenth at gcc dot gnu dot org 2007-02-22 11:04 -------
Confirmed. Whoever wrote that code should be ....
typedef long unsigned int size_t;
typedef signed int sal_Int32;
typedef unsigned int sal_uInt32;
typedef unsigned long int sal_uInt64;
extern "C" void *memcpy (void *__restrict __dest, __const void *__restrict
__src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
void callVirtualMethod(void * pThis, sal_uInt64 *pStack, sal_uInt32 nStack)
{
sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca( nStack * 8 );
memcpy( stack, pStack, nStack * 8 );
register sal_uInt64 a0 asm("rdi");
register sal_uInt64 a1 asm("rsi");
register sal_uInt64 a2 asm("rdx");
register sal_uInt64 a3 asm("rcx");
register sal_uInt64 a4 asm("r8");
register sal_uInt64 a5 asm("r9");
sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
typedef struct {} ReturnValue;
typedef ReturnValue (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64,
sal_uInt64, sal_uInt64, sal_uInt64 );
ReturnValue aRet = ( ( FunctionCall ) pMethod )( a0, a1, a2, a3, a4, a5 );
}
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |ice-on-valid-code
Last reconfirmed|0000-00-00 00:00:00 |2007-02-22 11:04:19
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30919