Commit bbd77c18 authored by Peter Crosthwaite's avatar Peter Crosthwaite Committed by Andreas Färber
Browse files

translate-all: Change tb_flush() env argument to cpu



All of the core-code usages of this API have the cpu pointer handy so
pass it in. There are only 3 architecture specific usages (2 of which
are commented out) which can just use ENV_GET_CPU() locally to get the
cpu pointer. The reduces core code usage of the CPU env, which brings
us closer to common-obj'ing these core files.

Cc: Riku Voipio <riku.voipio@iki.fi>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: default avatarEduardo Habkost <ehabkost@redhat.com>
Acked-by: default avatarEduardo Habkost <ehabkost@redhat.com>
Signed-off-by: default avatarPeter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
parent 6dd0f834
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -816,8 +816,7 @@ void cpu_single_step(CPUState *cpu, int enabled)
        } else {
            /* must flush all the translated code to avoid inconsistencies */
            /* XXX: only flush what is necessary */
            CPUArchState *env = cpu->env_ptr;
            tb_flush(env);
            tb_flush(cpu);
        }
    }
}
+2 −4
Original line number Diff line number Diff line
@@ -1226,7 +1226,6 @@ void gdb_set_stop_cpu(CPUState *cpu)
static void gdb_vm_state_change(void *opaque, int running, RunState state)
{
    GDBState *s = gdbserver_state;
    CPUArchState *env = s->c_cpu->env_ptr;
    CPUState *cpu = s->c_cpu;
    char buf[256];
    const char *type;
@@ -1261,7 +1260,7 @@ static void gdb_vm_state_change(void *opaque, int running, RunState state)
            cpu->watchpoint_hit = NULL;
            goto send_packet;
        }
        tb_flush(env);
        tb_flush(cpu);
        ret = GDB_SIGNAL_TRAP;
        break;
    case RUN_STATE_PAUSED:
@@ -1490,7 +1489,6 @@ gdb_queuesig (void)
int
gdb_handlesig(CPUState *cpu, int sig)
{
    CPUArchState *env = cpu->env_ptr;
    GDBState *s;
    char buf[256];
    int n;
@@ -1502,7 +1500,7 @@ gdb_handlesig(CPUState *cpu, int sig)

    /* disable single step if it was enabled */
    cpu_single_step(cpu, 0);
    tb_flush(env);
    tb_flush(cpu);

    if (sig != 0) {
        snprintf(buf, sizeof(buf), "S%02x", target_signal_to_gdb(sig));
+1 −1
Original line number Diff line number Diff line
@@ -196,7 +196,7 @@ struct TBContext {
};

void tb_free(TranslationBlock *tb);
void tb_flush(CPUArchState *env);
void tb_flush(CPUState *cpu);
void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr);

#if defined(USE_DIRECT_JUMP)
+1 −1
Original line number Diff line number Diff line
@@ -2348,7 +2348,7 @@ static void setup_frame(int sig, struct target_sigaction *ka,

		/* Flush instruction space. */
		//flush_sig_insns(current->mm, (unsigned long) &(sf->insns[0]));
                //		tb_flush(env);
                //		tb_flush(CPU(sparc_env_get_cpu(env)));
	}
        unlock_user(sf, sf_addr, sizeof(struct target_signal_frame));
	return;
+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ void helper_tbis(CPUAlphaState *env, uint64_t p)

void helper_tb_flush(CPUAlphaState *env)
{
    tb_flush(env);
    tb_flush(CPU(alpha_env_get_cpu(env)));
}

void helper_halt(uint64_t restart)
Loading