Sun Aug 25 06:15:06 2013 UTC ()
move a misplaced #endif


(matt)
diff -r1.5 -r1.6 src/common/lib/libc/arch/arm/string/strrchr_arm.S

cvs diff -r1.5 -r1.6 src/common/lib/libc/arch/arm/string/strrchr_arm.S (expand / switch to unified diff)

--- src/common/lib/libc/arch/arm/string/strrchr_arm.S 2013/08/20 08:05:49 1.5
+++ src/common/lib/libc/arch/arm/string/strrchr_arm.S 2013/08/25 06:15:06 1.6
@@ -19,27 +19,27 @@ @@ -19,27 +19,27 @@
19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 * POSSIBILITY OF SUCH DAMAGE. 27 * POSSIBILITY OF SUCH DAMAGE.
28 */ 28 */
29 29
30#include <machine/asm.h> 30#include <machine/asm.h>
31 31
32RCSID("$NetBSD: strrchr_arm.S,v 1.5 2013/08/20 08:05:49 matt Exp $") 32RCSID("$NetBSD: strrchr_arm.S,v 1.6 2013/08/25 06:15:06 matt Exp $")
33 33
34#ifdef __ARMEL__ 34#ifdef __ARMEL__
35#define BYTE0 0x000000ff 35#define BYTE0 0x000000ff
36#define BYTE1 0x0000ff00 36#define BYTE1 0x0000ff00
37#define BYTE2 0x00ff0000 37#define BYTE2 0x00ff0000
38#define BYTE3 0xff000000 38#define BYTE3 0xff000000
39#define lshi lsl 39#define lshi lsl
40#define lshis lsls 40#define lshis lsls
41#else 41#else
42#define BYTE0 0xff000000 42#define BYTE0 0xff000000
43#define BYTE1 0x00ff0000 43#define BYTE1 0x00ff0000
44#define BYTE2 0x0000ff00 44#define BYTE2 0x0000ff00
45#define BYTE3 0x000000ff 45#define BYTE3 0x000000ff
@@ -54,28 +54,28 @@ ENTRY(strrchr) @@ -54,28 +54,28 @@ ENTRY(strrchr)
54 bl PLT_SYM(strlen) /* get length */ 54 bl PLT_SYM(strlen) /* get length */
55 pop {r1, r2} /* restore pointer / return addr */ 55 pop {r1, r2} /* restore pointer / return addr */
56 adds r0, r0, r1 /* add pointer to length */ 56 adds r0, r0, r1 /* add pointer to length */
57 RETr(r2) /* return */ 57 RETr(r2) /* return */
58 58
591: mov r1, r0 /* we use r0 at the return value */ 591: mov r1, r0 /* we use r0 at the return value */
60 movs r0, #0 /* return NULL by default */ 60 movs r0, #0 /* return NULL by default */
612: tst r1, #3 /* test for word alignment */ 612: tst r1, #3 /* test for word alignment */
62 beq .Lpre_main_loop /* finally word aligned */ 62 beq .Lpre_main_loop /* finally word aligned */
63 ldrb r3, [r1], #1 /* load a byte */ 63 ldrb r3, [r1], #1 /* load a byte */
64 cmp r3, r2 /* did it match? */ 64 cmp r3, r2 /* did it match? */
65#ifdef __thumb__ 65#ifdef __thumb__
66 it eq 66 it eq
67 subeq r0, r1, #1 /* yes, remember that it did */ 
68#endif 67#endif
 68 subeq r0, r1, #1 /* yes, remember that it did */
69 cmp r3, #0 /* was it NUL? */ 69 cmp r3, #0 /* was it NUL? */
70 bne 2b /* no, try next byte */ 70 bne 2b /* no, try next byte */
71 RET /* return */ 71 RET /* return */
72.Lpre_main_loop: 72.Lpre_main_loop:
73 push {r4, r5} /* save some registers */ 73 push {r4, r5} /* save some registers */
74#if defined(_ARM_ARCH_7) 74#if defined(_ARM_ARCH_7)
75 movw ip, #0xfefe /* magic constant; 254 in each byte */ 75 movw ip, #0xfefe /* magic constant; 254 in each byte */
76 movt ip, #0xfefe /* magic constant; 254 in each byte */ 76 movt ip, #0xfefe /* magic constant; 254 in each byte */
77#elif defined(_ARM_ARCH_6) 77#elif defined(_ARM_ARCH_6)
78 mov ip, #0xfe /* put 254 in low byte */ 78 mov ip, #0xfe /* put 254 in low byte */
79 orr ip, ip, ip, lsl #8 /* move to next byte */ 79 orr ip, ip, ip, lsl #8 /* move to next byte */
80 orr ip, ip, ip, lsl #16 /* move to next halfword */ 80 orr ip, ip, ip, lsl #16 /* move to next halfword */
81#endif /* _ARM_ARCH_6 */ 81#endif /* _ARM_ARCH_6 */