Updated Toolchains (2017q3) Available for 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 releases bring:

  • GCC for Renesas (Windows | Linux)
    1. [Improvement] New register allocator has been added to RL78 target (-mrl78reg-alloc)
    2. [Improvement] objdump improved to display the multiplication/division registers by their name instead of their memory-mapped addresses.
    3. [Improvement] The following patterns were added for G10, G13 and G14 cores – udivmodqi4, udivhi3, umodhi3, udivmodhi4, divhi3, modhi3, divmodhi4, udivsi3, umodsi3, divsi3, modsi3
    4. [Improvement] Stack protector has been added for the RL78 target.
    5. [Improvement] Implemented aliases for -mcpu=g10,g13,g14 to resemble the manual (s1,s2,s3)
    6. [Improvement] Implemented MOVE_BY_PIECES_P, SET_BY_PIECES_P and STORE_BY_PIECES_P for better code size.
    7. [Bug Fix] Fixed the generation of “es:” before the sfr address.
    8. [Bug Fix] Fixed: mov [de],#IMM is interpreted now as mov [de+0],#IMM + mov [hl],#IMM is interpreted now as mov [hl+0],#IMM
    9. [Bug Fix] Fixed the behavior of lo16, hi16, hi8 local symbols to resemble lo16, hi16, hi8 global symbols
    10. [Bug Fix] Fixed the precision error on floating-point addition.
    11. [Bug Fix] Fixed compile error on accessing sfr with __far pointer.
    12. [Bug Fix] Stack pointer arithmetic operations prohibited from modifying CPU flags
    13. [Bug Fix] Corrected updating of the debug information when using new register allocator.
    14. [Bug Fix] Corrected the save/restore of multiply registers in interrupts.
    15. Optimized libgcc signed/unsigned div/mod
  • GCC for Renesas (Windows | Linux)
    1. [Improvement] Adjustments have been made to TARGET_MAX_ANCHOR_OFFSET for the -fsection-anchors option.
    2. [Improvement] Following options have been enabled by default in order to achieve code size improvements: -fweb, -tree-loop-if-conv, -fsection-anchors, -mrelax, -free, -mno-balign, -foptimize-strlen, -fdata-sections, -ffunction-sections and –gc-section. Additionally, the following options have been disabled for code size optimization: -fcommon, partial-inlining
    3. [Improvement] Generation of PC register for __builtin_rx_mvfc has been added.
    4. [Improvement] Stack protector has been added for the RX target.
    5. [Improvement] The bound on size of expressions used in the scalar evolutions analyzer has been adjusted for better code size results. scev-max-expr-size has been adjusted.
    6. [Improvement] The default -Os options have been adjusted for better code size results when using jump tables. Following options are enabled by default for -Os: -fno-jump-tables and -finline-small-functions
    7. [Improvement] Added the -mlarge-function-growth=VALUE option which limits the growth of large function (in percents). Default value is 42.
    8. [Improvement] Warning concerning “NaNs and infinities” has been disabled by default.
    9. [Bug Fix] The fsub instruction has been fixed.

Just as a reminder, the Linux installer for both toolchains now offers command-line flags to automate execution as much as possible, as well as the ability to also act as an uninstaller for the toolchains. With this update, the installer can both install and uninstall the toolchain from one or more paths from your Linux distribution.

Finally, the release notes for both toolchains also include a list of the currently known issues, which will be resolved in the coming updates.

We greatly value your feedback, so please let us know if you have any questions or comments.

Leave a Reply