Commit c688a6eb185544444a50e07cade5166b2e23270e

Authored by bellard
1 parent 27908725

wrwim insn fix (Paul Robinson)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2200 c046a42c-6fe2-441c-8c8c-71466251a162
target-sparc/op.c
@@ -844,6 +844,15 @@ void OPPROTO op_wrpsr(void) @@ -844,6 +844,15 @@ void OPPROTO op_wrpsr(void)
844 FORCE_RET(); 844 FORCE_RET();
845 } 845 }
846 846
  847 +void OPPROTO op_wrwim(void)
  848 +{
  849 +#if NWINDOWS == 32
  850 + env->wim = T0;
  851 +#else
  852 + env->wim = T0 & ((1 << NWINDOWS) - 1);
  853 +#endif
  854 +}
  855 +
847 void OPPROTO op_rett(void) 856 void OPPROTO op_rett(void)
848 { 857 {
849 helper_rett(); 858 helper_rett();
target-sparc/translate.c
@@ -2005,7 +2005,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -2005,7 +2005,7 @@ static void disas_sparc_insn(DisasContext * dc)
2005 goto illegal_insn; 2005 goto illegal_insn;
2006 } 2006 }
2007 #else 2007 #else
2008 - gen_op_movl_env_T0(offsetof(CPUSPARCState, wim)); 2008 + gen_op_wrwim();
2009 #endif 2009 #endif
2010 } 2010 }
2011 break; 2011 break;