* libc/machine/sh/strcpy.S (strcpy): make sure r0 has right value
at first loop exit point.
This commit is contained in:
parent
d7a2f413bc
commit
6935231fde
@ -1,7 +1,8 @@
|
|||||||
Thu May 16 16:12:00 2002 J"orn Rennecke <joern.rennecke@superh.com>
|
Thu May 16 17:24:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
|
||||||
|
|
||||||
* libc/machine/sh/strcpy.S (strcpy): Replace LITTLE_ENDIAN with
|
* libc/machine/sh/strcpy.S (strcpy): Replace LITTLE_ENDIAN with
|
||||||
__LITTLE_ENDIAN__.
|
__LITTLE_ENDIAN__. make sure r0 has right value at first loop
|
||||||
|
exit point.
|
||||||
|
|
||||||
2002-05-15 Thomas Fitzsimmons <fitzsim@redhat.com>
|
2002-05-15 Thomas Fitzsimmons <fitzsim@redhat.com>
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ ENTRY(strcpy)
|
|||||||
ldlo.q r3,0,r4
|
ldlo.q r3,0,r4
|
||||||
ptabs r18,tr4
|
ptabs r18,tr4
|
||||||
shlli r3,3,r7
|
shlli r3,3,r7
|
||||||
add r2,r63,r0
|
addi r2, 8, r0
|
||||||
mcmpeq.b r4,r63,r6
|
mcmpeq.b r4,r63,r6
|
||||||
SHHI r6,r7,r6
|
SHHI r6,r7,r6
|
||||||
bnei/u r6,0,tr1 // shortstring
|
bnei/u r6,0,tr1 // shortstring
|
||||||
@ -38,6 +38,7 @@ ENTRY(strcpy)
|
|||||||
beqi/l r6, 0, tr0 // loop
|
beqi/l r6, 0, tr0 // loop
|
||||||
|
|
||||||
add r5, r63, r4
|
add r5, r63, r4
|
||||||
|
addi r0, 8, r0
|
||||||
blink tr1, r63 // shortstring
|
blink tr1, r63 // shortstring
|
||||||
no_lddst:
|
no_lddst:
|
||||||
stlo.q r2, 0, r4
|
stlo.q r2, 0, r4
|
||||||
@ -46,13 +47,14 @@ no_lddst:
|
|||||||
beqi/l r6, 0, tr0 // loop
|
beqi/l r6, 0, tr0 // loop
|
||||||
|
|
||||||
add r5, r63, r4
|
add r5, r63, r4
|
||||||
|
addi r0, 8, r0
|
||||||
shortstring:
|
shortstring:
|
||||||
#ifndef __LITTLE_ENDIAN__
|
#ifndef __LITTLE_ENDIAN__
|
||||||
pta/l shortstring2,tr1
|
pta/l shortstring2,tr1
|
||||||
byterev r4,r4
|
byterev r4,r4
|
||||||
#endif
|
#endif
|
||||||
shortstring2:
|
shortstring2:
|
||||||
st.b r0,0,r4
|
st.b r0,-8,r4
|
||||||
andi r4,0xff,r5
|
andi r4,0xff,r5
|
||||||
shlri r4,8,r4
|
shlri r4,8,r4
|
||||||
addi r0,1,r0
|
addi r0,1,r0
|
||||||
@ -74,6 +76,7 @@ loop:
|
|||||||
beqi/l r6, 0, tr0 // loop
|
beqi/l r6, 0, tr0 // loop
|
||||||
|
|
||||||
add r5, r63, r4
|
add r5, r63, r4
|
||||||
|
addi r0, 8, r0
|
||||||
blink tr1, r63 // shortstring
|
blink tr1, r63 // shortstring
|
||||||
|
|
||||||
#else /* ! __SHMEDIA__, i.e. SH 1..4 / SHcompact */
|
#else /* ! __SHMEDIA__, i.e. SH 1..4 / SHcompact */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user