Make sp 8 byte aligned in invokeNative on ARM (#697)

Make sp 8 byte aligned in invokeNative assembly on ARM.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
This commit is contained in:
Huang Qi 2021-08-18 10:21:38 +08:00 committed by GitHub
parent db695fada4
commit 6a7fd3e688
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 0 deletions

View File

@ -22,6 +22,7 @@ _invokeNative:
*/
stmfd sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4 /* make sp 8 byte aligned */
mov ip, r0 /* ip = function ptr */
mov r4, r1 /* r4 = argv */
mov r5, r2 /* r5 = nstacks */
@ -79,6 +80,7 @@ call_func:
mov sp, r6 /* restore sp */
return:
add sp, sp, #4 /* make sp 8 byte aligned */
ldmfd sp!, {r4, r5, r6, r7, lr}
bx lr

View File

@ -23,6 +23,7 @@ _invokeNative:
push {r4, r5, r6, r7}
push {lr}
sub sp, sp, #4 /* make sp 8 byte aligned */
mov ip, r0 /* ip = function ptr */
mov r4, r1 /* r4 = argv */
mov r5, r2 /* r5 = argc */
@ -83,6 +84,7 @@ call_func:
add sp, sp, r6 /* restore sp */
return:
add sp, sp, #4 /* make sp 8 byte aligned */
pop {r3}
pop {r4, r5, r6, r7}
mov lr, r3

View File

@ -23,6 +23,7 @@ _invokeNative:
push {r4, r5, r6, r7}
push {lr}
sub sp, sp, #4 /* make sp 8 byte aligned */
mov ip, r0 /* ip = function ptr */
mov r4, r1 /* r4 = argv */
mov r5, r2 /* r5 = nstacks */
@ -91,6 +92,7 @@ call_func:
mov sp, r7 /* restore sp */
return:
add sp, sp, #4 /* make sp 8 byte aligned */
pop {r3}
pop {r4, r5, r6, r7}
mov lr, r3