SPARC _ISR_Handler questions

Aleix Conchillo Flaqué aconchillo at ieec.fcr.es
Fri Mar 17 13:54:53 UTC 2006


Hi,

I'm trying to implement my own _ISR_Handler (without threading or  
context switching) and I'm looking the RTEMS _ISR_Handler (cpu_asm.S)  
code. There two things I don't understand:

1. At the beginning of the routine, the %l1 (PC) is saved into %l6,  
but %l6 I think it is not used anymore. Why it needs to be keeped?  
Or... where it is used?

2. When calling the user's handler (call %g4, 0), one argument must  
be given in %o0 which is the vector number. This is fine as the  
ISR_Handler_entry type is defined with this argument. But a second  
argument (%o1) is passed, more concretelly the code reads: o1 = 2nd  
arg = address of the ISF WAS LOADED... I don't see how the user's  
handler know about this argument. I don't understand why is it passed.

Thanks in advance.

Best regards,

aleix





More information about the users mailing list