wrwim insn fix (Paul Robinson)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2200 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/target-sparc/op.c b/target-sparc/op.c
index 7ea209e..1ec15d2 100644
--- a/target-sparc/op.c
+++ b/target-sparc/op.c
@@ -844,6 +844,15 @@
FORCE_RET();
}
+void OPPROTO op_wrwim(void)
+{
+#if NWINDOWS == 32
+ env->wim = T0;
+#else
+ env->wim = T0 & ((1 << NWINDOWS) - 1);
+#endif
+}
+
void OPPROTO op_rett(void)
{
helper_rett();
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index a522d77..455dd17 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -2005,7 +2005,7 @@
goto illegal_insn;
}
#else
- gen_op_movl_env_T0(offsetof(CPUSPARCState, wim));
+ gen_op_wrwim();
#endif
}
break;