]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
target-sparc: implement UA2005 rdhpstate and wrhpstate instructions
authorArtyom Tarasenko <atar4qemu@gmail.com>
Wed, 8 Jun 2016 12:14:36 +0000 (14:14 +0200)
committerArtyom Tarasenko <atar4qemu@gmail.com>
Wed, 18 Jan 2017 21:03:44 +0000 (22:03 +0100)
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
target/sparc/translate.c

index a40c974ccd9cc2dea90dfac48b93576297bb503b..399a8ac8dd844de9dc53848950558a2d048976f4 100644 (file)
@@ -3468,7 +3468,8 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn)
                 rs1 = GET_FIELD(insn, 13, 17);
                 switch (rs1) {
                 case 0: // hpstate
-                    // gen_op_rdhpstate();
+                    tcg_gen_ld_i64(cpu_dst, cpu_env,
+                                   offsetof(CPUSPARCState, hpstate));
                     break;
                 case 1: // htstate
                     // gen_op_rdhtstate();
@@ -4592,7 +4593,9 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn)
                             tcg_gen_xor_tl(cpu_tmp0, cpu_src1, cpu_src2);
                             switch (rd) {
                             case 0: // hpstate
-                                // XXX gen_op_wrhpstate();
+                                tcg_gen_st_i64(cpu_tmp0, cpu_env,
+                                               offsetof(CPUSPARCState,
+                                                        hpstate));
                                 save_state(dc);
                                 gen_op_next_insn();
                                 tcg_gen_exit_tb(0);