target/sparc: Use cpu_ld*_code_mmu
This passes on the memop as given as argument to helper_ld_asi to the ultimate load primitive. Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
316b6783f1
commit
60abd45224
|
@ -593,6 +593,7 @@ uint64_t helper_ld_asi(CPUSPARCState *env, target_ulong addr,
|
||||||
#if defined(DEBUG_MXCC) || defined(DEBUG_ASI)
|
#if defined(DEBUG_MXCC) || defined(DEBUG_ASI)
|
||||||
uint32_t last_addr = addr;
|
uint32_t last_addr = addr;
|
||||||
#endif
|
#endif
|
||||||
|
MemOpIdx oi;
|
||||||
|
|
||||||
do_check_align(env, addr, size - 1, GETPC());
|
do_check_align(env, addr, size - 1, GETPC());
|
||||||
switch (asi) {
|
switch (asi) {
|
||||||
|
@ -692,19 +693,20 @@ uint64_t helper_ld_asi(CPUSPARCState *env, target_ulong addr,
|
||||||
case ASI_M_IODIAG: /* Turbosparc IOTLB Diagnostic */
|
case ASI_M_IODIAG: /* Turbosparc IOTLB Diagnostic */
|
||||||
break;
|
break;
|
||||||
case ASI_KERNELTXT: /* Supervisor code access */
|
case ASI_KERNELTXT: /* Supervisor code access */
|
||||||
|
oi = make_memop_idx(memop, cpu_mmu_index(env, true));
|
||||||
switch (size) {
|
switch (size) {
|
||||||
case 1:
|
case 1:
|
||||||
ret = cpu_ldub_code(env, addr);
|
ret = cpu_ldb_code_mmu(env, addr, oi, GETPC());
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
ret = cpu_lduw_code(env, addr);
|
ret = cpu_ldw_code_mmu(env, addr, oi, GETPC());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
case 4:
|
case 4:
|
||||||
ret = cpu_ldl_code(env, addr);
|
ret = cpu_ldl_code_mmu(env, addr, oi, GETPC());
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
ret = cpu_ldq_code(env, addr);
|
ret = cpu_ldq_code_mmu(env, addr, oi, GETPC());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue