/[avr-libc]/avr-libc/libc/pmstring/strncat_P.S
ViewVC logotype

Diff of /avr-libc/libc/pmstring/strncat_P.S

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by joerg_wunsch, Tue Sep 13 13:29:54 2005 UTC revision 1.4 by aesok, Tue Nov 8 16:19:51 2005 UTC
# Line 27  Line 27 
27    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28    POSSIBILITY OF SUCH DAMAGE. */    POSSIBILITY OF SUCH DAMAGE. */
29    
30    /* $Id$ */
31    
32  #include "macros.inc"  #include "macros.inc"
33    
34  #define dest_hi r25  #define dest_hi r25
# Line 53  Line 55 
55          .type   _U(strncat_P), @function          .type   _U(strncat_P), @function
56                    
57  _U(strncat_P):  _U(strncat_P):
58          LOAD_Z(src_lo, src_hi)          X_movw  ZL, src_lo
59          LOAD_X(dest_lo, dest_hi)          X_movw  XL, dest_lo
60  .strncat_P_skip:  .L_strncat_P_skip:
61          ld      __tmp_reg__, X+          ld      __tmp_reg__, X+
62          tst     __tmp_reg__          tst     __tmp_reg__
63          brne    .strncat_P_skip          brne    .L_strncat_P_skip
64          sbiw    XL, 1           ; undo post-increment (point the the NUL)          sbiw    XL, 1           ; undo post-increment (point the the NUL)
65  .strncat_P_loop:  .L_strncat_P_loop:
66          subi    len_lo, lo8(1)          subi    len_lo, lo8(1)
67          sbci    len_hi, hi8(1)          sbci    len_hi, hi8(1)
68          brcs    .strncat_P_done          brcs    .L_strncat_P_done
69          LPM_R0_ZP          LPM_R0_ZP
70          tst     __tmp_reg__          tst     __tmp_reg__
71          st      X+, __tmp_reg__          st      X+, __tmp_reg__
72          brne    .strncat_P_loop          brne    .L_strncat_P_loop
73  ; return dest (unchanged)  ; return dest (unchanged)
74          ret          ret
75  .strncat_P_done:  .L_strncat_P_done:
76          st      X, __zero_reg__          st      X, __zero_reg__
77  ; return dest (unchanged)  ; return dest (unchanged)
78          ret          ret
79  .strncat_P_end:  .L_strncat_P_end:
80          .size   _U(strncat_P), .strncat_P_end - _U(strncat_P)          .size   _U(strncat_P), .L_strncat_P_end - _U(strncat_P)
81    
82  #endif /* not __DOXYGEN__ */  #endif /* not __DOXYGEN__ */

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26