Both Renesas RX and RL78 Toolchains Get Refreshed Today (Release 2019q4)

The most popular Renesas targets, RX and RL78, are receiving a refreshed version of the toolchains today, for the second time this year. The RX release includes a significant upgrade to GCC version 8.3.0, a major step up from the version 4.8.4 used in the previous toolchain release. The additional updates, improvements or issues resolved are documented below.

The release notes for each of these platforms may be found below, covering what changes each of these new toolchain versions bring:

  • GCC for Renesas 4.9.2.201904-GNURL78 (Windows | Linux)
    1. [GCC] [Improvement] Implemented the __builtin_rl78_setpswisp(x) and __builtin_rl78_getpswisp() instructions to get and set the ISP bits of the PSW register.For example:
      char f1(char a)
          {
             __builtin_rl78_setpswisp(a);
             return __builtin_rl78_getpswisp();
          }
  • Known issues
    • ES is used without being initialized.

      Workaround:

      In order to initialize ES, the address should be stored in a far pointer before usage. So instead of:

      ((volatile reg __far*)0x000FFF).bit._1 = 0;

      the code will be:

      volatile reg __far *address0 = 0x000FFF;
      (*address0).bit._1 = 0;

    • The __far keyword is not supported for C++ projects.
  • GCC for Renesas 8.3.0.201904-GNURX (Windows | Linux)
    1. [GCC] [Improvement] The GCC version is updated from 4.8.4 to 8.3.0.
    2. [GCC] [Bug Fix] Fixed a bug related to the usage of an integer greater than 3 in a __builtin_rx_bset_mem instruction.
    3. [GCC] [Improvement] The MVTIPL instruction now throws a warning if a non-immediate value has been passed as argument.
    4. [GCC] [Bug Fix] Fixed the emulu instruction: the upper 32-bits are now used in a 64-bit multiplication when any optimization is enabled.
    5. [GDB] [Bug Fix] Fixed the FPSWBITS_FMASK used by the mvtc instruction to not include the 30’th bit.
    6. [GDB] [Improvement] Improved the precision of the arithmetic instructions when the DFPU flag is used.
    7. [GDB] [Bug Fix] Fixed the simulation result for the MACLO, MACHI instructions when rx-elf-run traces are enabled.
  • Known issues
    • For a full list of known issues, please refer to this toolchain’s release notes available here.

The Linux installer for both toolchains also offers command-line flags to automate installation as much as possible, as well as the ability to also act as an uninstaller for the toolchains. Therefore, the installer can both install and uninstall the toolchain from one or more paths from your Linux distribution. The release notes for both toolchains also include the list of the currently known issues presented above, to which we fully commit to adequately handle in the coming updates.

We are deeply grateful for any feedback you may have regarding this release, so please let us know if you have any questions or comments.

Sex Cam

9 Responses to Both Renesas RX and RL78 Toolchains Get Refreshed Today (Release 2019q4)

  1. Frank Kjul Larsen says:

    Hello GNU Tools.

    Thank you very much:-)
    What a leap. I certainly miss superlatives.
    I feel very exited to start using this new modern compiler for my RX projects.

    Best regards
    Frank Kjul Larsen

    • GNU Tools Support says:

      Dear Frank,

      Thank you so much for your support! We’re grateful for your kind comments, it’s awesome to see great supporters like yourself reaching out and staying in touch.

      We wish Happy Holidays to all our users!

      The GNU Tools Team

  2. fla0720 says:

    I’m sorry, I could not find the release note for GNURL78 on your homepage.
    It is only part of the installer.

  3. fla0720 says:

    Thank you.
    Why are the release notes not listed on the Release Notes page?
    https://gcc-renesas.com/release-notes/release-notes.html

    Another question. When will the sources for the 2019q4 versions be released?

    • GNU Tools Support says:

      Hello,

      It looks like we ran into a caching issue, which caused the release notes and other pages (including the source code download pages) to not be updated correctly. However, after your report we have reset the cache and now all should show up properly. Thank you for letting us know!
      __
      The GNU Tools Team

  4. fla0720 says:

    Thank you very much.
    Now it looks fine.

    Best Regards

    Frank

  5. Frank Kjul Larsen says:

    Hello GNU tools

    I have now had the opportunity to test your new toolchain on one of my RX111
    targets, and I want to share my impressions with other users.

    My tests have been using the Windows version and not the one refreshed today.

    My first impressions is that the binary it produces is denser, faster and contains less errors.

    My code compiled and executed first time with no modification from the earlier RX 1902_sp1 version.
    I only changed the path to the new toolchain
    6 warnings was issued during compile.

    I use the following compiler options:
    # Common options
    OPTIONS := -DRX111
    OPTIONS += -mcpu=rx100
    OPTIONS += -nofpu
    OPTIONS += -mlittle-endian-data
    # Select little endian operation
    OPTIONS += -D__RX_LITTLE_ENDIAN__=1
    OPTIONS += -std=c11
    OPTIONS += -nostartfiles
    OPTIONS += -Wall
    OPTIONS += -Wextra
    OPTIONS += -Wl,–warn-common
    OPTIONS += -ffunction-sections
    OPTIONS += -fdata-sections
    OPTIONS += -Wl,–gc-sections
    OPTIONS += -DROMSTART
    OPTIONS += -loptc
    OPTIONS += -loptm
    # Optimisation
    OPTIONS += -O3
    # Debug info in file (not with list files)
    OPTIONS += -g2

    The parser found more errors in my code – shown as warnings:
    – a logical AND that should have been a bitwise AND
    – an if statement that lacked the {} block.
    – an snprintf that truncated number to be converted to a string by accident.
    – a intentionally fall through in a switch. That was not an error.
    and more.

    Who needs tools for static code analysis any more?
    These errors was not found by a very expensive SW analysis tool.

    The code is even more compact as it was before:-)
    The code is faster. I used to have a loop time of 500 us and that is now 394 us:-)

    This new toolchain is certainly worth trying.
    I think you have done a great job.

    Thank you so much GNU tools.

    Best regards
    Frank Kjul Larsen

Leave a Reply

Support