Adds per-thread interrupt controllers and thread/context logic so that interrupts properly get routed in SMT systems.