OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.target/] [i386/] [clobbers.c] - Diff between revs 318 and 338

Only display areas with differences | Details | Blame | View Log

Rev 318 Rev 338
/* Test asm clobbers on x86. */
/* Test asm clobbers on x86. */
 
 
/* { dg-do run } */
/* { dg-do run } */
 
 
extern void abort (void);
extern void abort (void);
 
 
int main ()
int main ()
{
{
        int i;
        int i;
        __asm__ ("movl $1,%0\n\txorl %%eax,%%eax" : "=r" (i) : : "eax");
        __asm__ ("movl $1,%0\n\txorl %%eax,%%eax" : "=r" (i) : : "eax");
        if (i != 1)
        if (i != 1)
                abort ();
                abort ();
        /* On darwin you can't call external functions from non-pic code,
        /* On darwin you can't call external functions from non-pic code,
           however, clobbering ebx isn't valid in pic code. Instead of
           however, clobbering ebx isn't valid in pic code. Instead of
           disabling the whole test, just disable the ebx clobbering part.
           disabling the whole test, just disable the ebx clobbering part.
           Ditto for any x86 system that is ilp32 && pic.
           Ditto for any x86 system that is ilp32 && pic.
        */
        */
#if !(defined (__MACH__))
#if !(defined (__MACH__))
#if ! defined (__PIC__) || defined (__LP64__)
#if ! defined (__PIC__) || defined (__LP64__)
        __asm__ ("movl $1,%0\n\txorl %%ebx,%%ebx" : "=r" (i) : : "ebx");
        __asm__ ("movl $1,%0\n\txorl %%ebx,%%ebx" : "=r" (i) : : "ebx");
        if (i != 1)
        if (i != 1)
                abort ();
                abort ();
#endif /* ! pic || lp64 */
#endif /* ! pic || lp64 */
#endif
#endif
        __asm__ ("movl $1,%0\n\txorl %%ecx,%%ecx" : "=r" (i) : : "ecx");
        __asm__ ("movl $1,%0\n\txorl %%ecx,%%ecx" : "=r" (i) : : "ecx");
        if (i != 1)
        if (i != 1)
                abort ();
                abort ();
        __asm__ ("movl $1,%0\n\txorl %%edx,%%edx" : "=r" (i) : : "edx");
        __asm__ ("movl $1,%0\n\txorl %%edx,%%edx" : "=r" (i) : : "edx");
        if (i != 1)
        if (i != 1)
                abort ();
                abort ();
        __asm__ ("movl $1,%0\n\txorl %%esi,%%esi" : "=r" (i) : : "esi");
        __asm__ ("movl $1,%0\n\txorl %%esi,%%esi" : "=r" (i) : : "esi");
        if (i != 1)
        if (i != 1)
                abort ();
                abort ();
        __asm__ ("movl $1,%0\n\txorl %%edi,%%edi" : "=r" (i) : : "edi");
        __asm__ ("movl $1,%0\n\txorl %%edi,%%edi" : "=r" (i) : : "edi");
        if (i != 1)
        if (i != 1)
                abort ();
                abort ();
        return 0;
        return 0;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.