On 01/16/2017 04:44 PM, Marek Vasut wrote:
+ TCGv_i32 tmp = tcg_const_i32(instr.imm5 + 32); + gen_helper_mmu_write(dc->cpu_env, tmp, load_gpr(dc, instr.a)); + tcg_temp_free_i32(tmp); +#endif + break; + } + + default: + tcg_gen_mov_tl(dc->cpu_R[instr.imm5 + 32], load_gpr(dc, instr.a)); + break; + } + + /* If interrupts were enabled using WRCTL, trigger them. */ +#if !defined(CONFIG_USER_ONLY) + if ((instr.imm5 + 32) == CR_STATUS) {
Did you want CR_BASE here instead of hard-coding 32?
+static const char *regnames[] = {
const char * const
+ "reserved", "reserved", "reserved", "reserved", + "reserved", "reserved", "reserved", "reserved", + "reserved", "reserved", "reserved", "reserved", + "reserved", "reserved", "reserved", "reserved",
You might as well number them, e.g. resXX, to make it obvious in the dumps what's happening.
+ if (num_insns + 1 == max_insns && (tb->cflags & CF_LAST_IO)) { + gen_io_start(); + }
num_insns has already be incremented; don't + 1 here.
+ && qemu_log_in_addr_range(tb->pc)) { + qemu_log("IN: %s\n", lookup_symbol(tb->pc)); + log_target_disas(cs, tb->pc, dc->pc - tb->pc, 0); + qemu_log("\n"); + }
qemu_log_lock / qemu_log_unlock around the dump. r~