Thanks for your comments and thoughts.
Here is some more detail, and also what I ended up doing in the end...
I have 72 LED's charlieplexed on 9 pins.
I have to light 3 LED's at a time (which just means that I need to time-share the bus for 3 different lights).
I have to include software-implemented PWM to the LED's so that they can be variable brightness (depending on what I read on an ambient light sensor).
So this is my math.
3 LEDs * 60Hz * 8 (PWM resolution) = 1440 ISR calls per second
So naturally, I would like to minimize the ISR time.
I have not really determined that I need to go this far with minimizing ISR instruction count, but hey, I am a student, and I want to learn some new things... like what would it take to go to the extreme?
I over-simplified the question to begin with because the answer to my original question also answers my reality.
So the options which I am exploring are these.
- Minimize ISR by making sure that the pointer to my LED-register-data is always in a working register
- I COULD control the LED brightness by automating a variable in-series resistance (I am exploring Voltage-Controlled Resistors through use of JFET). This solution would take the software-implemented PWM off my back.
If anyone made it to the end of this, I definitely would appreciate the "you missed this obvious solution" response. =)
EDIT:
In the end, I just have the one single timer interrupt service routine set to "naked". As long as that ISR is simple, only using w0 and w1, "naked function" and "register variable" is a viable solution. I am not using libraries, or any pre-compiled code. This is a standalone project. I would hardly consider this a hack because (from my limited exposure) reserving a working register throughout a program's operation would be considered a standard practice in assembly.
Though I understand I am just trying to tell my compiler, "Hey, my program will never get so complex that you need all W0-W13 at any time in order to maintain efficiency so give me W13 and never utilize it, push it, or pop it." I still have not found that directive/instruction. So I suppose my use of "naked" is a workaround for that.