mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
power7 strncmp optimization
This commit is contained in:
parent
5025581e1c
commit
2270037782
@ -1,3 +1,9 @@
|
|||||||
|
2011-08-04 Will Schmidt <will_schmidt@vnet.ibm.com>
|
||||||
|
|
||||||
|
* sysdeps/powerpc/powerpc32/power7/strncmp.S: Adjust the alignment
|
||||||
|
and add nop instructions for throughput optimization.
|
||||||
|
* sysdeps/powerpc/powerpc64/power7/strncmp.S: Likewise.
|
||||||
|
|
||||||
2011-07-28 Will Schmidt <will_schmidt@vnet.ibm.com>
|
2011-07-28 Will Schmidt <will_schmidt@vnet.ibm.com>
|
||||||
|
|
||||||
* sysdeps/powerpc/powerpc32/power7/memcpy.S: Optimize the
|
* sysdeps/powerpc/powerpc32/power7/memcpy.S: Optimize the
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
const char *s2 [r4],
|
const char *s2 [r4],
|
||||||
size_t size [r5]) */
|
size_t size [r5]) */
|
||||||
|
|
||||||
EALIGN (BP_SYM(strncmp),4,0)
|
EALIGN (BP_SYM(strncmp),5,0)
|
||||||
|
|
||||||
#define rTMP r0
|
#define rTMP r0
|
||||||
#define rRTN r3
|
#define rRTN r3
|
||||||
@ -47,9 +47,11 @@ EALIGN (BP_SYM(strncmp),4,0)
|
|||||||
#define rBITDIF r11 /* bits that differ in s1 & s2 words */
|
#define rBITDIF r11 /* bits that differ in s1 & s2 words */
|
||||||
|
|
||||||
dcbt 0,rSTR1
|
dcbt 0,rSTR1
|
||||||
|
nop
|
||||||
or rTMP,rSTR2,rSTR1
|
or rTMP,rSTR2,rSTR1
|
||||||
lis r7F7F,0x7f7f
|
lis r7F7F,0x7f7f
|
||||||
dcbt 0,rSTR2
|
dcbt 0,rSTR2
|
||||||
|
nop
|
||||||
clrlwi. rTMP,rTMP,30
|
clrlwi. rTMP,rTMP,30
|
||||||
cmplwi cr1,rN,0
|
cmplwi cr1,rN,0
|
||||||
lis rFEFE,-0x101
|
lis rFEFE,-0x101
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
const char *s2 [r4],
|
const char *s2 [r4],
|
||||||
size_t size [r5]) */
|
size_t size [r5]) */
|
||||||
|
|
||||||
EALIGN (BP_SYM(strncmp),4,0)
|
EALIGN (BP_SYM(strncmp),5,0)
|
||||||
CALL_MCOUNT 3
|
CALL_MCOUNT 3
|
||||||
|
|
||||||
#define rTMP r0
|
#define rTMP r0
|
||||||
@ -48,9 +48,11 @@ EALIGN (BP_SYM(strncmp),4,0)
|
|||||||
#define rBITDIF r11 /* bits that differ in s1 & s2 words */
|
#define rBITDIF r11 /* bits that differ in s1 & s2 words */
|
||||||
|
|
||||||
dcbt 0,rSTR1
|
dcbt 0,rSTR1
|
||||||
|
nop
|
||||||
or rTMP,rSTR2,rSTR1
|
or rTMP,rSTR2,rSTR1
|
||||||
lis r7F7F,0x7f7f
|
lis r7F7F,0x7f7f
|
||||||
dcbt 0,rSTR2
|
dcbt 0,rSTR2
|
||||||
|
nop
|
||||||
clrldi. rTMP,rTMP,61
|
clrldi. rTMP,rTMP,61
|
||||||
cmpldi cr1,rN,0
|
cmpldi cr1,rN,0
|
||||||
lis rFEFE,-0x101
|
lis rFEFE,-0x101
|
||||||
|
Loading…
Reference in New Issue
Block a user