From 5ad49fac1f49b1629b525677c50ef3d5a35f99c0 Mon Sep 17 00:00:00 2001 From: Brian Barrett Date: Fri, 28 Oct 2005 15:29:12 +0000 Subject: [PATCH] * when using gcc inline assembly, labels must be in the local number form or there will be complaints about duplicate labels. Fixes the rest of the compile issues in Opal on IRIX This commit was SVN r7919. --- opal/include/sys/mips/atomic.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/opal/include/sys/mips/atomic.h b/opal/include/sys/mips/atomic.h index 3f539e8a3a..506270e1ac 100644 --- a/opal/include/sys/mips/atomic.h +++ b/opal/include/sys/mips/atomic.h @@ -91,14 +91,14 @@ static inline int opal_atomic_cmpset_32(volatile int32_t *addr, __asm__ __volatile__ ("\t" ".set noreorder \n" - "retry: \n\t" + "1: \n\t" "ll %0, %2 \n\t" /* load *addr into ret */ - "bne %0, %3, done \n\t" /* done if oldval != ret */ + "bne %0, %3, 2f \n\t" /* done if oldval != ret */ "or %5, %4, 0 \n\t" /* ret = newval */ "sc %5, %2 \n\t" /* store ret in *addr */ /* note: ret will be 0 if failed, 1 if succeeded */ - "bne %5, 1, retry \n\t" - "done: \n\t" + "bne %5, 1, 1b \n\t" + "2: \n\t" ".set reorder \n" : "=&r"(ret), "=m"(*addr) : "m"(*addr), "r"(oldval), "r"(newval), "r"(tmp) @@ -140,14 +140,14 @@ static inline int opal_atomic_cmpset_64(volatile int64_t *addr, __asm__ __volatile__ ("\t" ".set noreorder \n" - "retry: \n\t" + "1: \n\t" "lld %0, %2 \n\t" /* load *addr into ret */ - "bne %0, %3, done \n\t" /* done if oldval != ret */ + "bne %0, %3, 2f \n\t" /* done if oldval != ret */ "or %5, %4, 0 \n\t" /* tmp = newval */ "scd %5, %2 \n\t" /* store tmp in *addr */ /* note: ret will be 0 if failed, 1 if succeeded */ - "bne %5, 1, retry \n" - "done: \n\t" + "bne %5, 1, 1b \n" + "2: \n\t" ".set reorder \n" : "=&r" (ret), "=m" (*addr) : "m" (*addr), "r" (oldval), "r" (newval),