Some small speedups.
This commit is contained in:
parent
23c3a85872
commit
e47e6f0e30
|
@ -1,4 +1,4 @@
|
||||||
Sun Jul 7 01:23:45 2002 J"orn Rennecke <joern.rennecke@superh.com>
|
Mon Jul 8 13:55:23 2002 J"orn Rennecke <joern.rennecke@superh.com>
|
||||||
|
|
||||||
* libc/machine/sh/Makefile.am (lib_a_SOURCES):
|
* libc/machine/sh/Makefile.am (lib_a_SOURCES):
|
||||||
Make strcmp.S unconditional.
|
Make strcmp.S unconditional.
|
||||||
|
|
|
@ -55,14 +55,16 @@ ENTRY(strcmp)
|
||||||
pt loop,tr1
|
pt loop,tr1
|
||||||
bnei/u r8,0,tr0 // r23_zero
|
bnei/u r8,0,tr0 // r23_zero
|
||||||
pt found_zero,tr0
|
pt found_zero,tr0
|
||||||
ori r3,7,r3
|
addi r3,15,r3
|
||||||
addi r3,9,r3
|
andi r3,-8,r3
|
||||||
sub r3,r2,r3
|
sub r3,r2,r3
|
||||||
bne/l r7,r6,tr1 // loop
|
bne/l r7,r6,tr1 // loop
|
||||||
/* The strings are aligned to each other. */
|
/* The strings are aligned to each other. */
|
||||||
|
/* It is possible to have a loop with six cycles / iteration
|
||||||
|
by re-ordering the exit conditions, but then it needs extra
|
||||||
|
time and/or code to sort out the r4 != r5 case. */
|
||||||
pt al_loop,tr1
|
pt al_loop,tr1
|
||||||
pt al_found_zero,tr0
|
pt al_found_zero,tr0
|
||||||
addi r3,-8,r3
|
|
||||||
al_loop:
|
al_loop:
|
||||||
ld.q r2,8,r4
|
ld.q r2,8,r4
|
||||||
ldx.q r2,r3,r5
|
ldx.q r2,r3,r5
|
||||||
|
@ -103,8 +105,8 @@ cmp_quad:
|
||||||
blink tr2,r63
|
blink tr2,r63
|
||||||
found_zero:
|
found_zero:
|
||||||
pt zero_now,tr0
|
pt zero_now,tr0
|
||||||
mcmpeq.b r63,r5,r7
|
|
||||||
pt cmp_quad,tr1
|
pt cmp_quad,tr1
|
||||||
|
SHHI r9,r20,r7
|
||||||
bne/u r8,r7,tr0 // zero_now
|
bne/u r8,r7,tr0 // zero_now
|
||||||
bne/u r4,r5,tr1 // cmp_quad
|
bne/u r4,r5,tr1 // cmp_quad
|
||||||
SHLO r9,r22,r8
|
SHLO r9,r22,r8
|
||||||
|
|
Loading…
Reference in New Issue