]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
xtensa: Avoid calling get_page_addr_code() from helper function
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 22 Jun 2018 13:58:23 +0000 (14:58 +0100)
committerMax Filippov <jcmvbkbc@gmail.com>
Sat, 30 Jun 2018 19:00:17 +0000 (12:00 -0700)
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: Peter Maydell <peter.maydell@linaro.org>
target/xtensa/op_helper.c

index bbbbb33f3c5b465b88c6958b98df78e6a5c50034..d4c942d87980db00e212927acdc857a55fbf818e 100644 (file)
@@ -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());
 }
 
 /*!