]> sourceware.org Git - newlib-cygwin.git/commitdiff
* libc/machine/sh/strcpy.S (strcpy): make sure r0 has right value
authorJoern Rennecke <joern.rennecke@embecosm.com>
Thu, 16 May 2002 17:29:15 +0000 (17:29 +0000)
committerJoern Rennecke <joern.rennecke@embecosm.com>
Thu, 16 May 2002 17:29:15 +0000 (17:29 +0000)
at first loop exit point.

newlib/ChangeLog
newlib/libc/machine/sh/strcpy.S

index a19ea6d6f03f9578c733494beda206fd65ce7b2b..0bb6003b62f22707849cb7e0604bae0753804ecd 100644 (file)
@@ -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
-       __LITTLE_ENDIAN__.
+       __LITTLE_ENDIAN__.  make sure r0 has right value at first loop
+       exit point.
 
 2002-05-15  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
index 774f542c6848ad1863c2cd8321ce4fbc5f14b83d..fa41cd2a5d706262424762555e8c891c08fa392b 100644 (file)
@@ -14,7 +14,7 @@ ENTRY(strcpy)
        ldlo.q r3,0,r4
        ptabs r18,tr4
        shlli r3,3,r7
-       add r2,r63,r0
+       addi r2, 8, r0
        mcmpeq.b r4,r63,r6
        SHHI r6,r7,r6
        bnei/u r6,0,tr1 // shortstring
@@ -38,6 +38,7 @@ ENTRY(strcpy)
        beqi/l r6, 0, tr0 // loop
 
        add r5, r63, r4
+       addi r0, 8, r0
        blink tr1, r63 // shortstring
 no_lddst:
        stlo.q r2, 0, r4
@@ -46,13 +47,14 @@ no_lddst:
        beqi/l r6, 0, tr0 // loop
 
        add r5, r63, r4
+       addi r0, 8, r0
 shortstring:
 #ifndef __LITTLE_ENDIAN__
        pta/l shortstring2,tr1
        byterev r4,r4
 #endif
 shortstring2:
-       st.b r0,0,r4
+       st.b r0,-8,r4
        andi r4,0xff,r5
        shlri r4,8,r4
        addi r0,1,r0
@@ -74,6 +76,7 @@ loop:
        beqi/l r6, 0, tr0 // loop
 
        add r5, r63, r4
+       addi r0, 8, r0
        blink tr1, r63 // shortstring
 
 #else /* ! __SHMEDIA__, i.e. SH 1..4 / SHcompact */
This page took 0.042154 seconds and 5 git commands to generate.