Hi all, These two patches should implement something very much like the GNU extension allowing C-functions to be used as interrupt handlers on ARM. This has a couple of high-level effects: special return instructions (except for M-class CPUs) and many more callee-saved registers.
Some issues that may be debatable: 1. I don't automatically save d0-d31. That would be insane (and also isn't what GCC does). 2. On the LLVM side, I've modelled it as an attribute rather than a calling-convention. Either could be made to work, but "cc(64)" seemed a little less obvious and ARM's already got more than its fair share of official calling conventions. 3. I completely co-opted the Thumb2 SUBS_PC_LR to match what CodeGen actually expects of a return rather than, necessarily, reality. Any comments or suggestions would be appreciated. Cheers. Tim.
interrupt-attr-clang.diff
Description: Binary data
interrupt-attr-llvm.diff
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
