strcmp.S (e5451c8f8330e03ad3cfa16048b4daf961af434f) | strcmp.S (86effd0dc675c36caed7b954d7f4f63b77c353b5) |
---|---|
1/* 2 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 9/* This is optimized primarily for the ARC700. 10 It would be possible to speed up the loops by one cycle / word 11 respective one cycle / byte by forcing double source 1 alignment, unrolling 12 by a factor of two, and speculatively loading the second word / byte of 13 source 1; however, that would increase the overhead for loop setup / finish, 14 and strcmp might often terminate early. */ 15 16#include <linux/linkage.h> 17 | 1/* 2 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 9/* This is optimized primarily for the ARC700. 10 It would be possible to speed up the loops by one cycle / word 11 respective one cycle / byte by forcing double source 1 alignment, unrolling 12 by a factor of two, and speculatively loading the second word / byte of 13 source 1; however, that would increase the overhead for loop setup / finish, 14 and strcmp might often terminate early. */ 15 16#include <linux/linkage.h> 17 |
18ENTRY(strcmp) | 18ENTRY_CFI(strcmp) |
19 or r2,r0,r1 20 bmsk_s r2,r2,1 21 brne r2,0,.Lcharloop 22 mov_s r12,0x01010101 23 ror r5,r12 24.Lwordloop: 25 ld.ab r2,[r0,4] 26 ld.ab r3,[r1,4] --- 61 unchanged lines hidden (view full) --- 88 ldb.ab r2,[r0,1] 89 ldb.ab r3,[r1,1] 90 nop_s 91 breq r2,0,.Lcmpend 92 breq r2,r3,.Lcharloop 93.Lcmpend: 94 j_s.d [blink] 95 sub r0,r2,r3 | 19 or r2,r0,r1 20 bmsk_s r2,r2,1 21 brne r2,0,.Lcharloop 22 mov_s r12,0x01010101 23 ror r5,r12 24.Lwordloop: 25 ld.ab r2,[r0,4] 26 ld.ab r3,[r1,4] --- 61 unchanged lines hidden (view full) --- 88 ldb.ab r2,[r0,1] 89 ldb.ab r3,[r1,1] 90 nop_s 91 breq r2,0,.Lcmpend 92 breq r2,r3,.Lcharloop 93.Lcmpend: 94 j_s.d [blink] 95 sub r0,r2,r3 |
96END(strcmp) | 96END_CFI(strcmp) |