Skip to content

Commit

Permalink
target/sparc: Prefer fast cpu_env() over slower CPU QOM cast macro
Browse files Browse the repository at this point in the history
Mechanical patch produced running the command documented
in scripts/coccinelle/cpu_env.cocci_template header.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240129164514.73104-27-philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
  • Loading branch information
philmd authored and huth committed Mar 12, 2024
1 parent 795bec9 commit 7797676
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 38 deletions.
17 changes: 5 additions & 12 deletions target/sparc/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,8 @@
static void sparc_cpu_reset_hold(Object *obj)
{
CPUState *cs = CPU(obj);
SPARCCPU *cpu = SPARC_CPU(cs);
SPARCCPUClass *scc = SPARC_CPU_GET_CLASS(obj);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);

if (scc->parent_phases.hold) {
scc->parent_phases.hold(obj);
Expand Down Expand Up @@ -83,8 +82,7 @@ static void sparc_cpu_reset_hold(Object *obj)
static bool sparc_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
{
if (interrupt_request & CPU_INTERRUPT_HARD) {
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);

if (cpu_interrupts_enabled(env) && env->interrupt_index > 0) {
int pil = env->interrupt_index & 0xf;
Expand Down Expand Up @@ -613,8 +611,7 @@ static void cpu_print_cc(FILE *f, uint32_t cc)

static void sparc_cpu_dump_state(CPUState *cs, FILE *f, int flags)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
int i, x;

qemu_fprintf(f, "pc: " TARGET_FMT_lx " npc: " TARGET_FMT_lx "\n", env->pc,
Expand Down Expand Up @@ -711,11 +708,8 @@ static void sparc_cpu_synchronize_from_tb(CPUState *cs,

static bool sparc_cpu_has_work(CPUState *cs)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;

return (cs->interrupt_request & CPU_INTERRUPT_HARD) &&
cpu_interrupts_enabled(env);
cpu_interrupts_enabled(cpu_env(cs));
}

static int sparc_cpu_mmu_index(CPUState *cs, bool ifetch)
Expand Down Expand Up @@ -777,8 +771,7 @@ static void sparc_cpu_realizefn(DeviceState *dev, Error **errp)
CPUState *cs = CPU(dev);
SPARCCPUClass *scc = SPARC_CPU_GET_CLASS(dev);
Error *local_err = NULL;
SPARCCPU *cpu = SPARC_CPU(dev);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);

#if defined(CONFIG_USER_ONLY)
/* We are emulating the kernel, which will trap and emulate float128. */
Expand Down
3 changes: 1 addition & 2 deletions target/sparc/gdbstub.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@

int sparc_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);

if (n < 8) {
/* g0..g7 */
Expand Down
3 changes: 1 addition & 2 deletions target/sparc/int32_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,7 @@ void cpu_check_irqs(CPUSPARCState *env)

void sparc_cpu_do_interrupt(CPUState *cs)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
int cwp, intno = cs->exception_index;

if (qemu_loglevel_mask(CPU_LOG_INT)) {
Expand Down
3 changes: 1 addition & 2 deletions target/sparc/int64_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,7 @@ void cpu_check_irqs(CPUSPARCState *env)

void sparc_cpu_do_interrupt(CPUState *cs)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
int intno = cs->exception_index;
trap_state *tsptr;

Expand Down
6 changes: 2 additions & 4 deletions target/sparc/ldst_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,8 +418,7 @@ static void sparc_raise_mmu_fault(CPUState *cs, hwaddr addr,
bool is_write, bool is_exec, int is_asi,
unsigned size, uintptr_t retaddr)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
int fault_type;

#ifdef DEBUG_UNASSIGNED
Expand Down Expand Up @@ -480,8 +479,7 @@ static void sparc_raise_mmu_fault(CPUState *cs, hwaddr addr,
bool is_write, bool is_exec, int is_asi,
unsigned size, uintptr_t retaddr)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);

#ifdef DEBUG_UNASSIGNED
printf("Unassigned mem access to " HWADDR_FMT_plx " from " TARGET_FMT_lx
Expand Down
15 changes: 5 additions & 10 deletions target/sparc/mmu_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,7 @@ bool sparc_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
MMUAccessType access_type, int mmu_idx,
bool probe, uintptr_t retaddr)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
CPUTLBEntryFull full = {};
target_ulong vaddr;
int error_code = 0, access_index;
Expand Down Expand Up @@ -391,8 +390,7 @@ void dump_mmu(CPUSPARCState *env)
int sparc_cpu_memory_rw_debug(CPUState *cs, vaddr address,
uint8_t *buf, int len, bool is_write)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
target_ulong addr = address;
int i;
int len1;
Expand Down Expand Up @@ -759,8 +757,7 @@ bool sparc_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
MMUAccessType access_type, int mmu_idx,
bool probe, uintptr_t retaddr)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
CPUTLBEntryFull full = {};
int error_code = 0, access_index;

Expand Down Expand Up @@ -898,8 +895,7 @@ hwaddr cpu_get_phys_page_nofault(CPUSPARCState *env, target_ulong addr,

hwaddr sparc_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
hwaddr phys_addr;
int mmu_idx = cpu_mmu_index(cs, false);

Expand All @@ -916,8 +912,7 @@ G_NORETURN void sparc_cpu_do_unaligned_access(CPUState *cs, vaddr addr,
int mmu_idx,
uintptr_t retaddr)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);

#ifdef TARGET_SPARC64
env->dmmu.sfsr = build_sfsr(env, mmu_idx, access_type);
Expand Down
9 changes: 3 additions & 6 deletions target/sparc/translate.c
Original file line number Diff line number Diff line change
Expand Up @@ -4844,13 +4844,12 @@ TRANS(FCMPEq, ALL, do_fcmpq, a, true)
static void sparc_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cs)
{
DisasContext *dc = container_of(dcbase, DisasContext, base);
CPUSPARCState *env = cpu_env(cs);
int bound;

dc->pc = dc->base.pc_first;
dc->npc = (target_ulong)dc->base.tb->cs_base;
dc->mem_idx = dc->base.tb->flags & TB_FLAG_MMU_MASK;
dc->def = &env->def;
dc->def = &cpu_env(cs)->def;
dc->fpu_enabled = tb_fpu_enabled(dc->base.tb->flags);
dc->address_mask_32bit = tb_am_enabled(dc->base.tb->flags);
#ifndef CONFIG_USER_ONLY
Expand Down Expand Up @@ -4900,10 +4899,9 @@ static void sparc_tr_insn_start(DisasContextBase *dcbase, CPUState *cs)
static void sparc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
{
DisasContext *dc = container_of(dcbase, DisasContext, base);
CPUSPARCState *env = cpu_env(cs);
unsigned int insn;

insn = translator_ldl(env, &dc->base, dc->pc);
insn = translator_ldl(cpu_env(cs), &dc->base, dc->pc);
dc->base.pc_next += 4;

if (!decode(dc, insn)) {
Expand Down Expand Up @@ -5106,8 +5104,7 @@ void sparc_restore_state_to_opc(CPUState *cs,
const TranslationBlock *tb,
const uint64_t *data)
{
SPARCCPU *cpu = SPARC_CPU(cs);
CPUSPARCState *env = &cpu->env;
CPUSPARCState *env = cpu_env(cs);
target_ulong pc = data[0];
target_ulong npc = data[1];

Expand Down

0 comments on commit 7797676

Please sign in to comment.