Writing a GCC back end