Updated Toolchains (2018q3) released for the Renesas RX & RL78 Targets

We are releasing new versions of the toolchains for two of the most popular Renesas targets: the RX and RL78 families.

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 (Windows | Linux)
    1. [Improvement] Disabled the default -ftree-loop-im option for optimization purposes.
    2. [Improvement] The muse-es option is now used by default.
    3. [Bug Fix] When using the -fdata-section option, the _far variables are now correctly saved in frodata.
    4. [Bug Fix] Disabled interruption inside the multiplication instructions for g13 targets.
    5. [Bug Fix] Fixed the push CS instruction generation when both -msave-cs-in-interrupts and -muse-es were used.
    6. [Improvement] Improved code size by optimizing various instructions and instruction costs.
  • Known issues
    • ES is used without being initialized.

      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 (Windows | Linux)
    1. [Bug-Fix] Fixed the detection of SSTR string opcode.
    2. [Bug-Fix] Fixed the handling of 64 bit addition.
    3. [Bug-Fix] Fixed the xchg builtin function.
    4. [Bug-Fix] Fixed a bug with gdb crashing when stepping into functions.
    5. [Bug-Fix] Fixed an issue related to the libgen parsing of assembler options.
    6. [Improvement] Improved the support for bit set and bit clear instructions.
    7. [Feature] Added new RXv3 architecture. Supported CPU: rx66t
    8. [Feature] Added new RXv3 specific built-in functions: BFMOV, BFMOVZ
  • Known issues
    • In certain cases the program will time out while executing with following options:
      (Note: Both flags need to be accompanied by “-fno-diagnostics-show-caret -w -O1 -DSTACK_SIZE=4096 -msim -lm” for the problem to be observed.)
      a) -funroll-loops
      b) -fpeel-loops
    • An incomplete type error can be observed ocasionally when using the -fpack-struct option in C++. The combination of the flags that reproduce this problem is “-fpack-struct -fno-diagnostics-show-caret -nostdinc++ -fmessagelength=0 -std=c++11 -pedantic-errors -Wno-long-long -S -msim

Please remember that 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.

Leave a Reply