This patch series is a new port for C-SKY ABI V2 processors. It's based on the original work by C-SKY with cleanup, modernization, and bug-fixing by Mentor Graphics. The supported targets are csky-elf and csky-linux-* (both glibc and uClibc). At this time we're only supporting the C and C++ languages, but we've built all the other front ends except Ada where we're still trying to sort out build environment issues.
C-SKY proposes Han Mao <han_...@c-sky.com> and Yunhai Shang <yunhai_sh...@c-sky.com> as maintainers for this port. We expect that C-SKY will also be providing a public link to the processor and ABI documentation at some point. Meanwhile, here's brief overview of the architecture from the compiler's point of view: 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. The ELF target is configured to build 16(!) multilibs and the Linux targets 8, to account for hard/soft float variants and endiannesses. We've been testing all of them with QEMU (user-mode for the Linux targets, since we don't have a stable kernel yet) and the results are quite good now. I've split the patch set up into 5 pieces, with part 2 having the bulk of the new code: [1] Configury [2] Backend implementation [3] Documentation [4] Testsuite [5] libgcc We also have a couple small patches to target-independent code to fix bugs, which we'll post separately. -Sandra