Subversion Repositories HelenOS

Rev

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

Rev 1852 Rev 1855
Line 410... Line 410...
410
	bz 0f				! CWP is ok
410
	bz 0f				! CWP is ok
411
	nop
411
	nop
412
 
412
 
413
	/*
413
	/*
414
	 * Fix CWP.
414
	 * Fix CWP.
-
 
415
	 * Just for reminder, the input registers in the current window
-
 
416
	 * are the output registers of the window to which we want to
-
 
417
	 * restore. Because the fill trap fills only input and local
-
 
418
	 * registers of a window, we need to preserve those output
-
 
419
	 * registers manually.
415
	 */
420
	 */
416
	mov %fp, %g1
-
 
417
	flushw
421
	flushw
-
 
422
	mov %sp, %g1
-
 
423
	stx %i0, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I0]
-
 
424
	stx %i1, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I1]
-
 
425
	stx %i2, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I2]
-
 
426
	stx %i3, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I3]
-
 
427
	stx %i4, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I4]
-
 
428
	stx %i5, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I5]
-
 
429
	stx %i6, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I6]
-
 
430
	stx %i7, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I7]
418
	wrpr %l0, 0, %cwp
431
	wrpr %l0, 0, %cwp
419
	mov %g1, %fp
432
	mov %g1, %sp
-
 
433
	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I0], %i0
-
 
434
	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I1], %i1
-
 
435
	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I2], %i2
-
 
436
	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I3], %i3
-
 
437
	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I4], %i4
-
 
438
	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I5], %i5
-
 
439
	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I6], %i6
-
 
440
	ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_I7], %i7
420
	
441
 
421
	/*
442
	/*
422
	 * OTHERWIN != 0 or fall-through from the OTHERWIN == 0 case.
443
	 * OTHERWIN != 0 or fall-through from the OTHERWIN == 0 case.
423
	 */
444
	 */
424
0:
445
0:
425
	! TODO: restore register windows from register window memory buffer
446
	! TODO: restore register windows from register window memory buffer