Commit 0f02251a authored by Peter Maydell's avatar Peter Maydell Committed by Max Filippov
Browse files

xtensa: Avoid calling get_page_addr_code() from helper function



The xtensa frontend calls get_page_addr_code() from its
itlb_hit_test helper function. This function is really part
of the TCG core's internals, and calling it from a target
helper makes it awkward to make changes to that core code.
It also means that we don't pass the correct retaddr to
tlb_fill(), so we won't correctly handle the case where
an exception is generated.

The helper is used for the instructions IHI, IHU and IPFL.

Change it to call cpu_ldb_code_ra() instead.

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent 9c509ff9
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -458,7 +458,11 @@ void HELPER(check_interrupts)(CPUXtensaState *env)

void HELPER(itlb_hit_test)(CPUXtensaState *env, uint32_t vaddr)
{
    get_page_addr_code(env, vaddr);
    /*
     * Attempt the memory load; we don't care about the result but
     * only the side-effects (ie any MMU or other exception)
     */
    cpu_ldub_code_ra(env, vaddr, GETPC());
}

/*!