]> xenbits.xensource.com Git - qemu-upstream-4.6-testing.git/commitdiff
SPARC: Fix LEON3 power down instruction
authorSebastian Huber <sebastian.huber@embedded-brains.de>
Wed, 27 Nov 2013 07:50:11 +0000 (08:50 +0100)
committerEdgar E. Iglesias <edgar.iglesias@xilinx.com>
Wed, 15 Jan 2014 05:37:33 +0000 (15:37 +1000)
Synchronize the program counter before the power down helper call
otherwise interrupts will return to the wrong context.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
target-sparc/translate.c

index dce64c3c4a7ddc31103452a775ca7e3700c79b24..6150b22f8f8118c66405c2c1e38598d1e88f3170 100644 (file)
@@ -3626,6 +3626,7 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn)
                                 if ((rd == 0x13) && (dc->def->features &
                                                      CPU_FEATURE_POWERDOWN)) {
                                     /* LEON3 power-down */
+                                    save_state(dc);
                                     gen_helper_power_down(cpu_env);
                                 }
                                 break;