From ca5e0bc3fe98f23e9606fdecae5c55976459ff22 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Thu, 3 Sep 2009 14:49:58 -0700 Subject: [PATCH] android_atomic_write() implementation was using cmpxchg which was useless --- libcutils/atomic-android-arm.S | 19 ++----------------- libcutils/atomic-android-armv6.S | 7 ++----- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/libcutils/atomic-android-arm.S b/libcutils/atomic-android-arm.S index c56ec5d0e..f4299fded 100644 --- a/libcutils/atomic-android-arm.S +++ b/libcutils/atomic-android-arm.S @@ -55,23 +55,8 @@ */ android_atomic_write: - stmdb sp!, {r4, lr} - mov r2, r1 - mov r1, r0 -1: @ android_atomic_write - ldr r0, [r2] - mov r3, #kernel_atomic_base -#ifdef __ARM_HAVE_PC_INTERWORK - add lr, pc, #4 - add pc, r3, #(kernel_cmpxchg - kernel_atomic_base) -#else - add r3, r3, #(kernel_cmpxchg - kernel_atomic_base) - mov lr, pc - bx r3 -#endif - bcc 1b - ldmia sp!, {r4, lr} - bx lr + str r0, [r1] + bx lr; /* * ---------------------------------------------------------------------------- diff --git a/libcutils/atomic-android-armv6.S b/libcutils/atomic-android-armv6.S index 64146c177..a71308966 100644 --- a/libcutils/atomic-android-armv6.S +++ b/libcutils/atomic-android-armv6.S @@ -45,11 +45,8 @@ */ android_atomic_write: -1: ldrex r12, [r1] - strex r12, r0, [r1] - cmp r12, #0 - bne 1b - bx lr + str r0, [r1] + bx lr; /* * ----------------------------------------------------------------------------