Subversion Repositories HelenOS

Rev

Rev 1865 | Rev 1882 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1865 Rev 1880
Line 225... Line 225...
225
	b _memsetb
225
	b _memsetb
226
	nop
226
	nop
227
 
227
 
228
 
228
 
229
.macro WRITE_ALTERNATE_REGISTER reg, bit
229
.macro WRITE_ALTERNATE_REGISTER reg, bit
230
	save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
-
 
231
	rdpr %pstate, %l0
-
 
232
	wrpr %l0, \bit, %pstate
230
	wrpr %g0, (\bit | PSTATE_PRIV_BIT), %pstate
233
	mov %i0, \reg
231
	mov %o0, \reg
234
	wrpr %l0, 0, %pstate
-
 
235
	ret
232
	retl
236
	restore
233
	wrpr %g0, PSTATE_PRIV_BIT, %pstate
237
.endm
234
.endm
238
 
235
 
239
.macro READ_ALTERNATE_REGISTER reg, bit
236
.macro READ_ALTERNATE_REGISTER reg, bit
240
	save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
-
 
241
	rdpr %pstate, %l0
-
 
242
	wrpr %l0, \bit, %pstate
237
	wrpr %g0, (\bit | PSTATE_PRIV_BIT), %pstate
243
	mov \reg, %i0
238
	mov \reg, %o0
244
	wrpr %l0, 0, %pstate
-
 
245
	ret
239
	retl
246
	restore
240
	wrpr %g0, PSTATE_PRIV_BIT, %pstate
247
.endm
241
.endm
248
 
242
 
249
.global write_to_ag_g6
243
.global write_to_ag_g6
250
write_to_ag_g6:
244
write_to_ag_g6:
251
	WRITE_ALTERNATE_REGISTER %g6, PSTATE_AG_BIT
245
	WRITE_ALTERNATE_REGISTER %g6, PSTATE_AG_BIT
Line 303... Line 297...
303
	 * Spills and fills will be handled by the userspace handlers.
297
	 * Spills and fills will be handled by the userspace handlers.
304
	 */
298
	 */
305
	wrpr %g0, WSTATE_OTHER(0) | WSTATE_NORMAL(1), %wstate
299
	wrpr %g0, WSTATE_OTHER(0) | WSTATE_NORMAL(1), %wstate
306
	
300
	
307
	done				! jump to userspace
301
	done				! jump to userspace
-
 
302