mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-12 20:51:21 +00:00
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:
parent
db695fada4
commit
6a7fd3e688
|
@ -22,6 +22,7 @@ _invokeNative:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
stmfd sp!, {r4, r5, r6, r7, lr}
|
stmfd sp!, {r4, r5, r6, r7, lr}
|
||||||
|
sub sp, sp, #4 /* make sp 8 byte aligned */
|
||||||
mov ip, r0 /* ip = function ptr */
|
mov ip, r0 /* ip = function ptr */
|
||||||
mov r4, r1 /* r4 = argv */
|
mov r4, r1 /* r4 = argv */
|
||||||
mov r5, r2 /* r5 = nstacks */
|
mov r5, r2 /* r5 = nstacks */
|
||||||
|
@ -79,6 +80,7 @@ call_func:
|
||||||
mov sp, r6 /* restore sp */
|
mov sp, r6 /* restore sp */
|
||||||
|
|
||||||
return:
|
return:
|
||||||
|
add sp, sp, #4 /* make sp 8 byte aligned */
|
||||||
ldmfd sp!, {r4, r5, r6, r7, lr}
|
ldmfd sp!, {r4, r5, r6, r7, lr}
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ _invokeNative:
|
||||||
|
|
||||||
push {r4, r5, r6, r7}
|
push {r4, r5, r6, r7}
|
||||||
push {lr}
|
push {lr}
|
||||||
|
sub sp, sp, #4 /* make sp 8 byte aligned */
|
||||||
mov ip, r0 /* ip = function ptr */
|
mov ip, r0 /* ip = function ptr */
|
||||||
mov r4, r1 /* r4 = argv */
|
mov r4, r1 /* r4 = argv */
|
||||||
mov r5, r2 /* r5 = argc */
|
mov r5, r2 /* r5 = argc */
|
||||||
|
@ -83,6 +84,7 @@ call_func:
|
||||||
add sp, sp, r6 /* restore sp */
|
add sp, sp, r6 /* restore sp */
|
||||||
|
|
||||||
return:
|
return:
|
||||||
|
add sp, sp, #4 /* make sp 8 byte aligned */
|
||||||
pop {r3}
|
pop {r3}
|
||||||
pop {r4, r5, r6, r7}
|
pop {r4, r5, r6, r7}
|
||||||
mov lr, r3
|
mov lr, r3
|
||||||
|
|
|
@ -23,6 +23,7 @@ _invokeNative:
|
||||||
|
|
||||||
push {r4, r5, r6, r7}
|
push {r4, r5, r6, r7}
|
||||||
push {lr}
|
push {lr}
|
||||||
|
sub sp, sp, #4 /* make sp 8 byte aligned */
|
||||||
mov ip, r0 /* ip = function ptr */
|
mov ip, r0 /* ip = function ptr */
|
||||||
mov r4, r1 /* r4 = argv */
|
mov r4, r1 /* r4 = argv */
|
||||||
mov r5, r2 /* r5 = nstacks */
|
mov r5, r2 /* r5 = nstacks */
|
||||||
|
@ -91,6 +92,7 @@ call_func:
|
||||||
mov sp, r7 /* restore sp */
|
mov sp, r7 /* restore sp */
|
||||||
|
|
||||||
return:
|
return:
|
||||||
|
add sp, sp, #4 /* make sp 8 byte aligned */
|
||||||
pop {r3}
|
pop {r3}
|
||||||
pop {r4, r5, r6, r7}
|
pop {r4, r5, r6, r7}
|
||||||
mov lr, r3
|
mov lr, r3
|
||||||
|
|
Loading…
Reference in New Issue
Block a user