Subversion Repositories HelenOS-historic

Rev

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

Rev 472 Rev 473
Line 104... Line 104...
104
	
104
	
105
	mov r27 = ar.rnat
105
	mov r27 = ar.rnat
106
	mov r28 = ar.bspstore ;;
106
	mov r28 = ar.bspstore ;;
107
	
107
	
108
	/* assume kernel backing store */
108
	/* assume kernel backing store */
109
	mov ar.bspstore = r28 ;;
109
	/* mov ar.bspstore = r28 ;; */
110
	
110
	
111
	mov r29 = ar.bsp
111
	mov r29 = ar.bsp
112
	
112
	
113
	st8 [r31] = r27, -8 ;;	/* save ar.rnat */
113
	st8 [r31] = r27, -8 ;;	/* save ar.rnat */
114
	st8 [r31] = r28, -8 ;;	/* save ar.bspstore */
114
	st8 [r31] = r28, -8 ;;	/* save ar.bspstore */
Line 144... Line 144...
144
	ld8 r27 = [r31], +8 ;;		/* load ar.rnat */
144
	ld8 r27 = [r31], +8 ;;		/* load ar.rnat */
145
	ld8 r26 = [r31], +8 ;;		/* load cr.ifs */
145
	ld8 r26 = [r31], +8 ;;		/* load cr.ifs */
146
	ld8 r25 = [r31], +8 ;;		/* load ar.pfs */
146
	ld8 r25 = [r31], +8 ;;		/* load ar.pfs */
147
	ld8 r24 = [r31], +8 ;;		/* load ar.rsc */
147
	ld8 r24 = [r31], +8 ;;		/* load ar.rsc */
148
 
148
 
149
	mov ar.bspstore = r28 ;;	/* (step 4) */
149
	/* mov ar.bspstore = r28 ;; */	/* (step 4) */
150
	mov ar.rnat = r27		/* (step 5) */
150
	/* mov ar.rnat = r27 */		/* (step 5) */
151
 
151
 
152
	mov ar.pfs = r25		/* (step 6) */
152
	mov ar.pfs = r25		/* (step 6) */
153
	mov cr.ifs = r26	
153
	mov cr.ifs = r26	
154
 
154
 
155
	mov ar.rsc = r24		/* (step 7) */
155
	mov ar.rsc = r24		/* (step 7) */
Line 245... Line 245...
245
	mov loc44 = r29
245
	mov loc44 = r29
246
	mov loc45 = r30
246
	mov loc45 = r30
247
	mov loc46 = r31
247
	mov loc46 = r31
248
    
248
    
249
    /* 9. skipped (will not enable interrupts) */
249
    /* 9. skipped (will not enable interrupts) */
-
 
250
	/*
-
 
251
    	 * ssm PSR_I_MASK
-
 
252
	 * ;;
-
 
253
	 * srlz.d
-
 
254
	 */
250
 
255
 
251
    /* 10. call handler */
256
    /* 10. call handler */
252
    	mov b1 = loc2
257
    	mov b1 = loc2
253
	br.call.sptk.many b0 = b1
258
	br.call.sptk.many b0 = b1
254
 
259
 
255
    /* 11. return from handler */
260
    /* 11. return from handler */
256
0:
261
0:
257
	
262
	
258
    /* 12. skipped (will not disable interrupts) */
263
    /* 12. skipped (will not disable interrupts) */
-
 
264
	/*
-
 
265
    	 * rsm PSR_I_MASK
-
 
266
	 * ;;
-
 
267
	 * srlz.d
-
 
268
	 */
259
 
269
 
260
    /* 13. restore general and floating-point registers */
270
    /* 13. restore general and floating-point registers */
261
	/* TODO: restore floating-point context */
271
	/* TODO: restore floating-point context */
262
	mov r1 = loc17
272
	mov r1 = loc17
263
	mov r2 = loc18
273
	mov r2 = loc18