diff options
Diffstat (limited to 'target-sparc/op_helper.c')
-rw-r--r-- | target-sparc/op_helper.c | 9 |
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(); |