summaryrefslogtreecommitdiffstats
path: root/target/xtensa/op_helper.c
diff options
context:
space:
mode:
authorMax Filippov2018-08-20 04:27:21 +0200
committerMax Filippov2018-09-17 20:05:26 +0200
commit76b7dd641fad4ab8c35f647cffe0fd47c4302b72 (patch)
tree36c2aed5e09164e9af58b54de1495c844514e193 /target/xtensa/op_helper.c
parenttarget/xtensa: add test_kc705_be core (diff)
downloadqemu-76b7dd641fad4ab8c35f647cffe0fd47c4302b72.tar.gz
qemu-76b7dd641fad4ab8c35f647cffe0fd47c4302b72.tar.xz
qemu-76b7dd641fad4ab8c35f647cffe0fd47c4302b72.zip
target/xtensa: convert to do_transaction_failed
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'target/xtensa/op_helper.c')
-rw-r--r--target/xtensa/op_helper.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/target/xtensa/op_helper.c b/target/xtensa/op_helper.c
index d4c942d879..06fe346f02 100644
--- a/target/xtensa/op_helper.c
+++ b/target/xtensa/op_helper.c
@@ -78,18 +78,20 @@ void tlb_fill(CPUState *cs, target_ulong vaddr, int size,
}
}
-void xtensa_cpu_do_unassigned_access(CPUState *cs, hwaddr addr,
- bool is_write, bool is_exec, int opaque,
- unsigned size)
+void xtensa_cpu_do_transaction_failed(CPUState *cs, hwaddr physaddr, vaddr addr,
+ unsigned size, MMUAccessType access_type,
+ int mmu_idx, MemTxAttrs attrs,
+ MemTxResult response, uintptr_t retaddr)
{
XtensaCPU *cpu = XTENSA_CPU(cs);
CPUXtensaState *env = &cpu->env;
+ cpu_restore_state(cs, retaddr, true);
HELPER(exception_cause_vaddr)(env, env->pc,
- is_exec ?
+ access_type == MMU_INST_FETCH ?
INSTR_PIF_ADDR_ERROR_CAUSE :
LOAD_STORE_PIF_ADDR_ERROR_CAUSE,
- is_exec ? addr : cs->mem_io_vaddr);
+ addr);
}
static void tb_invalidate_virtual_addr(CPUXtensaState *env, uint32_t vaddr)