aboutsummaryrefslogtreecommitdiffstats
path: root/libcutils
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2009-10-13 17:06:10 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2009-10-13 17:06:10 -0700
commitafdf977b8d79a8c76dcbfd4a5f159c32a8833aab (patch)
tree0d32d5eebea5ae83425de8ffbf0fa5b5bd393a7d /libcutils
parenta01fdd534dd40865c966b5c5347cf74d0ff3116f (diff)
parent22f9d880941cf1db87fd19437bce71420eedf8bd (diff)
downloadsystem_core-afdf977b8d79a8c76dcbfd4a5f159c32a8833aab.tar.gz
system_core-afdf977b8d79a8c76dcbfd4a5f159c32a8833aab.tar.bz2
system_core-afdf977b8d79a8c76dcbfd4a5f159c32a8833aab.zip
am 22f9d880: am 8a0a5274: Add stack unwinding directives to atomic-android-arm.S.
Merge commit '22f9d880941cf1db87fd19437bce71420eedf8bd' * commit '22f9d880941cf1db87fd19437bce71420eedf8bd': Add stack unwinding directives to atomic-android-arm.S.
Diffstat (limited to 'libcutils')
-rw-r--r--libcutils/atomic-android-arm.S18
1 files changed, 18 insertions, 0 deletions
diff --git a/libcutils/atomic-android-arm.S b/libcutils/atomic-android-arm.S
index 4da61954..da5c26b0 100644
--- a/libcutils/atomic-android-arm.S
+++ b/libcutils/atomic-android-arm.S
@@ -65,6 +65,8 @@ android_atomic_write:
*/
android_atomic_inc:
+ .fnstart
+ .save {r4, lr}
stmdb sp!, {r4, lr}
mov r2, r0
1: @ android_atomic_inc
@@ -84,6 +86,7 @@ android_atomic_inc:
sub r0, r1, #1
ldmia sp!, {r4, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------
@@ -93,6 +96,8 @@ android_atomic_inc:
*/
android_atomic_dec:
+ .fnstart
+ .save {r4, lr}
stmdb sp!, {r4, lr}
mov r2, r0
1: @ android_atomic_dec
@@ -112,6 +117,7 @@ android_atomic_dec:
add r0, r1, #1
ldmia sp!, {r4, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------
@@ -121,6 +127,8 @@ android_atomic_dec:
*/
android_atomic_add:
+ .fnstart
+ .save {r4, lr}
stmdb sp!, {r4, lr}
mov r2, r1
mov r4, r0
@@ -141,6 +149,7 @@ android_atomic_add:
sub r0, r1, r4
ldmia sp!, {r4, lr}
bx lr
+ .fnend
/*
@@ -151,6 +160,8 @@ android_atomic_add:
*/
android_atomic_and:
+ .fnstart
+ .save {r4, r5, lr}
stmdb sp!, {r4, r5, lr}
mov r2, r1 /* r2 = address */
mov r4, r0 /* r4 = the value */
@@ -173,6 +184,7 @@ android_atomic_and:
mov r0, r5
ldmia sp!, {r4, r5, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------
@@ -182,6 +194,8 @@ android_atomic_and:
*/
android_atomic_or:
+ .fnstart
+ .save {r4, r5, lr}
stmdb sp!, {r4, r5, lr}
mov r2, r1 /* r2 = address */
mov r4, r0 /* r4 = the value */
@@ -204,6 +218,7 @@ android_atomic_or:
mov r0, r5
ldmia sp!, {r4, r5, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------
@@ -234,6 +249,8 @@ android_atomic_swap:
*/
android_atomic_cmpxchg:
+ .fnstart
+ .save {r4, lr}
stmdb sp!, {r4, lr}
mov r4, r0 /* r4 = save oldvalue */
1: @ android_atomic_cmpxchg
@@ -255,6 +272,7 @@ android_atomic_cmpxchg:
2: @ android_atomic_cmpxchg
ldmia sp!, {r4, lr}
bx lr
+ .fnend
/*
* ----------------------------------------------------------------------------