The I/O APIC can generate MSI messages from legacy interrupt pins. It might make sense to explore using that mechanism exclusively and remove the PIC code.