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

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

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

revision 1.4 by joerg_wunsch, Tue Sep 13 13:29:54 2005 UTC revision 1.5 by aesok, Tue Nov 8 16:19:51 2005 UTC
# Line 26  Line 26 
26    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
27    POSSIBILITY OF SUCH DAMAGE. */    POSSIBILITY OF SUCH DAMAGE. */
28    
29    /* $Id$ */
30    
31  #include "macros.inc"  #include "macros.inc"
32    
33  #define src_hi r25  #define src_hi r25
# Line 47  Line 49 
49          .global _U(strlen_P)          .global _U(strlen_P)
50          .type   _U(strlen_P), @function          .type   _U(strlen_P), @function
51  _U(strlen_P):  _U(strlen_P):
52          LOAD_Z(src_lo, src_hi)          X_movw  ZL, src_lo
53  .strlen_P_loop:  .L_strlen_P_loop:
54          LPM_R0_ZP          LPM_R0_ZP
55          tst     r0          tst     r0
56          brne    .strlen_P_loop          brne    .L_strlen_P_loop
57  ; return Z - 1 - src = (-1 - src) + Z = ~src + Z  ; return Z - 1 - src = (-1 - src) + Z = ~src + Z
58          com     src_lo          com     src_lo
59          com     src_hi          com     src_hi
60          add     src_lo, ZL          add     src_lo, ZL
61          adc     src_hi, ZH          adc     src_hi, ZH
62          ret          ret
63  .strlen_P_end:  .L_strlen_P_end:
64          .size   _U(strlen_P), .strlen_P_end - _U(strlen_P)          .size   _U(strlen_P), .L_strlen_P_end - _U(strlen_P)
65    
66  #endif /* not __DOXYGEN__ */  #endif /* not __DOXYGEN__ */

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

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