aboutsummaryrefslogtreecommitdiff
path: root/target-sparc/op_helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'target-sparc/op_helper.c')
-rw-r--r--target-sparc/op_helper.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c
index 76af753fb8..1172b5a9eb 100644
--- a/target-sparc/op_helper.c
+++ b/target-sparc/op_helper.c
@@ -1590,6 +1590,8 @@ uint64_t helper_pack64(target_ulong high, target_ulong low)
void helper_ldfsr(void)
{
int rnd_mode;
+
+ PUT_FSR32(env, *((uint32_t *) &FT0));
switch (env->fsr & FSR_RD_MASK) {
case FSR_RD_NEAREST:
rnd_mode = float_round_nearest_even;
@@ -1608,7 +1610,12 @@ void helper_ldfsr(void)
set_float_rounding_mode(rnd_mode, &env->fp_status);
}
-void helper_debug()
+void helper_stfsr(void)
+{
+ *((uint32_t *) &FT0) = GET_FSR32(env);
+}
+
+void helper_debug(void)
{
env->exception_index = EXCP_DEBUG;
cpu_loop_exit();