Commit c688a6eb185544444a50e07cade5166b2e23270e
1 parent
27908725
wrwim insn fix (Paul Robinson)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2200 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
10 additions
and
1 deletions
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; |