Commit 62ed68e3 authored by Max Filippov's avatar Max Filippov
Browse files

target/xtensa: fix simcall for newer hardware



After Xtensa release RE.2 simcall opcode has become nop for the
hardware instead of illegal instruction.

Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
parent 2cc2278e
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -2367,9 +2367,10 @@ static bool test_ill_simcall(DisasContext *dc, const OpcodeArg arg[],
#ifdef CONFIG_USER_ONLY
    bool ill = true;
#else
    bool ill = !semihosting_enabled();
    /* Between RE.2 and RE.3 simcall opcode's become nop for the hardware. */
    bool ill = dc->config->hw_version <= 250002 && !semihosting_enabled();
#endif
    if (ill) {
    if (ill || !semihosting_enabled()) {
        qemu_log_mask(LOG_GUEST_ERROR, "SIMCALL but semihosting is disabled\n");
    }
    return ill;
@@ -2379,7 +2380,9 @@ static void translate_simcall(DisasContext *dc, const OpcodeArg arg[],
                              const uint32_t par[])
{
#ifndef CONFIG_USER_ONLY
    if (semihosting_enabled()) {
        gen_helper_simcall(cpu_env);
    }
#endif
}