Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
GCC Patches Posted For Port To Chinese "C-SKY" CPU Architecture
For months the Linux C-SKY Linux kernel port has been in the works though has yet to be mainlined, at least as of the current Linux 4.18 cycle. Happening concurrently has been the C-SKY port for the GNU Compiler Collection (GCC).
Mentor Graphics has been contracted to work on this C-SKY compiler port for csky-elf and csky-linux targets with glibc and uclibc. In the current C-SKY patches, only the C and C++ language front-ends are supported for this CPU target.
With the patch series are some details on the architecture with the C-SKY company not yet providing a public ABI documentation:
This is a 32-bit target with mixed 16- and 32-bit instructions and support for both endiannesses. There are 5 different architecture variants. The ck801 variant is substantially different from the others in terms of code generation -- it has only a few 32-bit instructions and a restricted register set, so it's almost analagous to a Thumb-only ARM core. ck802 and ck803 have more 32-bit instructions and 16 registers, while ck807 and ck810 are Linux-capable with 32 registers.
The ABI is fairly standard; arguments are passed in r0-r3 with the overflow on the stack, return values in r0-r1, etc. There is no dedicated frame pointer register.
We'll see if these patches make it in time for the GCC 9 release in 2019.