Subversion Repositories HelenOS

Rev

Rev 4296 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4296 Rev 4420
Line 339... Line 339...
339
    112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,\
339
    112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,\
340
    127
340
    127
341
.org trap_table + (TT_TRAP_INSTRUCTION_0+\cur)*ENTRY_SIZE
341
.org trap_table + (TT_TRAP_INSTRUCTION_0+\cur)*ENTRY_SIZE
342
.global trap_instruction_\cur\()_tl0
342
.global trap_instruction_\cur\()_tl0
343
trap_instruction_\cur\()_tl0:
343
trap_instruction_\cur\()_tl0:
344
	ba trap_instruction_handler
344
	ba %xcc, trap_instruction_handler
345
	mov \cur, %g2
345
	mov \cur, %g2
346
.endr
346
.endr
347
 
347
 
348
/*
348
/*
349
 * Handlers for TL>0.
349
 * Handlers for TL>0.
Line 478... Line 478...
478
	 */
478
	 */
479
	rdpr %tl, %g3
479
	rdpr %tl, %g3
480
	cmp %g3, 1
480
	cmp %g3, 1
481
	be %xcc, 1f
481
	be %xcc, 1f
482
	nop
482
	nop
483
0:	ba 0b					! this is for debugging, if we ever get here
483
0:	ba %xcc, 0b				! this is for debugging, if we ever get here
484
	nop					! it will be easy to find
484
	nop					! it will be easy to find
485
 
485
 
486
1:
486
1:
487
.if NOT(\is_syscall)
487
.if NOT(\is_syscall)
488
	rdpr %tstate, %g3
488
	rdpr %tstate, %g3
Line 543... Line 543...
543
	stxa %g0, [%l0] ASI_DMMU
543
	stxa %g0, [%l0] ASI_DMMU
544
	rd %pc, %l0
544
	rd %pc, %l0
545
	flush %l0
545
	flush %l0
546
 
546
 
547
.if NOT(\is_syscall)
547
.if NOT(\is_syscall)
548
	ba 1f
548
	ba %xcc, 1f
549
	nop
549
	nop
550
0:
550
0:
551
	save %sp, -PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE, %sp
551
	save %sp, -PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE, %sp
552
 
552
 
553
	/*
553
	/*
Line 772... Line 772...
772
 
772
 
773
	dec %g3
773
	dec %g3
774
	and %g3, NWINDOWS - 1, %g3
774
	and %g3, NWINDOWS - 1, %g3
775
	wrpr %g3, 0, %cwp			! switch to the preceeding window
775
	wrpr %g3, 0, %cwp			! switch to the preceeding window
776
 
776
 
777
	ba 0b
777
	ba %xcc, 0b
778
	inc %g4
778
	inc %g4
779
 
779
 
780
0:
780
0:
781
	/*
781
	/*
782
	 * Switch back to the proper current window and adjust
782
	 * Switch back to the proper current window and adjust