diff options
author | Ben Cheng <bccheng@google.com> | 2009-10-12 16:51:23 -0700 |
---|---|---|
committer | Andy McFadden <fadden@android.com> | 2009-10-21 10:47:31 -0700 |
commit | 21ec779abe2df0c2e9e170a40c8cf7c2f2eb4ac9 (patch) | |
tree | 293b0c5e3a8ebbfc372ee31b0c57c324176f632a /libcutils | |
parent | 065694b32e481a50e57a793d61181494fbf6ef04 (diff) | |
download | system_core-21ec779abe2df0c2e9e170a40c8cf7c2f2eb4ac9.zip system_core-21ec779abe2df0c2e9e170a40c8cf7c2f2eb4ac9.tar.gz system_core-21ec779abe2df0c2e9e170a40c8cf7c2f2eb4ac9.tar.bz2 |
Add stack unwinding directives to atomic-android-arm.S.
For bug 2182296.
Eclair branch Dr. No approved by: hiroshi
Diffstat (limited to 'libcutils')
-rw-r--r-- | libcutils/atomic-android-arm.S | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libcutils/atomic-android-arm.S b/libcutils/atomic-android-arm.S index f4299fd..7befd78 100644 --- a/libcutils/atomic-android-arm.S +++ b/libcutils/atomic-android-arm.S @@ -66,6 +66,8 @@ android_atomic_write: */ android_atomic_inc: + .fnstart + .save {r4, lr} stmdb sp!, {r4, lr} mov r2, r0 1: @ android_atomic_inc @@ -85,6 +87,7 @@ android_atomic_inc: sub r0, r1, #1 ldmia sp!, {r4, lr} bx lr + .fnend /* * ---------------------------------------------------------------------------- @@ -94,6 +97,8 @@ android_atomic_inc: */ android_atomic_dec: + .fnstart + .save {r4, lr} stmdb sp!, {r4, lr} mov r2, r0 1: @ android_atomic_dec @@ -113,6 +118,7 @@ android_atomic_dec: add r0, r1, #1 ldmia sp!, {r4, lr} bx lr + .fnend /* * ---------------------------------------------------------------------------- @@ -122,6 +128,8 @@ android_atomic_dec: */ android_atomic_add: + .fnstart + .save {r4, lr} stmdb sp!, {r4, lr} mov r2, r1 mov r4, r0 @@ -142,6 +150,7 @@ android_atomic_add: sub r0, r1, r4 ldmia sp!, {r4, lr} bx lr + .fnend /* @@ -152,6 +161,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 */ @@ -174,6 +185,7 @@ android_atomic_and: mov r0, r5 ldmia sp!, {r4, r5, lr} bx lr + .fnend /* * ---------------------------------------------------------------------------- @@ -183,6 +195,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 */ @@ -205,6 +219,7 @@ android_atomic_or: mov r0, r5 ldmia sp!, {r4, r5, lr} bx lr + .fnend /* * ---------------------------------------------------------------------------- @@ -228,6 +243,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 @@ -249,6 +266,7 @@ android_atomic_cmpxchg: 2: @ android_atomic_cmpxchg ldmia sp!, {r4, lr} bx lr + .fnend /* * ---------------------------------------------------------------------------- |