eclair snapshot
diff --git a/libcutils/atomic-android-arm.S b/libcutils/atomic-android-arm.S
index c56ec5d..7befd78 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;
/*
* ----------------------------------------------------------------------------
@@ -81,6 +66,8 @@
*/
android_atomic_inc:
+ .fnstart
+ .save {r4, lr}
stmdb sp!, {r4, lr}
mov r2, r0
1: @ android_atomic_inc
@@ -100,6 +87,7 @@
sub r0, r1, #1
ldmia sp!, {r4, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------
@@ -109,6 +97,8 @@
*/
android_atomic_dec:
+ .fnstart
+ .save {r4, lr}
stmdb sp!, {r4, lr}
mov r2, r0
1: @ android_atomic_dec
@@ -128,6 +118,7 @@
add r0, r1, #1
ldmia sp!, {r4, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------
@@ -137,6 +128,8 @@
*/
android_atomic_add:
+ .fnstart
+ .save {r4, lr}
stmdb sp!, {r4, lr}
mov r2, r1
mov r4, r0
@@ -157,6 +150,7 @@
sub r0, r1, r4
ldmia sp!, {r4, lr}
bx lr
+ .fnend
/*
@@ -167,6 +161,8 @@
*/
android_atomic_and:
+ .fnstart
+ .save {r4, r5, lr}
stmdb sp!, {r4, r5, lr}
mov r2, r1 /* r2 = address */
mov r4, r0 /* r4 = the value */
@@ -189,6 +185,7 @@
mov r0, r5
ldmia sp!, {r4, r5, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------
@@ -198,6 +195,8 @@
*/
android_atomic_or:
+ .fnstart
+ .save {r4, r5, lr}
stmdb sp!, {r4, r5, lr}
mov r2, r1 /* r2 = address */
mov r4, r0 /* r4 = the value */
@@ -220,6 +219,7 @@
mov r0, r5
ldmia sp!, {r4, r5, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------
@@ -243,6 +243,8 @@
*/
android_atomic_cmpxchg:
+ .fnstart
+ .save {r4, lr}
stmdb sp!, {r4, lr}
mov r4, r0 /* r4 = save oldvalue */
1: @ android_atomic_cmpxchg
@@ -264,6 +266,7 @@
2: @ android_atomic_cmpxchg
ldmia sp!, {r4, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------