Revision bb5529bb

b/target-sparc/helper.h
34 34
void TCG_HELPER_PROTO helper_st_asi(target_ulong addr, uint64_t val, int asi,
35 35
                                    int size);
36 36
void TCG_HELPER_PROTO helper_ldfsr(void);
37
void TCG_HELPER_PROTO helper_stfsr(void);
37 38
void TCG_HELPER_PROTO helper_check_ieee_exceptions(void);
38 39
void TCG_HELPER_PROTO helper_clear_float_exceptions(void);
39 40
void TCG_HELPER_PROTO helper_fabss(void);
b/target-sparc/op.c
285 285
#endif
286 286
#endif
287 287

  
288
void OPPROTO op_ldfsr(void)
289
{
290
    PUT_FSR32(env, *((uint32_t *) &FT0));
291
}
292

  
293
void OPPROTO op_stfsr(void)
294
{
295
    *((uint32_t *) &FT0) = GET_FSR32(env);
296
}
297

  
298 288
#ifndef TARGET_SPARC64
299 289
/* XXX: use another pointer for %iN registers to avoid slow wrapping
300 290
   handling ? */
b/target-sparc/op_helper.c
1590 1590
void helper_ldfsr(void)
1591 1591
{
1592 1592
    int rnd_mode;
1593

  
1594
    PUT_FSR32(env, *((uint32_t *) &FT0));
1593 1595
    switch (env->fsr & FSR_RD_MASK) {
1594 1596
    case FSR_RD_NEAREST:
1595 1597
        rnd_mode = float_round_nearest_even;
......
1608 1610
    set_float_rounding_mode(rnd_mode, &env->fp_status);
1609 1611
}
1610 1612

  
1611
void helper_debug()
1613
void helper_stfsr(void)
1614
{
1615
    *((uint32_t *) &FT0) = GET_FSR32(env);
1616
}
1617

  
1618
void helper_debug(void)
1612 1619
{
1613 1620
    env->exception_index = EXCP_DEBUG;
1614 1621
    cpu_loop_exit();
b/target-sparc/translate.c
4259 4259
                case 0x21:      /* load fsr */
4260 4260
                    gen_op_check_align_T0_3();
4261 4261
                    gen_op_ldst(ldf);
4262
                    gen_op_ldfsr();
4263 4262
                    tcg_gen_helper_0_0(helper_ldfsr);
4264 4263
                    break;
4265 4264
                case 0x22:      /* load quad fpreg */
......
4415 4414
#ifdef CONFIG_USER_ONLY
4416 4415
                    gen_op_check_align_T0_3();
4417 4416
#endif
4418
                    gen_op_stfsr();
4417
                    tcg_gen_helper_0_0(helper_stfsr);
4419 4418
                    gen_op_ldst(stf);
4420 4419
                    break;
4421 4420
                case 0x26:

Also available in: Unified diff