cpu.c (0f72559fbc9e1ae45aa8ebeed0443fe3a7a388a8) cpu.c (1f5c00cfdb8114c1e3a13426588ceb64f82c9ddb)
1/*
2 * QEMU ARM CPU
3 *
4 * Copyright (c) 2012 SUSE LINUX Products GmbH
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2

--- 108 unchanged lines hidden (view full) ---

117static void arm_cpu_reset(CPUState *s)
118{
119 ARMCPU *cpu = ARM_CPU(s);
120 ARMCPUClass *acc = ARM_CPU_GET_CLASS(cpu);
121 CPUARMState *env = &cpu->env;
122
123 acc->parent_reset(s);
124
1/*
2 * QEMU ARM CPU
3 *
4 * Copyright (c) 2012 SUSE LINUX Products GmbH
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2

--- 108 unchanged lines hidden (view full) ---

117static void arm_cpu_reset(CPUState *s)
118{
119 ARMCPU *cpu = ARM_CPU(s);
120 ARMCPUClass *acc = ARM_CPU_GET_CLASS(cpu);
121 CPUARMState *env = &cpu->env;
122
123 acc->parent_reset(s);
124
125 memset(env, 0, offsetof(CPUARMState, features));
125 memset(env, 0, offsetof(CPUARMState, end_reset_fields));
126
126 g_hash_table_foreach(cpu->cp_regs, cp_reg_reset, cpu);
127 g_hash_table_foreach(cpu->cp_regs, cp_reg_check_reset, cpu);
128
129 env->vfp.xregs[ARM_VFP_FPSID] = cpu->reset_fpsid;
130 env->vfp.xregs[ARM_VFP_MVFR0] = cpu->mvfr0;
131 env->vfp.xregs[ARM_VFP_MVFR1] = cpu->mvfr1;
132 env->vfp.xregs[ARM_VFP_MVFR2] = cpu->mvfr2;
133

--- 87 unchanged lines hidden (view full) ---

221#endif
222 set_flush_to_zero(1, &env->vfp.standard_fp_status);
223 set_flush_inputs_to_zero(1, &env->vfp.standard_fp_status);
224 set_default_nan_mode(1, &env->vfp.standard_fp_status);
225 set_float_detect_tininess(float_tininess_before_rounding,
226 &env->vfp.fp_status);
227 set_float_detect_tininess(float_tininess_before_rounding,
228 &env->vfp.standard_fp_status);
127 g_hash_table_foreach(cpu->cp_regs, cp_reg_reset, cpu);
128 g_hash_table_foreach(cpu->cp_regs, cp_reg_check_reset, cpu);
129
130 env->vfp.xregs[ARM_VFP_FPSID] = cpu->reset_fpsid;
131 env->vfp.xregs[ARM_VFP_MVFR0] = cpu->mvfr0;
132 env->vfp.xregs[ARM_VFP_MVFR1] = cpu->mvfr1;
133 env->vfp.xregs[ARM_VFP_MVFR2] = cpu->mvfr2;
134

--- 87 unchanged lines hidden (view full) ---

222#endif
223 set_flush_to_zero(1, &env->vfp.standard_fp_status);
224 set_flush_inputs_to_zero(1, &env->vfp.standard_fp_status);
225 set_default_nan_mode(1, &env->vfp.standard_fp_status);
226 set_float_detect_tininess(float_tininess_before_rounding,
227 &env->vfp.fp_status);
228 set_float_detect_tininess(float_tininess_before_rounding,
229 &env->vfp.standard_fp_status);
229 tlb_flush(s, 1);
230
231#ifndef CONFIG_USER_ONLY
232 if (kvm_enabled()) {
233 kvm_arm_reset_vcpu(cpu);
234 }
235#endif
236
237 hw_breakpoint_update_all(cpu);
238 hw_watchpoint_update_all(cpu);

--- 1393 unchanged lines hidden ---
230#ifndef CONFIG_USER_ONLY
231 if (kvm_enabled()) {
232 kvm_arm_reset_vcpu(cpu);
233 }
234#endif
235
236 hw_breakpoint_update_all(cpu);
237 hw_watchpoint_update_all(cpu);

--- 1393 unchanged lines hidden ---