strchr-700.S (e5451c8f8330e03ad3cfa16048b4daf961af434f) | strchr-700.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/* ARC700 has a relatively long pipeline and branch prediction, so we want 10 to avoid branches that are hard to predict. On the other hand, the 11 presence of the norm instruction makes it easier to operate on whole 12 words branch-free. */ 13 14#include <linux/linkage.h> 15 | 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/* ARC700 has a relatively long pipeline and branch prediction, so we want 10 to avoid branches that are hard to predict. On the other hand, the 11 presence of the norm instruction makes it easier to operate on whole 12 words branch-free. */ 13 14#include <linux/linkage.h> 15 |
16ENTRY(strchr) | 16ENTRY_CFI(strchr) |
17 extb_s r1,r1 18 asl r5,r1,8 19 bmsk r2,r0,1 20 or r5,r5,r1 21 mov_s r3,0x01010101 22 breq.d r2,r0,.Laligned 23 asl r4,r5,16 24 sub_s r0,r0,r2 --- 100 unchanged lines hidden (view full) --- 125 126 add.pl r3,r3,1 127 asr_s r12,r3,3 128 asl.f 0,r2,r3 129 add_s r0,r0,r12 130 j_s.d [blink] 131 mov.mi r0,0 132#endif /* ENDIAN */ | 17 extb_s r1,r1 18 asl r5,r1,8 19 bmsk r2,r0,1 20 or r5,r5,r1 21 mov_s r3,0x01010101 22 breq.d r2,r0,.Laligned 23 asl r4,r5,16 24 sub_s r0,r0,r2 --- 100 unchanged lines hidden (view full) --- 125 126 add.pl r3,r3,1 127 asr_s r12,r3,3 128 asl.f 0,r2,r3 129 add_s r0,r0,r12 130 j_s.d [blink] 131 mov.mi r0,0 132#endif /* ENDIAN */ |
133END(strchr) | 133END_CFI(strchr) |