Subversion Repositories HelenOS

Rev

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

Rev 1125 Rev 1663
Line 102... Line 102...
102
 
102
 
103
	/*
103
	/*
104
	 * Save predicate registers
104
	 * Save predicate registers
105
	 */
105
	 */
106
	mov loc2 = pr		;;
106
	mov loc2 = pr		;;
-
 
107
	st8 [in0] = loc2, 16;; 		/* Next fpu registers should be spilled to 16B aligned address */
-
 
108
 
-
 
109
	/*
-
 
110
	 * Save floating-point registers.
-
 
111
	 */
-
 
112
	stf.spill [in0] = f2, 16 ;;
-
 
113
	stf.spill [in0] = f3, 16 ;;
-
 
114
	stf.spill [in0] = f4, 16 ;;
-
 
115
	stf.spill [in0] = f5, 16 ;;
-
 
116
 
-
 
117
	stf.spill [in0] = f16, 16 ;;
-
 
118
	stf.spill [in0] = f17, 16 ;;
-
 
119
	stf.spill [in0] = f18, 16 ;;
-
 
120
	stf.spill [in0] = f19, 16 ;;
-
 
121
	stf.spill [in0] = f20, 16 ;;
-
 
122
	stf.spill [in0] = f21, 16 ;;
107
	st8 [in0] = loc2, 8	;;
123
	stf.spill [in0] = f22, 16 ;;
-
 
124
	stf.spill [in0] = f23, 16 ;;
-
 
125
	stf.spill [in0] = f24, 16 ;;
-
 
126
	stf.spill [in0] = f25, 16 ;;
-
 
127
	stf.spill [in0] = f26, 16 ;;
-
 
128
	stf.spill [in0] = f27, 16 ;;
-
 
129
	stf.spill [in0] = f28, 16 ;;
-
 
130
	stf.spill [in0] = f29, 16 ;;
-
 
131
	stf.spill [in0] = f30, 16 ;;
-
 
132
	stf.spill [in0] = f31, 16 ;;	
108
	
133
 
109
	mov ar.unat = loc1
134
	mov ar.unat = loc1
110
	
135
	
111
	add r8 = r0, r0, 1 		/* context_save returns 1 */
136
	add r8 = r0, r0, 1 		/* context_save returns 1 */
112
	br.ret.sptk.many b0
137
	br.ret.sptk.many b0
113
 
138
 
Line 185... Line 210...
185
	mov b5 = loc7
210
	mov b5 = loc7
186
 
211
 
187
	/*
212
	/*
188
	 * Restore predicate registers
213
	 * Restore predicate registers
189
	 */
214
	 */
190
	ld8 loc2 = [in0], 8	;;
215
	ld8 loc2 = [in0], 16	;;
191
	mov pr = loc2, ~0
216
	mov pr = loc2, ~0
-
 
217
 
-
 
218
	/*
-
 
219
	 * Restore floating-point registers.
-
 
220
	 */
-
 
221
	ldf.fill f2 = [in0], 16 ;;
-
 
222
	ldf.fill f3 = [in0], 16 ;;
-
 
223
	ldf.fill f4 = [in0], 16 ;;
-
 
224
	ldf.fill f5 = [in0], 16 ;;
-
 
225
 
-
 
226
	ldf.fill f16 = [in0], 16 ;;
-
 
227
	ldf.fill f17 = [in0], 16 ;;
-
 
228
	ldf.fill f18 = [in0], 16 ;;
-
 
229
	ldf.fill f19 = [in0], 16 ;;
-
 
230
	ldf.fill f20 = [in0], 16 ;;
-
 
231
	ldf.fill f21 = [in0], 16 ;;
-
 
232
	ldf.fill f22 = [in0], 16 ;;
-
 
233
	ldf.fill f23 = [in0], 16 ;;
-
 
234
	ldf.fill f24 = [in0], 16 ;;
-
 
235
	ldf.fill f25 = [in0], 16 ;;
-
 
236
	ldf.fill f26 = [in0], 16 ;;
-
 
237
	ldf.fill f27 = [in0], 16 ;;
-
 
238
	ldf.fill f28 = [in0], 16 ;;
-
 
239
	ldf.fill f29 = [in0], 16 ;;
-
 
240
	ldf.fill f30 = [in0], 16 ;;
-
 
241
	ldf.fill f31 = [in0], 16 ;;
192
	
242
	
193
	mov ar.unat = loc1
243
	mov ar.unat = loc1
194
	
244
	
195
	mov r8 = r0			/* context_restore returns 0 */
245
	mov r8 = r0			/* context_restore returns 0 */
196
	br.ret.sptk.many b0
246
	br.ret.sptk.many b0