summaryrefslogtreecommitdiff
path: root/target-arm
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2012-02-01 17:23:04 +0000
committerAndrzej Zaborowski <balrogg@gmail.com>2012-02-17 08:34:43 +0100
commita84fac1426acd56f6dff4f6023611c1aefe748de (patch)
tree35415977b4e56022874951179531a2f31c1987ca /target-arm
parent761c9eb0fafa59821e3ded9e4d5b33d5ab8a0e9e (diff)
target-arm/helper.c: tb_flush() on CPU reset
Since target-arm has some CPUState fields for which we take the approach of baking assumptions about them into translated code and then calling tb_flush() when the fields change, we must also tb_flush on CPU reset, because reset is a change of those fields. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
Diffstat (limited to 'target-arm')
-rw-r--r--target-arm/helper.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 34b226ecf0..4929372489 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -344,6 +344,11 @@ void cpu_reset(CPUARMState *env)
set_float_detect_tininess(float_tininess_before_rounding,
&env->vfp.standard_fp_status);
tlb_flush(env, 1);
+ /* Reset is a state change for some CPUState fields which we
+ * bake assumptions about into translated code, so we need to
+ * tb_flush().
+ */
+ tb_flush(env);
}
static int vfp_gdb_get_reg(CPUState *env, uint8_t *buf, int reg)