summaryrefslogtreecommitdiffstats
path: root/libcutils
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2009-10-13 09:58:49 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2009-10-13 09:58:49 -0700
commit22f9d880941cf1db87fd19437bce71420eedf8bd (patch)
tree259784eabb51ae682c5f89491978eca29fd38448 /libcutils
parent96b6bf3e923e23d695c1322fc41a57c9346b3e90 (diff)
parent8a0a5274ff37cbf3acad0199735a05e5fe3b5c9d (diff)
downloadsystem_core-22f9d880941cf1db87fd19437bce71420eedf8bd.zip
system_core-22f9d880941cf1db87fd19437bce71420eedf8bd.tar.gz
system_core-22f9d880941cf1db87fd19437bce71420eedf8bd.tar.bz2
am 8a0a5274: Add stack unwinding directives to atomic-android-arm.S.
Merge commit '8a0a5274ff37cbf3acad0199735a05e5fe3b5c9d' into eclair-mr2-plus-aosp * commit '8a0a5274ff37cbf3acad0199735a05e5fe3b5c9d': 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 4da6195..da5c26b 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
/*
* ----------------------------------------------------------------------------