Commit ee0b03fd85652ddd04d3499f03e6821732862308

Authored by blueswir1
1 parent a902d886

Fix Sparc64 wrasr instructions


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3297 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 6 additions and 0 deletions
target-sparc/translate.c
@@ -2043,9 +2043,11 @@ static void disas_sparc_insn(DisasContext * dc) @@ -2043,9 +2043,11 @@ static void disas_sparc_insn(DisasContext * dc)
2043 break; 2043 break;
2044 #else 2044 #else
2045 case 0x2: /* V9 wrccr */ 2045 case 0x2: /* V9 wrccr */
  2046 + gen_op_xor_T1_T0();
2046 gen_op_wrccr(); 2047 gen_op_wrccr();
2047 break; 2048 break;
2048 case 0x3: /* V9 wrasi */ 2049 case 0x3: /* V9 wrasi */
  2050 + gen_op_xor_T1_T0();
2049 gen_op_movl_env_T0(offsetof(CPUSPARCState, asi)); 2051 gen_op_movl_env_T0(offsetof(CPUSPARCState, asi));
2050 break; 2052 break;
2051 case 0x6: /* V9 wrfprs */ 2053 case 0x6: /* V9 wrfprs */
@@ -2066,6 +2068,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -2066,6 +2068,7 @@ static void disas_sparc_insn(DisasContext * dc)
2066 case 0x13: /* Graphics Status */ 2068 case 0x13: /* Graphics Status */
2067 if (gen_trap_ifnofpu(dc)) 2069 if (gen_trap_ifnofpu(dc))
2068 goto jmp_insn; 2070 goto jmp_insn;
  2071 + gen_op_xor_T1_T0();
2069 gen_op_movtl_env_T0(offsetof(CPUSPARCState, gsr)); 2072 gen_op_movtl_env_T0(offsetof(CPUSPARCState, gsr));
2070 break; 2073 break;
2071 case 0x17: /* Tick compare */ 2074 case 0x17: /* Tick compare */
@@ -2073,6 +2076,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -2073,6 +2076,7 @@ static void disas_sparc_insn(DisasContext * dc)
2073 if (!supervisor(dc)) 2076 if (!supervisor(dc))
2074 goto illegal_insn; 2077 goto illegal_insn;
2075 #endif 2078 #endif
  2079 + gen_op_xor_T1_T0();
2076 gen_op_movtl_env_T0(offsetof(CPUSPARCState, tick_cmpr)); 2080 gen_op_movtl_env_T0(offsetof(CPUSPARCState, tick_cmpr));
2077 gen_op_wrtick_cmpr(); 2081 gen_op_wrtick_cmpr();
2078 break; 2082 break;
@@ -2081,6 +2085,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -2081,6 +2085,7 @@ static void disas_sparc_insn(DisasContext * dc)
2081 if (!supervisor(dc)) 2085 if (!supervisor(dc))
2082 goto illegal_insn; 2086 goto illegal_insn;
2083 #endif 2087 #endif
  2088 + gen_op_xor_T1_T0();
2084 gen_op_wrstick(); 2089 gen_op_wrstick();
2085 break; 2090 break;
2086 case 0x19: /* System tick compare */ 2091 case 0x19: /* System tick compare */
@@ -2088,6 +2093,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -2088,6 +2093,7 @@ static void disas_sparc_insn(DisasContext * dc)
2088 if (!supervisor(dc)) 2093 if (!supervisor(dc))
2089 goto illegal_insn; 2094 goto illegal_insn;
2090 #endif 2095 #endif
  2096 + gen_op_xor_T1_T0();
2091 gen_op_movtl_env_T0(offsetof(CPUSPARCState, stick_cmpr)); 2097 gen_op_movtl_env_T0(offsetof(CPUSPARCState, stick_cmpr));
2092 gen_op_wrstick_cmpr(); 2098 gen_op_wrstick_cmpr();
2093 break; 2099 break;