Subversion Repositories HelenOS

Rev

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

Rev 962 Rev 979
Line 248... Line 248...
248
heavyweight_handler_inner:
248
heavyweight_handler_inner:
249
	/*
249
	/*
250
	 * From this point, the rest of the interrupted context
250
	 * From this point, the rest of the interrupted context
251
	 * will be preserved in stacked registers and backing store.
251
	 * will be preserved in stacked registers and backing store.
252
	 */
252
	 */
253
	alloc loc0 = ar.pfs, 0, 47, 2, 0 ;;
253
	alloc loc0 = ar.pfs, 0, 48, 2, 0 ;;
254
	
254
	
255
	/* bank 0 is going to be shadowed, copy essential data from there */
255
	/* bank 0 is going to be shadowed, copy essential data from there */
256
	mov loc1 = R_RET	/* b0 belonging to interrupted context */
256
	mov loc1 = R_RET	/* b0 belonging to interrupted context */
257
	mov loc2 = R_HANDLER
257
	mov loc2 = R_HANDLER
258
	mov out0 = R_OFFS
258
	mov out0 = R_OFFS
Line 312... Line 312...
312
	mov loc42 = r27
312
	mov loc42 = r27
313
	mov loc43 = r28
313
	mov loc43 = r28
314
	mov loc44 = r29
314
	mov loc44 = r29
315
	mov loc45 = r30
315
	mov loc45 = r30
316
	mov loc46 = r31
316
	mov loc46 = r31
-
 
317
 
-
 
318
	/*preserve Floating point status register*/
-
 
319
	mov loc47 = ar.fpsr
317
    
320
    
318
    /* 9. skipped (will not enable interrupts) */
321
    /* 9. skipped (will not enable interrupts) */
319
	/*
322
	/*
320
    	 * ssm PSR_I_MASK
323
    	 * ssm PSR_I_MASK
321
	 * ;;
324
	 * ;;
Line 370... Line 373...
370
	mov r28 = loc43
373
	mov r28 = loc43
371
	mov r29 = loc44
374
	mov r29 = loc44
372
	mov r30 = loc45
375
	mov r30 = loc45
373
	mov r31 = loc46
376
	mov r31 = loc46
374
	
377
	
-
 
378
 
-
 
379
	/*restore Floating point status register*/
-
 
380
	mov ar.fpsr = loc47
-
 
381
	
375
    /* 14. restore branch and application registers */
382
    /* 14. restore branch and application registers */
376
    	mov ar.unat = loc3
383
    	mov ar.unat = loc3
377
	mov ar.lc = loc4
384
	mov ar.lc = loc4
378
	mov ar.ec = loc5
385
	mov ar.ec = loc5
379
	mov ar.ccv = loc6
386
	mov ar.ccv = loc6