Fix Sparc64 wrasr instructions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3297 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
a902d88664
commit
ee0b03fd85
@ -2043,9 +2043,11 @@ static void disas_sparc_insn(DisasContext * dc)
|
|||||||
break;
|
break;
|
||||||
#else
|
#else
|
||||||
case 0x2: /* V9 wrccr */
|
case 0x2: /* V9 wrccr */
|
||||||
|
gen_op_xor_T1_T0();
|
||||||
gen_op_wrccr();
|
gen_op_wrccr();
|
||||||
break;
|
break;
|
||||||
case 0x3: /* V9 wrasi */
|
case 0x3: /* V9 wrasi */
|
||||||
|
gen_op_xor_T1_T0();
|
||||||
gen_op_movl_env_T0(offsetof(CPUSPARCState, asi));
|
gen_op_movl_env_T0(offsetof(CPUSPARCState, asi));
|
||||||
break;
|
break;
|
||||||
case 0x6: /* V9 wrfprs */
|
case 0x6: /* V9 wrfprs */
|
||||||
@ -2066,6 +2068,7 @@ static void disas_sparc_insn(DisasContext * dc)
|
|||||||
case 0x13: /* Graphics Status */
|
case 0x13: /* Graphics Status */
|
||||||
if (gen_trap_ifnofpu(dc))
|
if (gen_trap_ifnofpu(dc))
|
||||||
goto jmp_insn;
|
goto jmp_insn;
|
||||||
|
gen_op_xor_T1_T0();
|
||||||
gen_op_movtl_env_T0(offsetof(CPUSPARCState, gsr));
|
gen_op_movtl_env_T0(offsetof(CPUSPARCState, gsr));
|
||||||
break;
|
break;
|
||||||
case 0x17: /* Tick compare */
|
case 0x17: /* Tick compare */
|
||||||
@ -2073,6 +2076,7 @@ static void disas_sparc_insn(DisasContext * dc)
|
|||||||
if (!supervisor(dc))
|
if (!supervisor(dc))
|
||||||
goto illegal_insn;
|
goto illegal_insn;
|
||||||
#endif
|
#endif
|
||||||
|
gen_op_xor_T1_T0();
|
||||||
gen_op_movtl_env_T0(offsetof(CPUSPARCState, tick_cmpr));
|
gen_op_movtl_env_T0(offsetof(CPUSPARCState, tick_cmpr));
|
||||||
gen_op_wrtick_cmpr();
|
gen_op_wrtick_cmpr();
|
||||||
break;
|
break;
|
||||||
@ -2081,6 +2085,7 @@ static void disas_sparc_insn(DisasContext * dc)
|
|||||||
if (!supervisor(dc))
|
if (!supervisor(dc))
|
||||||
goto illegal_insn;
|
goto illegal_insn;
|
||||||
#endif
|
#endif
|
||||||
|
gen_op_xor_T1_T0();
|
||||||
gen_op_wrstick();
|
gen_op_wrstick();
|
||||||
break;
|
break;
|
||||||
case 0x19: /* System tick compare */
|
case 0x19: /* System tick compare */
|
||||||
@ -2088,6 +2093,7 @@ static void disas_sparc_insn(DisasContext * dc)
|
|||||||
if (!supervisor(dc))
|
if (!supervisor(dc))
|
||||||
goto illegal_insn;
|
goto illegal_insn;
|
||||||
#endif
|
#endif
|
||||||
|
gen_op_xor_T1_T0();
|
||||||
gen_op_movtl_env_T0(offsetof(CPUSPARCState, stick_cmpr));
|
gen_op_movtl_env_T0(offsetof(CPUSPARCState, stick_cmpr));
|
||||||
gen_op_wrstick_cmpr();
|
gen_op_wrstick_cmpr();
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user