When compiled with -frename-registers, the TBA test case produces invalid code. Specifically, the cpadd4.h opcode clobbers $c1 but the cpsub2.h assumes it still has the value "a" in it. Compiling with -fno-rename-registers results in valid code.
-- Summary: -frename-registers causes register corruption Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dj at redhat dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: mep-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40626