This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
[PATCH] Replace insns in ARMv6-M setjmp impl with flag-setting variants
- From: Christos Gentsos <christos dot gentsos at cern dot ch>
- To: <newlib at sourceware dot org>
- Date: Mon, 30 Sep 2019 17:15:59 +0200
- Subject: [PATCH] Replace insns in ARMv6-M setjmp impl with flag-setting variants
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 188.184.36.48) smtp.rcpttodomain=sourceware.org smtp.mailfrom=cern.ch; dmarc=bestguesspass action=none header.from=cern.ch; dkim=none (message not signed); arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ROof66qg1hbK4w3SivASZQqCMV5GGTNIvMc06FPz7Is=; b=nKdpYdSKs4AT5uXcQ7djC5w6Tvthylq4Iw6nFTzNz2pwqW3DnFZd9M5JySMgRd7OSV+EYsb2x/1gb3H7A8PEghHykUsx2kuQukPKUoFHtwmrl8gzCH1xQFW0mEZknm1+3vVnIWhVtYUsn/8L3NyIfkScx4kVQCJ1JT202i6Yo1wJ5Iw/TsVOZy6vIRAeIcWfoQj0gQw5dEHT99lrURE/MpHud5axhU3c9CRRfAfVTrDsWzj7rg+QNz1ovxYcB1p3Zy5WDSfRHk/DWYqwKclbu7Hs0xqW7Al+gxUZUL7DchUIxR6h8QZ1TDLf1PxulhOxNqhsF1DXC2MxYJRvIR1EFg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h1+8CilUkaG+pXOSYNl8+KtQzskDyTvX8VDrNZXR8/kesdqRYhAhszAruWoACm9xhrb4hhEselkGl83nKgaBk2gC8ajjM+RXuWt2qDX7+4l1usUtDM5/uP66BjG7+oPJKjZIwyO31ry3O68N/fI6HIvU4kDhMC+xfFLs7VlmLg2Ikh3dj79u3grWxsnB35D3OLbNm3uZFxlITpjSOf1t33ERdpm0iS5hMnb/XogCLEte8edzMSZVSudDKE6b70HsXpyFByBYgGl2UPgEpXTip1ZMxTEykQzIJHUMEP2mHzAMZIaUD8hMLOQ/8iNOH9eeXO4xarqkxSyRKsIU1cQX+g==
In the ARMv6-M Thumb instruction set the MOV, ADD and SUB instructions
don't support flag-preserving variants for their 8-bit immediate
forms.
---
newlib/libc/machine/arm/setjmp.S | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/newlib/libc/machine/arm/setjmp.S b/newlib/libc/machine/arm/setjmp.S
index 1ba711d5..b8511779 100644
--- a/newlib/libc/machine/arm/setjmp.S
+++ b/newlib/libc/machine/arm/setjmp.S
@@ -74,11 +74,11 @@ SYM (setjmp):
mov r5, sp
mov r6, lr
stmia r0!, {r1, r2, r3, r4, r5, r6}
- sub r0, r0, #40
+ subs r0, r0, #40
/* Restore callee-saved low regs. */
ldmia r0!, {r4, r5, r6, r7}
/* Return zero. */
- mov r0, #0
+ movs r0, #0
bx lr
.thumb_func
@@ -86,7 +86,7 @@ SYM (setjmp):
TYPE (longjmp)
SYM (longjmp):
/* Restore High regs. */
- add r0, r0, #16
+ adds r0, r0, #16
ldmia r0!, {r2, r3, r4, r5, r6}
mov r8, r2
mov r9, r3
@@ -95,12 +95,12 @@ SYM (longjmp):
mov sp, r6
ldmia r0!, {r3} /* lr */
/* Restore low regs. */
- sub r0, r0, #40
+ subs r0, r0, #40
ldmia r0!, {r4, r5, r6, r7}
/* Return the result argument, or 1 if it is zero. */
mov r0, r1
bne 1f
- mov r0, #1
+ movs r0, #1
1:
bx r3
--
2.23.0