I have SPI interrupt defined as FIQ and the execution time for it should be less than 12us, but adding a few checks and the execution time is going out of the limit. I've seen that it takes 2-3us for the ARM7TDMI to enter the FIQ. Can you give some ideas how to optimize it to enter it quickly or execute quickly? What should I use/avoid? I realized I should avoid using % because it takes about 3us to compute a%100! Any advice is welcome.
"I guess you can write some assembly in the startup code inside the FIQ vector itself if you really need a fast response."
No need to guess. The processor supports it and the development tools support it.