.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
---|
1 | 2 | /* |
---|
2 | 3 | * linux/arch/arm/lib/memmove.S |
---|
3 | 4 | * |
---|
4 | 5 | * Author: Nicolas Pitre |
---|
5 | 6 | * Created: Sep 28, 2005 |
---|
6 | 7 | * Copyright: (C) MontaVista Software Inc. |
---|
7 | | - * |
---|
8 | | - * This program is free software; you can redistribute it and/or modify |
---|
9 | | - * it under the terms of the GNU General Public License version 2 as |
---|
10 | | - * published by the Free Software Foundation. |
---|
11 | 8 | */ |
---|
12 | 9 | |
---|
13 | 10 | #include <linux/linkage.h> |
---|
.. | .. |
---|
59 | 56 | blt 5f |
---|
60 | 57 | |
---|
61 | 58 | CALGN( ands ip, r0, #31 ) |
---|
62 | | - CALGN( sbcnes r4, ip, r2 ) @ C is always set here |
---|
| 59 | + CALGN( sbcsne r4, ip, r2 ) @ C is always set here |
---|
63 | 60 | CALGN( bcs 2f ) |
---|
64 | 61 | CALGN( adr r4, 6f ) |
---|
65 | 62 | CALGN( subs r2, r2, ip ) @ C is set here |
---|
.. | .. |
---|
114 | 111 | UNWIND( .save {r0, r4, lr} ) @ still in first stmfd block |
---|
115 | 112 | |
---|
116 | 113 | 8: movs r2, r2, lsl #31 |
---|
117 | | - ldrneb r3, [r1, #-1]! |
---|
118 | | - ldrcsb r4, [r1, #-1]! |
---|
119 | | - ldrcsb ip, [r1, #-1] |
---|
120 | | - strneb r3, [r0, #-1]! |
---|
121 | | - strcsb r4, [r0, #-1]! |
---|
122 | | - strcsb ip, [r0, #-1] |
---|
| 114 | + ldrbne r3, [r1, #-1]! |
---|
| 115 | + ldrbcs r4, [r1, #-1]! |
---|
| 116 | + ldrbcs ip, [r1, #-1] |
---|
| 117 | + strbne r3, [r0, #-1]! |
---|
| 118 | + strbcs r4, [r0, #-1]! |
---|
| 119 | + strbcs ip, [r0, #-1] |
---|
123 | 120 | ldmfd sp!, {r0, r4, pc} |
---|
124 | 121 | |
---|
125 | 122 | 9: cmp ip, #2 |
---|
126 | | - ldrgtb r3, [r1, #-1]! |
---|
127 | | - ldrgeb r4, [r1, #-1]! |
---|
| 123 | + ldrbgt r3, [r1, #-1]! |
---|
| 124 | + ldrbge r4, [r1, #-1]! |
---|
128 | 125 | ldrb lr, [r1, #-1]! |
---|
129 | | - strgtb r3, [r0, #-1]! |
---|
130 | | - strgeb r4, [r0, #-1]! |
---|
| 126 | + strbgt r3, [r0, #-1]! |
---|
| 127 | + strbge r4, [r0, #-1]! |
---|
131 | 128 | subs r2, r2, ip |
---|
132 | 129 | strb lr, [r0, #-1]! |
---|
133 | 130 | blt 8b |
---|
.. | .. |
---|
150 | 147 | blt 14f |
---|
151 | 148 | |
---|
152 | 149 | CALGN( ands ip, r0, #31 ) |
---|
153 | | - CALGN( sbcnes r4, ip, r2 ) @ C is always set here |
---|
| 150 | + CALGN( sbcsne r4, ip, r2 ) @ C is always set here |
---|
154 | 151 | CALGN( subcc r2, r2, ip ) |
---|
155 | 152 | CALGN( bcc 15f ) |
---|
156 | 153 | |
---|