• Home
  • Raw
  • Download

Lines Matching full:__

19 #define __ masm.  macro
69 __ slti(t2, a2, 2 * loadstore_chunk); in CreateMemCopyUint8Function()
70 __ bne(t2, zero_reg, &lastb); in CreateMemCopyUint8Function()
71 __ mov(v0, a0); // In delay slot. in CreateMemCopyUint8Function()
77 __ xor_(t8, a1, a0); in CreateMemCopyUint8Function()
78 __ andi(t8, t8, loadstore_chunk - 1); // t8 is a0/a1 word-displacement. in CreateMemCopyUint8Function()
79 __ bne(t8, zero_reg, &unaligned); in CreateMemCopyUint8Function()
80 __ subu(a3, zero_reg, a0); // In delay slot. in CreateMemCopyUint8Function()
82 __ andi(a3, a3, loadstore_chunk - 1); // Copy a3 bytes to align a0/a1. in CreateMemCopyUint8Function()
83 __ beq(a3, zero_reg, &aligned); // Already aligned. in CreateMemCopyUint8Function()
84 __ subu(a2, a2, a3); // In delay slot. a2 is the remining bytes count. in CreateMemCopyUint8Function()
87 __ lwr(t8, MemOperand(a1)); in CreateMemCopyUint8Function()
88 __ addu(a1, a1, a3); in CreateMemCopyUint8Function()
89 __ swr(t8, MemOperand(a0)); in CreateMemCopyUint8Function()
90 __ addu(a0, a0, a3); in CreateMemCopyUint8Function()
92 __ lwl(t8, MemOperand(a1)); in CreateMemCopyUint8Function()
93 __ addu(a1, a1, a3); in CreateMemCopyUint8Function()
94 __ swl(t8, MemOperand(a0)); in CreateMemCopyUint8Function()
95 __ addu(a0, a0, a3); in CreateMemCopyUint8Function()
101 __ bind(&aligned); in CreateMemCopyUint8Function()
102 __ andi(t8, a2, 0x3f); in CreateMemCopyUint8Function()
103 __ beq(a2, t8, &chkw); // Less than 64? in CreateMemCopyUint8Function()
104 __ subu(a3, a2, t8); // In delay slot. in CreateMemCopyUint8Function()
105 __ addu(a3, a0, a3); // Now a3 is the final dst after loop. in CreateMemCopyUint8Function()
113 __ addu(t0, a0, a2); // t0 is the "past the end" address. in CreateMemCopyUint8Function()
114 __ Subu(t9, t0, pref_limit); // t9 is the "last safe pref" address. in CreateMemCopyUint8Function()
117 __ Pref(pref_hint_load, MemOperand(a1, 0 * pref_chunk)); in CreateMemCopyUint8Function()
118 __ Pref(pref_hint_load, MemOperand(a1, 1 * pref_chunk)); in CreateMemCopyUint8Function()
119 __ Pref(pref_hint_load, MemOperand(a1, 2 * pref_chunk)); in CreateMemCopyUint8Function()
120 __ Pref(pref_hint_load, MemOperand(a1, 3 * pref_chunk)); in CreateMemCopyUint8Function()
123 __ Pref(pref_hint_store, MemOperand(a0, 1 * pref_chunk)); in CreateMemCopyUint8Function()
124 __ Pref(pref_hint_store, MemOperand(a0, 2 * pref_chunk)); in CreateMemCopyUint8Function()
125 __ Pref(pref_hint_store, MemOperand(a0, 3 * pref_chunk)); in CreateMemCopyUint8Function()
127 __ bind(&loop16w); in CreateMemCopyUint8Function()
128 __ lw(t0, MemOperand(a1)); in CreateMemCopyUint8Function()
131 __ sltu(v1, t9, a0); // If a0 > t9, don't use next prefetch. in CreateMemCopyUint8Function()
132 __ Branch(USE_DELAY_SLOT, &skip_pref, gt, v1, Operand(zero_reg)); in CreateMemCopyUint8Function()
134 __ lw(t1, MemOperand(a1, 1, loadstore_chunk)); // Maybe in delay slot. in CreateMemCopyUint8Function()
136 __ Pref(pref_hint_store, MemOperand(a0, 4 * pref_chunk)); in CreateMemCopyUint8Function()
137 __ Pref(pref_hint_store, MemOperand(a0, 5 * pref_chunk)); in CreateMemCopyUint8Function()
139 __ bind(&skip_pref); in CreateMemCopyUint8Function()
140 __ lw(t2, MemOperand(a1, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
141 __ lw(t3, MemOperand(a1, 3, loadstore_chunk)); in CreateMemCopyUint8Function()
142 __ lw(t4, MemOperand(a1, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
143 __ lw(t5, MemOperand(a1, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
144 __ lw(t6, MemOperand(a1, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
145 __ lw(t7, MemOperand(a1, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
146 __ Pref(pref_hint_load, MemOperand(a1, 4 * pref_chunk)); in CreateMemCopyUint8Function()
148 __ sw(t0, MemOperand(a0)); in CreateMemCopyUint8Function()
149 __ sw(t1, MemOperand(a0, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
150 __ sw(t2, MemOperand(a0, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
151 __ sw(t3, MemOperand(a0, 3, loadstore_chunk)); in CreateMemCopyUint8Function()
152 __ sw(t4, MemOperand(a0, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
153 __ sw(t5, MemOperand(a0, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
154 __ sw(t6, MemOperand(a0, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
155 __ sw(t7, MemOperand(a0, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
157 __ lw(t0, MemOperand(a1, 8, loadstore_chunk)); in CreateMemCopyUint8Function()
158 __ lw(t1, MemOperand(a1, 9, loadstore_chunk)); in CreateMemCopyUint8Function()
159 __ lw(t2, MemOperand(a1, 10, loadstore_chunk)); in CreateMemCopyUint8Function()
160 __ lw(t3, MemOperand(a1, 11, loadstore_chunk)); in CreateMemCopyUint8Function()
161 __ lw(t4, MemOperand(a1, 12, loadstore_chunk)); in CreateMemCopyUint8Function()
162 __ lw(t5, MemOperand(a1, 13, loadstore_chunk)); in CreateMemCopyUint8Function()
163 __ lw(t6, MemOperand(a1, 14, loadstore_chunk)); in CreateMemCopyUint8Function()
164 __ lw(t7, MemOperand(a1, 15, loadstore_chunk)); in CreateMemCopyUint8Function()
165 __ Pref(pref_hint_load, MemOperand(a1, 5 * pref_chunk)); in CreateMemCopyUint8Function()
167 __ sw(t0, MemOperand(a0, 8, loadstore_chunk)); in CreateMemCopyUint8Function()
168 __ sw(t1, MemOperand(a0, 9, loadstore_chunk)); in CreateMemCopyUint8Function()
169 __ sw(t2, MemOperand(a0, 10, loadstore_chunk)); in CreateMemCopyUint8Function()
170 __ sw(t3, MemOperand(a0, 11, loadstore_chunk)); in CreateMemCopyUint8Function()
171 __ sw(t4, MemOperand(a0, 12, loadstore_chunk)); in CreateMemCopyUint8Function()
172 __ sw(t5, MemOperand(a0, 13, loadstore_chunk)); in CreateMemCopyUint8Function()
173 __ sw(t6, MemOperand(a0, 14, loadstore_chunk)); in CreateMemCopyUint8Function()
174 __ sw(t7, MemOperand(a0, 15, loadstore_chunk)); in CreateMemCopyUint8Function()
175 __ addiu(a0, a0, 16 * loadstore_chunk); in CreateMemCopyUint8Function()
176 __ bne(a0, a3, &loop16w); in CreateMemCopyUint8Function()
177 __ addiu(a1, a1, 16 * loadstore_chunk); // In delay slot. in CreateMemCopyUint8Function()
178 __ mov(a2, t8); in CreateMemCopyUint8Function()
183 __ bind(&chkw); in CreateMemCopyUint8Function()
184 __ Pref(pref_hint_load, MemOperand(a1, 0 * pref_chunk)); in CreateMemCopyUint8Function()
185 __ andi(t8, a2, 0x1f); in CreateMemCopyUint8Function()
186 __ beq(a2, t8, &chk1w); // Less than 32? in CreateMemCopyUint8Function()
187 __ nop(); // In delay slot. in CreateMemCopyUint8Function()
188 __ lw(t0, MemOperand(a1)); in CreateMemCopyUint8Function()
189 __ lw(t1, MemOperand(a1, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
190 __ lw(t2, MemOperand(a1, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
191 __ lw(t3, MemOperand(a1, 3, loadstore_chunk)); in CreateMemCopyUint8Function()
192 __ lw(t4, MemOperand(a1, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
193 __ lw(t5, MemOperand(a1, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
194 __ lw(t6, MemOperand(a1, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
195 __ lw(t7, MemOperand(a1, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
196 __ addiu(a1, a1, 8 * loadstore_chunk); in CreateMemCopyUint8Function()
197 __ sw(t0, MemOperand(a0)); in CreateMemCopyUint8Function()
198 __ sw(t1, MemOperand(a0, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
199 __ sw(t2, MemOperand(a0, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
200 __ sw(t3, MemOperand(a0, 3, loadstore_chunk)); in CreateMemCopyUint8Function()
201 __ sw(t4, MemOperand(a0, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
202 __ sw(t5, MemOperand(a0, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
203 __ sw(t6, MemOperand(a0, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
204 __ sw(t7, MemOperand(a0, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
205 __ addiu(a0, a0, 8 * loadstore_chunk); in CreateMemCopyUint8Function()
212 __ bind(&chk1w); in CreateMemCopyUint8Function()
213 __ andi(a2, t8, loadstore_chunk - 1); in CreateMemCopyUint8Function()
214 __ beq(a2, t8, &lastb); in CreateMemCopyUint8Function()
215 __ subu(a3, t8, a2); // In delay slot. in CreateMemCopyUint8Function()
216 __ addu(a3, a0, a3); in CreateMemCopyUint8Function()
218 __ bind(&wordCopy_loop); in CreateMemCopyUint8Function()
219 __ lw(t3, MemOperand(a1)); in CreateMemCopyUint8Function()
220 __ addiu(a0, a0, loadstore_chunk); in CreateMemCopyUint8Function()
221 __ addiu(a1, a1, loadstore_chunk); in CreateMemCopyUint8Function()
222 __ bne(a0, a3, &wordCopy_loop); in CreateMemCopyUint8Function()
223 __ sw(t3, MemOperand(a0, -1, loadstore_chunk)); // In delay slot. in CreateMemCopyUint8Function()
225 __ bind(&lastb); in CreateMemCopyUint8Function()
226 __ Branch(&leave, le, a2, Operand(zero_reg)); in CreateMemCopyUint8Function()
227 __ addu(a3, a0, a2); in CreateMemCopyUint8Function()
229 __ bind(&lastbloop); in CreateMemCopyUint8Function()
230 __ lb(v1, MemOperand(a1)); in CreateMemCopyUint8Function()
231 __ addiu(a0, a0, 1); in CreateMemCopyUint8Function()
232 __ addiu(a1, a1, 1); in CreateMemCopyUint8Function()
233 __ bne(a0, a3, &lastbloop); in CreateMemCopyUint8Function()
234 __ sb(v1, MemOperand(a0, -1)); // In delay slot. in CreateMemCopyUint8Function()
236 __ bind(&leave); in CreateMemCopyUint8Function()
237 __ jr(ra); in CreateMemCopyUint8Function()
238 __ nop(); in CreateMemCopyUint8Function()
243 __ bind(&unaligned); in CreateMemCopyUint8Function()
244 __ andi(a3, a3, loadstore_chunk - 1); // Copy a3 bytes to align a0/a1. in CreateMemCopyUint8Function()
245 __ beq(a3, zero_reg, &ua_chk16w); in CreateMemCopyUint8Function()
246 __ subu(a2, a2, a3); // In delay slot. in CreateMemCopyUint8Function()
249 __ lwr(v1, MemOperand(a1)); in CreateMemCopyUint8Function()
250 __ lwl(v1, in CreateMemCopyUint8Function()
252 __ addu(a1, a1, a3); in CreateMemCopyUint8Function()
253 __ swr(v1, MemOperand(a0)); in CreateMemCopyUint8Function()
254 __ addu(a0, a0, a3); in CreateMemCopyUint8Function()
256 __ lwl(v1, MemOperand(a1)); in CreateMemCopyUint8Function()
257 __ lwr(v1, in CreateMemCopyUint8Function()
259 __ addu(a1, a1, a3); in CreateMemCopyUint8Function()
260 __ swl(v1, MemOperand(a0)); in CreateMemCopyUint8Function()
261 __ addu(a0, a0, a3); in CreateMemCopyUint8Function()
268 __ bind(&ua_chk16w); in CreateMemCopyUint8Function()
269 __ andi(t8, a2, 0x3f); in CreateMemCopyUint8Function()
270 __ beq(a2, t8, &ua_chkw); in CreateMemCopyUint8Function()
271 __ subu(a3, a2, t8); // In delay slot. in CreateMemCopyUint8Function()
272 __ addu(a3, a0, a3); in CreateMemCopyUint8Function()
275 __ addu(t0, a0, a2); in CreateMemCopyUint8Function()
276 __ Subu(t9, t0, pref_limit); in CreateMemCopyUint8Function()
279 __ Pref(pref_hint_load, MemOperand(a1, 0 * pref_chunk)); in CreateMemCopyUint8Function()
280 __ Pref(pref_hint_load, MemOperand(a1, 1 * pref_chunk)); in CreateMemCopyUint8Function()
281 __ Pref(pref_hint_load, MemOperand(a1, 2 * pref_chunk)); in CreateMemCopyUint8Function()
284 __ Pref(pref_hint_store, MemOperand(a0, 1 * pref_chunk)); in CreateMemCopyUint8Function()
285 __ Pref(pref_hint_store, MemOperand(a0, 2 * pref_chunk)); in CreateMemCopyUint8Function()
286 __ Pref(pref_hint_store, MemOperand(a0, 3 * pref_chunk)); in CreateMemCopyUint8Function()
289 __ bind(&ua_loop16w); in CreateMemCopyUint8Function()
290 __ Pref(pref_hint_load, MemOperand(a1, 3 * pref_chunk)); in CreateMemCopyUint8Function()
292 __ lwr(t0, MemOperand(a1)); in CreateMemCopyUint8Function()
293 __ lwr(t1, MemOperand(a1, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
294 __ lwr(t2, MemOperand(a1, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
297 __ sltu(v1, t9, a0); in CreateMemCopyUint8Function()
298 __ Branch(USE_DELAY_SLOT, &ua_skip_pref, gt, v1, Operand(zero_reg)); in CreateMemCopyUint8Function()
300 __ lwr(t3, MemOperand(a1, 3, loadstore_chunk)); // Maybe in delay slot. in CreateMemCopyUint8Function()
302 __ Pref(pref_hint_store, MemOperand(a0, 4 * pref_chunk)); in CreateMemCopyUint8Function()
303 __ Pref(pref_hint_store, MemOperand(a0, 5 * pref_chunk)); in CreateMemCopyUint8Function()
305 __ bind(&ua_skip_pref); in CreateMemCopyUint8Function()
306 __ lwr(t4, MemOperand(a1, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
307 __ lwr(t5, MemOperand(a1, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
308 __ lwr(t6, MemOperand(a1, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
309 __ lwr(t7, MemOperand(a1, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
310 __ lwl(t0, in CreateMemCopyUint8Function()
312 __ lwl(t1, in CreateMemCopyUint8Function()
314 __ lwl(t2, in CreateMemCopyUint8Function()
316 __ lwl(t3, in CreateMemCopyUint8Function()
318 __ lwl(t4, in CreateMemCopyUint8Function()
320 __ lwl(t5, in CreateMemCopyUint8Function()
322 __ lwl(t6, in CreateMemCopyUint8Function()
324 __ lwl(t7, in CreateMemCopyUint8Function()
327 __ lwl(t0, MemOperand(a1)); in CreateMemCopyUint8Function()
328 __ lwl(t1, MemOperand(a1, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
329 __ lwl(t2, MemOperand(a1, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
332 __ sltu(v1, t9, a0); in CreateMemCopyUint8Function()
333 __ Branch(USE_DELAY_SLOT, &ua_skip_pref, gt, v1, Operand(zero_reg)); in CreateMemCopyUint8Function()
335 __ lwl(t3, MemOperand(a1, 3, loadstore_chunk)); // Maybe in delay slot. in CreateMemCopyUint8Function()
337 __ Pref(pref_hint_store, MemOperand(a0, 4 * pref_chunk)); in CreateMemCopyUint8Function()
338 __ Pref(pref_hint_store, MemOperand(a0, 5 * pref_chunk)); in CreateMemCopyUint8Function()
340 __ bind(&ua_skip_pref); in CreateMemCopyUint8Function()
341 __ lwl(t4, MemOperand(a1, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
342 __ lwl(t5, MemOperand(a1, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
343 __ lwl(t6, MemOperand(a1, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
344 __ lwl(t7, MemOperand(a1, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
345 __ lwr(t0, in CreateMemCopyUint8Function()
347 __ lwr(t1, in CreateMemCopyUint8Function()
349 __ lwr(t2, in CreateMemCopyUint8Function()
351 __ lwr(t3, in CreateMemCopyUint8Function()
353 __ lwr(t4, in CreateMemCopyUint8Function()
355 __ lwr(t5, in CreateMemCopyUint8Function()
357 __ lwr(t6, in CreateMemCopyUint8Function()
359 __ lwr(t7, in CreateMemCopyUint8Function()
362 __ Pref(pref_hint_load, MemOperand(a1, 4 * pref_chunk)); in CreateMemCopyUint8Function()
363 __ sw(t0, MemOperand(a0)); in CreateMemCopyUint8Function()
364 __ sw(t1, MemOperand(a0, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
365 __ sw(t2, MemOperand(a0, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
366 __ sw(t3, MemOperand(a0, 3, loadstore_chunk)); in CreateMemCopyUint8Function()
367 __ sw(t4, MemOperand(a0, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
368 __ sw(t5, MemOperand(a0, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
369 __ sw(t6, MemOperand(a0, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
370 __ sw(t7, MemOperand(a0, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
372 __ lwr(t0, MemOperand(a1, 8, loadstore_chunk)); in CreateMemCopyUint8Function()
373 __ lwr(t1, MemOperand(a1, 9, loadstore_chunk)); in CreateMemCopyUint8Function()
374 __ lwr(t2, MemOperand(a1, 10, loadstore_chunk)); in CreateMemCopyUint8Function()
375 __ lwr(t3, MemOperand(a1, 11, loadstore_chunk)); in CreateMemCopyUint8Function()
376 __ lwr(t4, MemOperand(a1, 12, loadstore_chunk)); in CreateMemCopyUint8Function()
377 __ lwr(t5, MemOperand(a1, 13, loadstore_chunk)); in CreateMemCopyUint8Function()
378 __ lwr(t6, MemOperand(a1, 14, loadstore_chunk)); in CreateMemCopyUint8Function()
379 __ lwr(t7, MemOperand(a1, 15, loadstore_chunk)); in CreateMemCopyUint8Function()
380 __ lwl(t0, in CreateMemCopyUint8Function()
382 __ lwl(t1, in CreateMemCopyUint8Function()
384 __ lwl(t2, in CreateMemCopyUint8Function()
386 __ lwl(t3, in CreateMemCopyUint8Function()
388 __ lwl(t4, in CreateMemCopyUint8Function()
390 __ lwl(t5, in CreateMemCopyUint8Function()
392 __ lwl(t6, in CreateMemCopyUint8Function()
394 __ lwl(t7, in CreateMemCopyUint8Function()
397 __ lwl(t0, MemOperand(a1, 8, loadstore_chunk)); in CreateMemCopyUint8Function()
398 __ lwl(t1, MemOperand(a1, 9, loadstore_chunk)); in CreateMemCopyUint8Function()
399 __ lwl(t2, MemOperand(a1, 10, loadstore_chunk)); in CreateMemCopyUint8Function()
400 __ lwl(t3, MemOperand(a1, 11, loadstore_chunk)); in CreateMemCopyUint8Function()
401 __ lwl(t4, MemOperand(a1, 12, loadstore_chunk)); in CreateMemCopyUint8Function()
402 __ lwl(t5, MemOperand(a1, 13, loadstore_chunk)); in CreateMemCopyUint8Function()
403 __ lwl(t6, MemOperand(a1, 14, loadstore_chunk)); in CreateMemCopyUint8Function()
404 __ lwl(t7, MemOperand(a1, 15, loadstore_chunk)); in CreateMemCopyUint8Function()
405 __ lwr(t0, in CreateMemCopyUint8Function()
407 __ lwr(t1, in CreateMemCopyUint8Function()
409 __ lwr(t2, in CreateMemCopyUint8Function()
411 __ lwr(t3, in CreateMemCopyUint8Function()
413 __ lwr(t4, in CreateMemCopyUint8Function()
415 __ lwr(t5, in CreateMemCopyUint8Function()
417 __ lwr(t6, in CreateMemCopyUint8Function()
419 __ lwr(t7, in CreateMemCopyUint8Function()
422 __ Pref(pref_hint_load, MemOperand(a1, 5 * pref_chunk)); in CreateMemCopyUint8Function()
423 __ sw(t0, MemOperand(a0, 8, loadstore_chunk)); in CreateMemCopyUint8Function()
424 __ sw(t1, MemOperand(a0, 9, loadstore_chunk)); in CreateMemCopyUint8Function()
425 __ sw(t2, MemOperand(a0, 10, loadstore_chunk)); in CreateMemCopyUint8Function()
426 __ sw(t3, MemOperand(a0, 11, loadstore_chunk)); in CreateMemCopyUint8Function()
427 __ sw(t4, MemOperand(a0, 12, loadstore_chunk)); in CreateMemCopyUint8Function()
428 __ sw(t5, MemOperand(a0, 13, loadstore_chunk)); in CreateMemCopyUint8Function()
429 __ sw(t6, MemOperand(a0, 14, loadstore_chunk)); in CreateMemCopyUint8Function()
430 __ sw(t7, MemOperand(a0, 15, loadstore_chunk)); in CreateMemCopyUint8Function()
431 __ addiu(a0, a0, 16 * loadstore_chunk); in CreateMemCopyUint8Function()
432 __ bne(a0, a3, &ua_loop16w); in CreateMemCopyUint8Function()
433 __ addiu(a1, a1, 16 * loadstore_chunk); // In delay slot. in CreateMemCopyUint8Function()
434 __ mov(a2, t8); in CreateMemCopyUint8Function()
439 __ bind(&ua_chkw); in CreateMemCopyUint8Function()
440 __ Pref(pref_hint_load, MemOperand(a1)); in CreateMemCopyUint8Function()
441 __ andi(t8, a2, 0x1f); in CreateMemCopyUint8Function()
443 __ beq(a2, t8, &ua_chk1w); in CreateMemCopyUint8Function()
444 __ nop(); // In delay slot. in CreateMemCopyUint8Function()
446 __ lwr(t0, MemOperand(a1)); in CreateMemCopyUint8Function()
447 __ lwr(t1, MemOperand(a1, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
448 __ lwr(t2, MemOperand(a1, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
449 __ lwr(t3, MemOperand(a1, 3, loadstore_chunk)); in CreateMemCopyUint8Function()
450 __ lwr(t4, MemOperand(a1, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
451 __ lwr(t5, MemOperand(a1, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
452 __ lwr(t6, MemOperand(a1, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
453 __ lwr(t7, MemOperand(a1, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
454 __ lwl(t0, in CreateMemCopyUint8Function()
456 __ lwl(t1, in CreateMemCopyUint8Function()
458 __ lwl(t2, in CreateMemCopyUint8Function()
460 __ lwl(t3, in CreateMemCopyUint8Function()
462 __ lwl(t4, in CreateMemCopyUint8Function()
464 __ lwl(t5, in CreateMemCopyUint8Function()
466 __ lwl(t6, in CreateMemCopyUint8Function()
468 __ lwl(t7, in CreateMemCopyUint8Function()
471 __ lwl(t0, MemOperand(a1)); in CreateMemCopyUint8Function()
472 __ lwl(t1, MemOperand(a1, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
473 __ lwl(t2, MemOperand(a1, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
474 __ lwl(t3, MemOperand(a1, 3, loadstore_chunk)); in CreateMemCopyUint8Function()
475 __ lwl(t4, MemOperand(a1, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
476 __ lwl(t5, MemOperand(a1, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
477 __ lwl(t6, MemOperand(a1, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
478 __ lwl(t7, MemOperand(a1, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
479 __ lwr(t0, in CreateMemCopyUint8Function()
481 __ lwr(t1, in CreateMemCopyUint8Function()
483 __ lwr(t2, in CreateMemCopyUint8Function()
485 __ lwr(t3, in CreateMemCopyUint8Function()
487 __ lwr(t4, in CreateMemCopyUint8Function()
489 __ lwr(t5, in CreateMemCopyUint8Function()
491 __ lwr(t6, in CreateMemCopyUint8Function()
493 __ lwr(t7, in CreateMemCopyUint8Function()
496 __ addiu(a1, a1, 8 * loadstore_chunk); in CreateMemCopyUint8Function()
497 __ sw(t0, MemOperand(a0)); in CreateMemCopyUint8Function()
498 __ sw(t1, MemOperand(a0, 1, loadstore_chunk)); in CreateMemCopyUint8Function()
499 __ sw(t2, MemOperand(a0, 2, loadstore_chunk)); in CreateMemCopyUint8Function()
500 __ sw(t3, MemOperand(a0, 3, loadstore_chunk)); in CreateMemCopyUint8Function()
501 __ sw(t4, MemOperand(a0, 4, loadstore_chunk)); in CreateMemCopyUint8Function()
502 __ sw(t5, MemOperand(a0, 5, loadstore_chunk)); in CreateMemCopyUint8Function()
503 __ sw(t6, MemOperand(a0, 6, loadstore_chunk)); in CreateMemCopyUint8Function()
504 __ sw(t7, MemOperand(a0, 7, loadstore_chunk)); in CreateMemCopyUint8Function()
505 __ addiu(a0, a0, 8 * loadstore_chunk); in CreateMemCopyUint8Function()
509 __ bind(&ua_chk1w); in CreateMemCopyUint8Function()
510 __ andi(a2, t8, loadstore_chunk - 1); in CreateMemCopyUint8Function()
511 __ beq(a2, t8, &ua_smallCopy); in CreateMemCopyUint8Function()
512 __ subu(a3, t8, a2); // In delay slot. in CreateMemCopyUint8Function()
513 __ addu(a3, a0, a3); in CreateMemCopyUint8Function()
515 __ bind(&ua_wordCopy_loop); in CreateMemCopyUint8Function()
517 __ lwr(v1, MemOperand(a1)); in CreateMemCopyUint8Function()
518 __ lwl(v1, in CreateMemCopyUint8Function()
521 __ lwl(v1, MemOperand(a1)); in CreateMemCopyUint8Function()
522 __ lwr(v1, in CreateMemCopyUint8Function()
525 __ addiu(a0, a0, loadstore_chunk); in CreateMemCopyUint8Function()
526 __ addiu(a1, a1, loadstore_chunk); in CreateMemCopyUint8Function()
527 __ bne(a0, a3, &ua_wordCopy_loop); in CreateMemCopyUint8Function()
528 __ sw(v1, MemOperand(a0, -1, loadstore_chunk)); // In delay slot. in CreateMemCopyUint8Function()
531 __ bind(&ua_smallCopy); in CreateMemCopyUint8Function()
532 __ beq(a2, zero_reg, &leave); in CreateMemCopyUint8Function()
533 __ addu(a3, a0, a2); // In delay slot. in CreateMemCopyUint8Function()
535 __ bind(&ua_smallCopy_loop); in CreateMemCopyUint8Function()
536 __ lb(v1, MemOperand(a1)); in CreateMemCopyUint8Function()
537 __ addiu(a0, a0, 1); in CreateMemCopyUint8Function()
538 __ addiu(a1, a1, 1); in CreateMemCopyUint8Function()
539 __ bne(a0, a3, &ua_smallCopy_loop); in CreateMemCopyUint8Function()
540 __ sb(v1, MemOperand(a0, -1)); // In delay slot. in CreateMemCopyUint8Function()
542 __ jr(ra); in CreateMemCopyUint8Function()
543 __ nop(); in CreateMemCopyUint8Function()
568 __ MovFromFloatParameter(f12); in CreateSqrtFunction()
569 __ sqrt_d(f0, f12); in CreateSqrtFunction()
570 __ MovToFloatResult(f0); in CreateSqrtFunction()
571 __ Ret(); in CreateSqrtFunction()
583 #undef __
606 #define __ ACCESS_MASM(masm) macro
614 __ bind(&indirect_string_loaded); in Generate()
617 __ lw(result, FieldMemOperand(string, HeapObject::kMapOffset)); in Generate()
618 __ lbu(result, FieldMemOperand(result, Map::kInstanceTypeOffset)); in Generate()
622 __ And(at, result, Operand(kIsIndirectStringMask)); in Generate()
623 __ Branch(&check_sequential, eq, at, Operand(zero_reg)); in Generate()
627 __ And(at, result, Operand(kStringRepresentationMask)); in Generate()
628 __ Branch(&cons_string, eq, at, Operand(kConsStringTag)); in Generate()
629 __ Branch(&thin_string, eq, at, Operand(kThinStringTag)); in Generate()
632 __ lw(result, FieldMemOperand(string, SlicedString::kOffsetOffset)); in Generate()
633 __ lw(string, FieldMemOperand(string, SlicedString::kParentOffset)); in Generate()
634 __ sra(at, result, kSmiTagSize); in Generate()
635 __ Addu(index, index, at); in Generate()
636 __ jmp(&indirect_string_loaded); in Generate()
639 __ bind(&thin_string); in Generate()
640 __ lw(string, FieldMemOperand(string, ThinString::kActualOffset)); in Generate()
641 __ jmp(&indirect_string_loaded); in Generate()
648 __ bind(&cons_string); in Generate()
649 __ lw(result, FieldMemOperand(string, ConsString::kSecondOffset)); in Generate()
650 __ LoadRoot(at, Heap::kempty_stringRootIndex); in Generate()
651 __ Branch(call_runtime, ne, result, Operand(at)); in Generate()
653 __ lw(string, FieldMemOperand(string, ConsString::kFirstOffset)); in Generate()
654 __ jmp(&indirect_string_loaded); in Generate()
660 __ bind(&check_sequential); in Generate()
662 __ And(at, result, Operand(kStringRepresentationMask)); in Generate()
663 __ Branch(&external_string, ne, at, Operand(zero_reg)); in Generate()
667 __ Addu(string, in Generate()
670 __ jmp(&check_encoding); in Generate()
673 __ bind(&external_string); in Generate()
677 __ And(at, result, Operand(kIsIndirectStringMask)); in Generate()
678 __ Assert(eq, kExternalStringExpectedButNotFound, in Generate()
683 __ And(at, result, Operand(kShortExternalStringMask)); in Generate()
684 __ Branch(call_runtime, ne, at, Operand(zero_reg)); in Generate()
685 __ lw(string, FieldMemOperand(string, ExternalString::kResourceDataOffset)); in Generate()
688 __ bind(&check_encoding); in Generate()
690 __ And(at, result, Operand(kStringEncodingMask)); in Generate()
691 __ Branch(&one_byte, ne, at, Operand(zero_reg)); in Generate()
693 __ Lsa(at, string, index, 1); in Generate()
694 __ lhu(result, MemOperand(at)); in Generate()
695 __ jmp(&done); in Generate()
696 __ bind(&one_byte); in Generate()
698 __ Addu(at, string, index); in Generate()
699 __ lbu(result, MemOperand(at)); in Generate()
700 __ bind(&done); in Generate()
774 #undef __