This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/30919] [4.1 regression] unable to find a register to spill in class 'CREG'



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]