Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21ec779a authored by Ben Cheng's avatar Ben Cheng Committed by Andy McFadden
Browse files

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

For bug 2182296.

Eclair branch Dr. No approved by: hiroshi
parent 065694b3
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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

/*
 * ----------------------------------------------------------------------------