Module Name: src Committed By: rin Date: Wed Jun 30 00:00:49 UTC 2021
Modified Files: src/lib/libc/arch/arm/gen: swapcontext.S src/lib/libc/arch/arm/sys: __clone.S Log Message: Fix previous. For Thumb-1: - sp cannot be manipulated directly - {add,sub}s should be used instead of {add,sub} To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/lib/libc/arch/arm/gen/swapcontext.S cvs rdiff -u -r1.10 -r1.11 src/lib/libc/arch/arm/sys/__clone.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/arch/arm/gen/swapcontext.S diff -u src/lib/libc/arch/arm/gen/swapcontext.S:1.16 src/lib/libc/arch/arm/gen/swapcontext.S:1.17 --- src/lib/libc/arch/arm/gen/swapcontext.S:1.16 Tue Jun 29 23:29:12 2021 +++ src/lib/libc/arch/arm/gen/swapcontext.S Wed Jun 30 00:00:49 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: swapcontext.S,v 1.16 2021/06/29 23:29:12 rin Exp $ */ +/* $NetBSD: swapcontext.S,v 1.17 2021/06/30 00:00:49 rin Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -33,7 +33,7 @@ #include "assym.h" #if defined(LIBC_SCCS) && !defined(lint) - RCSID("$NetBSD: swapcontext.S,v 1.16 2021/06/29 23:29:12 rin Exp $") + RCSID("$NetBSD: swapcontext.S,v 1.17 2021/06/30 00:00:49 rin Exp $") #endif /* LIBC_SCCS && !lint */ ENTRY(swapcontext) @@ -85,9 +85,13 @@ ENTRY(swapcontext) b PLT_SYM(_C_LABEL(setcontext)) #else push {lr} - sub sp, #4 + mov r1, sp + subs r1, #4 + mov sp, r1 bl PLT_SYM(_C_LABEL(setcontext)) - add sp, #4 + mov r1, sp + adds r1, #4 + mov sp, r1 pop {pc} #endif #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__) Index: src/lib/libc/arch/arm/sys/__clone.S diff -u src/lib/libc/arch/arm/sys/__clone.S:1.10 src/lib/libc/arch/arm/sys/__clone.S:1.11 --- src/lib/libc/arch/arm/sys/__clone.S:1.10 Tue Jun 29 23:29:12 2021 +++ src/lib/libc/arch/arm/sys/__clone.S Wed Jun 30 00:00:49 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: __clone.S,v 1.10 2021/06/29 23:29:12 rin Exp $ */ +/* $NetBSD: __clone.S,v 1.11 2021/06/30 00:00:49 rin Exp $ */ /* * Copyright (c) 2001 Christopher Gilbert @@ -122,9 +122,13 @@ ENTRY(__clone) #else .Lcerror: push {lr} - sub sp, #4 + mov r1, sp + subs r1, #4 + mov sp, r1 bl CERROR - add sp, #4 + mov r1, sp + adds r1, #4 + mov sp, r1 pop {pc} #endif END(__clone)