diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/mips/20140928.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/mips/20140928.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/mips/20140928.c b/gcc-4.9/gcc/testsuite/gcc.target/mips/20140928.c new file mode 100644 index 000000000..1b55bdd35 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/mips/20140928.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ + +NOMIPS16 int NoBarrier_AtomicIncrement(volatile int* ptr, int increment) { + int temp, temp2; + __asm__ __volatile__(".set push\n" + ".set noreorder\n" + "1:\n" + "ll %0, 0(%3)\n" + "addu %1, %0, %2\n" + "sc %1, 0(%3)\n" + "beqz %1, 1b\n" + "nop\n" + "addu %1, %0, %2\n" + ".set pop\n" + : "=&r" (temp), "=&r" (temp2) + : "Ir" (increment), "r" (ptr) + : "memory"); + + return temp2; +} |