Wow, I am having a look to the code #tcc generates for the 65C816 (SNES CPU) and it's just bad. It loves doing thing like placing an LDA just after an STA on the same address, using virtual registers (direct page addressed) for everything when the CPU registers would do, or padding pointers (that on the SNES are 24-bit, and do not need to be memory aligned).
#SNES #SNESDev
People doing #Megadrive development frequently complain about the code #GCC generates for the #m68k (mainly because parameters are passed using the stack and that is slow on the Motorola CPU). But compared to this, the GCC backend for the m68k is blazingly fast.
Other trap that usually bites newbies doing development for the Megadrive, is that in m68k-gcc, int type is 32 bits wide. So you have to be careful to not use int variables when 16 bits are enough. But being careful with that, and taking into account the problem with parameter passing is highly alleviated by aggressive inlining (make sure you build with LTO), GCC can generate quite decent code for the m68k.