Add stack unwinding directives to atomic-android-arm.S.

For bug 2182296.

Eclair branch Dr. No approved by: hiroshi
This commit is contained in:
Ben Cheng 2009-10-12 16:51:23 -07:00 committed by Andy McFadden
parent 065694b32e
commit 21ec779abe

View file

@ -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
/*
* ----------------------------------------------------------------------------