170 |
170 |
void helper_ld_asi(int asi, int size, int sign)
|
171 |
171 |
{
|
172 |
172 |
uint32_t ret = 0;
|
|
173 |
uint64_t tmp;
|
173 |
174 |
#ifdef DEBUG_MXCC
|
174 |
175 |
uint32_t last_T0 = T0;
|
175 |
176 |
#endif
|
... | ... | |
244 |
245 |
ret = ldl_code(T0 & ~3);
|
245 |
246 |
break;
|
246 |
247 |
case 8:
|
247 |
|
ret = ldl_code(T0 & ~3);
|
248 |
|
T0 = ldl_code((T0 + 4) & ~3);
|
|
248 |
tmp = ldq_code(T0 & ~7);
|
|
249 |
ret = tmp >> 32;
|
|
250 |
T0 = tmp & 0xffffffff;
|
249 |
251 |
break;
|
250 |
252 |
}
|
251 |
253 |
break;
|
... | ... | |
262 |
264 |
ret = ldl_user(T0 & ~3);
|
263 |
265 |
break;
|
264 |
266 |
case 8:
|
265 |
|
ret = ldl_user(T0 & ~3);
|
266 |
|
T0 = ldl_user((T0 + 4) & ~3);
|
|
267 |
tmp = ldq_user(T0 & ~7);
|
|
268 |
ret = tmp >> 32;
|
|
269 |
T0 = tmp & 0xffffffff;
|
267 |
270 |
break;
|
268 |
271 |
}
|
269 |
272 |
break;
|
... | ... | |
280 |
283 |
ret = ldl_kernel(T0 & ~3);
|
281 |
284 |
break;
|
282 |
285 |
case 8:
|
283 |
|
ret = ldl_kernel(T0 & ~3);
|
284 |
|
T0 = ldl_kernel((T0 + 4) & ~3);
|
|
286 |
tmp = ldq_kernel(T0 & ~7);
|
|
287 |
ret = tmp >> 32;
|
|
288 |
T0 = tmp & 0xffffffff;
|
285 |
289 |
break;
|
286 |
290 |
}
|
287 |
291 |
break;
|
... | ... | |
303 |
307 |
ret = ldl_phys(T0 & ~3);
|
304 |
308 |
break;
|
305 |
309 |
case 8:
|
306 |
|
ret = ldl_phys(T0 & ~3);
|
307 |
|
T0 = ldl_phys((T0 + 4) & ~3);
|
|
310 |
tmp = ldq_phys(T0 & ~7);
|
|
311 |
ret = tmp >> 32;
|
|
312 |
T0 = tmp & 0xffffffff;
|
308 |
313 |
break;
|
309 |
314 |
}
|
310 |
315 |
break;
|
... | ... | |
325 |
330 |
| ((target_phys_addr_t)(asi & 0xf) << 32));
|
326 |
331 |
break;
|
327 |
332 |
case 8:
|
328 |
|
ret = ldl_phys((target_phys_addr_t)(T0 & ~3)
|
329 |
|
| ((target_phys_addr_t)(asi & 0xf) << 32));
|
330 |
|
T0 = ldl_phys((target_phys_addr_t)((T0 + 4) & ~3)
|
|
333 |
tmp = ldq_phys((target_phys_addr_t)(T0 & ~7)
|
331 |
334 |
| ((target_phys_addr_t)(asi & 0xf) << 32));
|
|
335 |
ret = tmp >> 32;
|
|
336 |
T0 = tmp & 0xffffffff;
|
332 |
337 |
break;
|
333 |
338 |
}
|
334 |
339 |
break;
|
... | ... | |
515 |
520 |
stl_user(T0 & ~3, T1);
|
516 |
521 |
break;
|
517 |
522 |
case 8:
|
518 |
|
stl_user(T0 & ~3, T1);
|
519 |
|
stl_user((T0 + 4) & ~3, T2);
|
|
523 |
stq_user(T0 & ~7, ((uint64_t)T1 << 32) | T2);
|
520 |
524 |
break;
|
521 |
525 |
}
|
522 |
526 |
break;
|
... | ... | |
533 |
537 |
stl_kernel(T0 & ~3, T1);
|
534 |
538 |
break;
|
535 |
539 |
case 8:
|
536 |
|
stl_kernel(T0 & ~3, T1);
|
537 |
|
stl_kernel((T0 + 4) & ~3, T2);
|
|
540 |
stq_kernel(T0 & ~7, ((uint64_t)T1 << 32) | T2);
|
538 |
541 |
break;
|
539 |
542 |
}
|
540 |
543 |
break;
|
... | ... | |
591 |
594 |
stl_phys(T0 & ~3, T1);
|
592 |
595 |
break;
|
593 |
596 |
case 8:
|
594 |
|
stl_phys(T0 & ~3, T1);
|
595 |
|
stl_phys((T0 + 4) & ~3, T2);
|
|
597 |
stq_phys(T0 & ~7, ((uint64_t)T1 << 32) | T2);
|
596 |
598 |
break;
|
597 |
599 |
}
|
598 |
600 |
}
|
... | ... | |
615 |
617 |
| ((target_phys_addr_t)(asi & 0xf) << 32), T1);
|
616 |
618 |
break;
|
617 |
619 |
case 8:
|
618 |
|
stl_phys((target_phys_addr_t)(T0 & ~3)
|
619 |
|
| ((target_phys_addr_t)(asi & 0xf) << 32), T1);
|
620 |
|
stl_phys((target_phys_addr_t)((T0 + 4) & ~3)
|
621 |
|
| ((target_phys_addr_t)(asi & 0xf) << 32), T2);
|
|
620 |
stq_phys((target_phys_addr_t)(T0 & ~7)
|
|
621 |
| ((target_phys_addr_t)(asi & 0xf) << 32),
|
|
622 |
((uint64_t)T1 << 32) | T2);
|
622 |
623 |
break;
|
623 |
624 |
}
|
624 |
625 |
}
|