L 6.6:  Exchanging thread attribute values

Revision 0    6 November 2000)

 

overview    continuation of system call #6 - get here with a valid active thread
	    this code does the inquiring/modifying of thread attributes specified
	    in the system call 
on entry	a0,s4	target thread tid 
		a1,s4	target thread new ip
		a2,s5	target thread new sp
		a3,s6	target thread exception handler id
		a4,s7	target thread pager id
		t8	caller's tcb (high core address)
		s0	caller's tid
		s2	target tcb base
		
71-73
preliminaries:	t3 <-- target thread k-stack bottom
		t0 <-- invalid address (1-) for comparison purposes
		s8 <-- 0 ( Þ thread's context not changed yet) 
74-76 if caller wanted to keep old pager: keep old pager and return old pager
if caller wanted to change pager: change pager and return old pager
77-79 if caller wanted to keep old excepter: keep old excepter and return old excepter
if caller wanted to change excepter: change excepter and return old excepter
80-83 if caller wanted to keep old user stack: keep old sp and return old sp
if caller wanted to change user stack: change sp and return old sp
and indicate that context was changed by putting -1 in s8 (checked at l179 L6.10)
84-87 if caller wanted to keep old ip: keep old ip and return old ip
if caller wanted to change ip: change ip and return old ip
and indicate that context was changed by putting -1 in s8 (checked at l179 L6.10)