Hardware Abstraction

Another approach is to port the core and libraries to new processors, creating appropriate abstractions as necessary. That way you know that any extra complexity is there for a good reason.