Loading cpu-exec.c +1 −1 Original line number Diff line number Diff line Loading @@ -197,7 +197,7 @@ static inline TranslationBlock *tb_find_fast(void) #elif defined(TARGET_MIPS) flags = env->hflags & (MIPS_HFLAG_TMASK | MIPS_HFLAG_BMASK); cs_base = 0; pc = env->PC[env->current_tc]; pc = env->active_tc.PC; #elif defined(TARGET_M68K) flags = (env->fpcr & M68K_FPCR_PREC) /* Bit 6 */ | (env->sr & SR_S) /* Bit 13 */ Loading gdbstub.c +10 −10 Original line number Diff line number Diff line Loading @@ -704,17 +704,17 @@ static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf) ptr = mem_buf; for (i = 0; i < 32; i++) { *(target_ulong *)ptr = tswapl(env->gpr[env->current_tc][i]); *(target_ulong *)ptr = tswapl(env->active_tc.gpr[i]); ptr += sizeof(target_ulong); } *(target_ulong *)ptr = (int32_t)tswap32(env->CP0_Status); ptr += sizeof(target_ulong); *(target_ulong *)ptr = tswapl(env->LO[env->current_tc][0]); *(target_ulong *)ptr = tswapl(env->active_tc.LO[0]); ptr += sizeof(target_ulong); *(target_ulong *)ptr = tswapl(env->HI[env->current_tc][0]); *(target_ulong *)ptr = tswapl(env->active_tc.HI[0]); ptr += sizeof(target_ulong); *(target_ulong *)ptr = tswapl(env->CP0_BadVAddr); Loading @@ -723,7 +723,7 @@ static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf) *(target_ulong *)ptr = (int32_t)tswap32(env->CP0_Cause); ptr += sizeof(target_ulong); *(target_ulong *)ptr = tswapl(env->PC[env->current_tc]); *(target_ulong *)ptr = tswapl(env->active_tc.PC); ptr += sizeof(target_ulong); if (env->CP0_Config1 & (1 << CP0C1_FP)) Loading Loading @@ -781,17 +781,17 @@ static void cpu_gdb_write_registers(CPUState *env, uint8_t *mem_buf, int size) ptr = mem_buf; for (i = 0; i < 32; i++) { env->gpr[env->current_tc][i] = tswapl(*(target_ulong *)ptr); env->active_tc.gpr[i] = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); } env->CP0_Status = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); env->LO[env->current_tc][0] = tswapl(*(target_ulong *)ptr); env->active_tc.LO[0] = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); env->HI[env->current_tc][0] = tswapl(*(target_ulong *)ptr); env->active_tc.HI[0] = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); env->CP0_BadVAddr = tswapl(*(target_ulong *)ptr); Loading @@ -800,7 +800,7 @@ static void cpu_gdb_write_registers(CPUState *env, uint8_t *mem_buf, int size) env->CP0_Cause = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); env->PC[env->current_tc] = tswapl(*(target_ulong *)ptr); env->active_tc.PC = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); if (env->CP0_Config1 & (1 << CP0C1_FP)) Loading Loading @@ -1003,7 +1003,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) #elif defined (TARGET_SH4) env->pc = addr; #elif defined (TARGET_MIPS) env->PC[env->current_tc] = addr; env->active_tc.PC = addr; #elif defined (TARGET_CRIS) env->pc = addr; #endif Loading Loading @@ -1040,7 +1040,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) #elif defined (TARGET_SH4) env->pc = addr; #elif defined (TARGET_MIPS) env->PC[env->current_tc] = addr; env->active_tc.PC = addr; #elif defined (TARGET_CRIS) env->pc = addr; #endif Loading hw/mips_mipssim.c +2 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ static void load_kernel (CPUState *env) if (kernel_size >= 0) { if ((entry & ~0x7fffffffULL) == 0x80000000) entry = (int32_t)entry; env->PC[env->current_tc] = entry; env->active_tc.PC = entry; } else { fprintf(stderr, "qemu: could not load kernel '%s'\n", loaderparams.kernel_filename); Loading Loading @@ -152,7 +152,7 @@ mips_mipssim_init (ram_addr_t ram_size, int vga_ram_size, cpu_register_physical_memory(0x1fc00000LL, bios_size, bios_offset | IO_MEM_ROM); /* We have a boot vector start address. */ env->PC[env->current_tc] = (target_long)(int32_t)0xbfc00000; env->active_tc.PC = (target_long)(int32_t)0xbfc00000; } if (kernel_filename) { Loading hw/mips_r4k.c +1 −1 Original line number Diff line number Diff line Loading @@ -87,7 +87,7 @@ static void load_kernel (CPUState *env) if (kernel_size >= 0) { if ((entry & ~0x7fffffffULL) == 0x80000000) entry = (int32_t)entry; env->PC[env->current_tc] = entry; env->active_tc.PC = entry; } else { fprintf(stderr, "qemu: could not load kernel '%s'\n", loaderparams.kernel_filename); Loading linux-user/main.c +13 −13 Original line number Diff line number Diff line Loading @@ -1779,8 +1779,8 @@ void cpu_loop(CPUMIPSState *env) trapnr = cpu_mips_exec(env); switch(trapnr) { case EXCP_SYSCALL: syscall_num = env->gpr[env->current_tc][2] - 4000; env->PC[env->current_tc] += 4; syscall_num = env->active_tc.gpr[2] - 4000; env->active_tc.PC += 4; if (syscall_num >= sizeof(mips_syscall_args)) { ret = -ENOSYS; } else { Loading @@ -1789,7 +1789,7 @@ void cpu_loop(CPUMIPSState *env) abi_ulong arg5 = 0, arg6 = 0, arg7 = 0, arg8 = 0; nb_args = mips_syscall_args[syscall_num]; sp_reg = env->gpr[env->current_tc][29]; sp_reg = env->active_tc.gpr[29]; switch (nb_args) { /* these arguments are taken from the stack */ /* FIXME - what to do if get_user() fails? */ Loading @@ -1800,20 +1800,20 @@ void cpu_loop(CPUMIPSState *env) default: break; } ret = do_syscall(env, env->gpr[env->current_tc][2], env->gpr[env->current_tc][4], env->gpr[env->current_tc][5], env->gpr[env->current_tc][6], env->gpr[env->current_tc][7], ret = do_syscall(env, env->active_tc.gpr[2], env->active_tc.gpr[4], env->active_tc.gpr[5], env->active_tc.gpr[6], env->active_tc.gpr[7], arg5, arg6/*, arg7, arg8*/); } if ((unsigned int)ret >= (unsigned int)(-1133)) { env->gpr[env->current_tc][7] = 1; /* error flag */ env->active_tc.gpr[7] = 1; /* error flag */ ret = -ret; } else { env->gpr[env->current_tc][7] = 0; /* error flag */ env->active_tc.gpr[7] = 0; /* error flag */ } env->gpr[env->current_tc][2] = ret; env->active_tc.gpr[2] = ret; break; case EXCP_TLBL: case EXCP_TLBS: Loading Loading @@ -2566,9 +2566,9 @@ int main(int argc, char **argv) int i; for(i = 0; i < 32; i++) { env->gpr[env->current_tc][i] = regs->regs[i]; env->active_tc.gpr[i] = regs->regs[i]; } env->PC[env->current_tc] = regs->cp0_epc; env->active_tc.PC = regs->cp0_epc; } #elif defined(TARGET_SH4) { Loading Loading
cpu-exec.c +1 −1 Original line number Diff line number Diff line Loading @@ -197,7 +197,7 @@ static inline TranslationBlock *tb_find_fast(void) #elif defined(TARGET_MIPS) flags = env->hflags & (MIPS_HFLAG_TMASK | MIPS_HFLAG_BMASK); cs_base = 0; pc = env->PC[env->current_tc]; pc = env->active_tc.PC; #elif defined(TARGET_M68K) flags = (env->fpcr & M68K_FPCR_PREC) /* Bit 6 */ | (env->sr & SR_S) /* Bit 13 */ Loading
gdbstub.c +10 −10 Original line number Diff line number Diff line Loading @@ -704,17 +704,17 @@ static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf) ptr = mem_buf; for (i = 0; i < 32; i++) { *(target_ulong *)ptr = tswapl(env->gpr[env->current_tc][i]); *(target_ulong *)ptr = tswapl(env->active_tc.gpr[i]); ptr += sizeof(target_ulong); } *(target_ulong *)ptr = (int32_t)tswap32(env->CP0_Status); ptr += sizeof(target_ulong); *(target_ulong *)ptr = tswapl(env->LO[env->current_tc][0]); *(target_ulong *)ptr = tswapl(env->active_tc.LO[0]); ptr += sizeof(target_ulong); *(target_ulong *)ptr = tswapl(env->HI[env->current_tc][0]); *(target_ulong *)ptr = tswapl(env->active_tc.HI[0]); ptr += sizeof(target_ulong); *(target_ulong *)ptr = tswapl(env->CP0_BadVAddr); Loading @@ -723,7 +723,7 @@ static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf) *(target_ulong *)ptr = (int32_t)tswap32(env->CP0_Cause); ptr += sizeof(target_ulong); *(target_ulong *)ptr = tswapl(env->PC[env->current_tc]); *(target_ulong *)ptr = tswapl(env->active_tc.PC); ptr += sizeof(target_ulong); if (env->CP0_Config1 & (1 << CP0C1_FP)) Loading Loading @@ -781,17 +781,17 @@ static void cpu_gdb_write_registers(CPUState *env, uint8_t *mem_buf, int size) ptr = mem_buf; for (i = 0; i < 32; i++) { env->gpr[env->current_tc][i] = tswapl(*(target_ulong *)ptr); env->active_tc.gpr[i] = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); } env->CP0_Status = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); env->LO[env->current_tc][0] = tswapl(*(target_ulong *)ptr); env->active_tc.LO[0] = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); env->HI[env->current_tc][0] = tswapl(*(target_ulong *)ptr); env->active_tc.HI[0] = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); env->CP0_BadVAddr = tswapl(*(target_ulong *)ptr); Loading @@ -800,7 +800,7 @@ static void cpu_gdb_write_registers(CPUState *env, uint8_t *mem_buf, int size) env->CP0_Cause = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); env->PC[env->current_tc] = tswapl(*(target_ulong *)ptr); env->active_tc.PC = tswapl(*(target_ulong *)ptr); ptr += sizeof(target_ulong); if (env->CP0_Config1 & (1 << CP0C1_FP)) Loading Loading @@ -1003,7 +1003,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) #elif defined (TARGET_SH4) env->pc = addr; #elif defined (TARGET_MIPS) env->PC[env->current_tc] = addr; env->active_tc.PC = addr; #elif defined (TARGET_CRIS) env->pc = addr; #endif Loading Loading @@ -1040,7 +1040,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) #elif defined (TARGET_SH4) env->pc = addr; #elif defined (TARGET_MIPS) env->PC[env->current_tc] = addr; env->active_tc.PC = addr; #elif defined (TARGET_CRIS) env->pc = addr; #endif Loading
hw/mips_mipssim.c +2 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ static void load_kernel (CPUState *env) if (kernel_size >= 0) { if ((entry & ~0x7fffffffULL) == 0x80000000) entry = (int32_t)entry; env->PC[env->current_tc] = entry; env->active_tc.PC = entry; } else { fprintf(stderr, "qemu: could not load kernel '%s'\n", loaderparams.kernel_filename); Loading Loading @@ -152,7 +152,7 @@ mips_mipssim_init (ram_addr_t ram_size, int vga_ram_size, cpu_register_physical_memory(0x1fc00000LL, bios_size, bios_offset | IO_MEM_ROM); /* We have a boot vector start address. */ env->PC[env->current_tc] = (target_long)(int32_t)0xbfc00000; env->active_tc.PC = (target_long)(int32_t)0xbfc00000; } if (kernel_filename) { Loading
hw/mips_r4k.c +1 −1 Original line number Diff line number Diff line Loading @@ -87,7 +87,7 @@ static void load_kernel (CPUState *env) if (kernel_size >= 0) { if ((entry & ~0x7fffffffULL) == 0x80000000) entry = (int32_t)entry; env->PC[env->current_tc] = entry; env->active_tc.PC = entry; } else { fprintf(stderr, "qemu: could not load kernel '%s'\n", loaderparams.kernel_filename); Loading
linux-user/main.c +13 −13 Original line number Diff line number Diff line Loading @@ -1779,8 +1779,8 @@ void cpu_loop(CPUMIPSState *env) trapnr = cpu_mips_exec(env); switch(trapnr) { case EXCP_SYSCALL: syscall_num = env->gpr[env->current_tc][2] - 4000; env->PC[env->current_tc] += 4; syscall_num = env->active_tc.gpr[2] - 4000; env->active_tc.PC += 4; if (syscall_num >= sizeof(mips_syscall_args)) { ret = -ENOSYS; } else { Loading @@ -1789,7 +1789,7 @@ void cpu_loop(CPUMIPSState *env) abi_ulong arg5 = 0, arg6 = 0, arg7 = 0, arg8 = 0; nb_args = mips_syscall_args[syscall_num]; sp_reg = env->gpr[env->current_tc][29]; sp_reg = env->active_tc.gpr[29]; switch (nb_args) { /* these arguments are taken from the stack */ /* FIXME - what to do if get_user() fails? */ Loading @@ -1800,20 +1800,20 @@ void cpu_loop(CPUMIPSState *env) default: break; } ret = do_syscall(env, env->gpr[env->current_tc][2], env->gpr[env->current_tc][4], env->gpr[env->current_tc][5], env->gpr[env->current_tc][6], env->gpr[env->current_tc][7], ret = do_syscall(env, env->active_tc.gpr[2], env->active_tc.gpr[4], env->active_tc.gpr[5], env->active_tc.gpr[6], env->active_tc.gpr[7], arg5, arg6/*, arg7, arg8*/); } if ((unsigned int)ret >= (unsigned int)(-1133)) { env->gpr[env->current_tc][7] = 1; /* error flag */ env->active_tc.gpr[7] = 1; /* error flag */ ret = -ret; } else { env->gpr[env->current_tc][7] = 0; /* error flag */ env->active_tc.gpr[7] = 0; /* error flag */ } env->gpr[env->current_tc][2] = ret; env->active_tc.gpr[2] = ret; break; case EXCP_TLBL: case EXCP_TLBS: Loading Loading @@ -2566,9 +2566,9 @@ int main(int argc, char **argv) int i; for(i = 0; i < 32; i++) { env->gpr[env->current_tc][i] = regs->regs[i]; env->active_tc.gpr[i] = regs->regs[i]; } env->PC[env->current_tc] = regs->cp0_epc; env->active_tc.PC = regs->cp0_epc; } #elif defined(TARGET_SH4) { Loading