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)
- [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(); }
- [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:
- 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.
- ES is used without being initialized.
Workaround:
- GCC for Renesas 8.3.0.201904-GNURX (Windows | Linux)
- [GCC] [Improvement] The GCC version is updated from 4.8.4 to 8.3.0.
- [GCC] [Bug Fix] Fixed a bug related to the usage of an integer greater than 3 in a __builtin_rx_bset_mem instruction.
- [GCC] [Improvement] The MVTIPL instruction now throws a warning if a non-immediate value has been passed as argument.
- [GCC] [Bug Fix] Fixed the emulu instruction: the upper 32-bits are now used in a 64-bit multiplication when any optimization is enabled.
- [GDB] [Bug Fix] Fixed the FPSWBITS_FMASK used by the mvtc instruction to not include the 30’th bit.
- [GDB] [Improvement] Improved the precision of the arithmetic instructions when the DFPU flag is used.
- [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 Cam9 Responses to Both Renesas RX and RL78 Toolchains Get Refreshed Today (Release 2019q4)
コメントを残す
コメントを投稿するにはログインしてください。
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
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
I’m sorry, I could not find the release note for GNURL78 on your homepage.
It is only part of the installer.
Hello,
The release notes are present in the download page of the toolchain at https://gcc-renesas.com/rl78/rl78-download-toolchains/ (please click the green question mark to the right of every toolchain).
We hope this helps,
The GNU Tools Team
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?
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
Thank you very much.
Now it looks fine.
Best Regards
Frank
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
Dear Frank,
Many thanks for your kind words! We sincerely appreciate them. Looking forward to more good things to come in the near future
Happy Holidays!
__
The GNU Tools Team