This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new f8f6bfff29 use r1-r3 as tmp register
f8f6bfff29 is described below

commit f8f6bfff290cd6b30188b15c801328e10abee5f8
Author: zhanghu5 <[email protected]>
AuthorDate: Tue Jan 2 20:35:29 2024 +0800

    use r1-r3 as tmp register
    
    Signed-off-by: zhanghu5 <[email protected]>
---
 libs/libc/machine/arm/gnu/arch_setjmp.S | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/libs/libc/machine/arm/gnu/arch_setjmp.S 
b/libs/libc/machine/arm/gnu/arch_setjmp.S
index 63284d8784..c4a26fcb93 100644
--- a/libs/libc/machine/arm/gnu/arch_setjmp.S
+++ b/libs/libc/machine/arm/gnu/arch_setjmp.S
@@ -78,13 +78,14 @@ setjmp:
 #ifdef CONFIG_ARCH_ARMV6M
        stmia           r0!, {r4-r7}                    /* Save R4 ~ R7 */
 
-       mov             r2, r8
-       mov             r3, r9
-       mov             r4, r10
-       mov             r5, r11
-       mov             r6, ip
-       mov             r7, lr
-       stmia           r0!, {r2-r7}                    /* Save R8 ~ R11, IP, 
LR */
+       mov             r1, r8
+       mov             r2, r9
+       mov             r3, r10
+       stmia           r0!, {r1-r3}                    /* Save R8 ~ R10 */
+       mov             r1, r11
+       mov             r2, ip
+       mov             r3, lr
+       stmia           r0!, {r1-r3}                    /* Save R11, IP, LR */
 #else
        stmia           r0!, {r4-r11, ip, lr}
 #endif
@@ -142,15 +143,13 @@ longjmp:
 #ifdef CONFIG_ARCH_ARMV6M
        ldmia           r0!, {r4-r7}                    /* Restore R4 ~ R7 */
 
-       ldmia           r0!, {r2-r3}                    /* Restore R8, R9 */
-       mov             r8, r2
-       mov             r9, r3
+       ldmia           r0!, {r1-r3}                    /* Restore R8 ~ R10 */
+       mov             r8, r1
+       mov             r9, r2
+       mov             r10, r3
 
-       ldmia           r0!, {r2-r3}                    /* Restore R10, R11 */
-       mov             r10, r2
-       mov             r11, r3
-
-       ldmia           r0!, {r2-r3}                    /* Restore IP, LR */
+       ldmia           r0!, {r1-r3}                    /* Restore R11, IP, LR 
*/
+       mov             r11, r1
        mov             ip, r2
        mov             lr, r3
 #else

Reply via email to