diff --git a/ChangeLog b/ChangeLog index acdf79309..b544c4a46 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-04-26 Wolfgang Lux + + * Source/NSObject.m (GSAtomicIncrement, GSAtomicDecrement): Use + local labels in PowerPC assembler code to avoid a compile error + when this code is inlined more than once. In addition, use the + optimized assembler definitions also on PowerPC machines running + Darwin/Mac OS X. + 2010-04-23 Richard Frith-Macdonald * Source/Additions/NSFileHandle+GNUstepBase.m: fix to only build on OSX diff --git a/Source/NSObject.m b/Source/NSObject.m index cd2c3f8a6..31ba3815b 100644 --- a/Source/NSObject.m +++ b/Source/NSObject.m @@ -244,7 +244,7 @@ GSAtomicDecrement(gsatomic_t X) return *X; } -#elif defined(__PPC__) +#elif defined(__PPC__) || defined(__POWERPC__) typedef int32_t volatile *gsatomic_t; @@ -255,11 +255,11 @@ GSAtomicIncrement(gsatomic_t X) { int tmp; __asm__ __volatile__ ( - "incmodified:" + "0:" "lwarx %0,0,%1 \n" "addic %0,%0,1 \n" "stwcx. %0,0,%1 \n" - "bne- incmodified \n" + "bne- 0b \n" :"=&r" (tmp) :"r" (X) :"cc", "memory"); @@ -271,11 +271,11 @@ GSAtomicDecrement(gsatomic_t X) { int tmp; __asm__ __volatile__ ( - "decmodified:" + "0:" "lwarx %0,0,%1 \n" "addic %0,%0,-1 \n" "stwcx. %0,0,%1 \n" - "bne- decmodified \n" + "bne- 0b \n" :"=&r" (tmp) :"r" (X) :"cc", "memory");