avr-libc-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-dev] [patch #9187] [AVR_TINY]: Support 16-bit xtoa functons an


From: Georg-Johann Lay
Subject: [avr-libc-dev] [patch #9187] [AVR_TINY]: Support 16-bit xtoa functons and more string functions.
Date: Fri, 9 Dec 2016 13:02:17 +0000 (UTC)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0

URL:
  <http://savannah.nongnu.org/patch/?9187>

                 Summary: [AVR_TINY]: Support 16-bit xtoa functons and more
string functions.
                 Project: AVR C Runtime Library
            Submitted by: gjlayde
            Submitted on: Fri 09 Dec 2016 01:02:16 PM GMT
                Category: None
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

This improves support for AVR_TINY architecture.

It'a collection of low hanging fruit from from /libc/misc/ and libc/string,
mostly achieved by

* Using new X_sbiw instead of sbiw
* Replace r0 by __tmp_reg__


        * common/asmdef.h (X_sbiw): New asm macro.
        * common/macros.inc (X_sbiw): New asm macro.
        * libc/misc/itoa.S: Don't restrict to !AVR_TINY.
        * libc/misc/itoa_ncheck.S: Same.
        * libc/misc/utoa.S: Same.
        * libc/misc/utoa_ncheck.S: Same. And use X_sbiw instead of sbiw.
        * libc/string/strlcat.S: Same.
        * libc/string/strncat.S: Same.
        * libc/string/strrev.S: Same.
        * libc/string/strrchr.S: Same.
        * libc/string/memchr.S: Don't restrict to !AVR_TINY.
        [AVR_TINY]: Use "ld __tmp_reg__,-R" instead of "sbiw R,1".
        * libc/string/strcat.S: Same.
        * libc/string/strchr.S: Same.
        * libc/string/memrchr.S: Don't restrict to !AVR_TINY.
        (r0): Use __tmp_reg__ instead.
        (adiw ZL,0): Use X_sbiw ZL,0 for comparison against 0 instead.
        * libc/string/strchrnul.S: Don't restrict to !AVR_TINY.
        (r0): Use __tmp_reg__ instead.
        [AVR_TINY]: Use "ld __tmp_reg__,-R" instead of "sbiw R,1".
        * libc/string/strpbrk.S: Same.
        * libc/string/strstr.S: Don't restrict to !AVR_TINY.
        Use X_sbiw instead of sbiw.
        (chr2): Define to __tmp_reg__ instead of to r0.
        * libc/string/strtok_r.S: Don't restrict to !AVR_TINY.
        Use X_sbiw instead of sbiw.
        (dch) [AVR_TINY]: Push / pop r18 around function.
        [AVR_TINY]: Use "ld __tmp_reg__,R+" instead of "adiw R,1".




    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Fri 09 Dec 2016 01:02:16 PM GMT  Name: alibc-tiny-1.diff  Size: 12kB  
By: gjlayde
Patch against trunk
<http://savannah.nongnu.org/patch/download.php?file_id=39181>

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/patch/?9187>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]