Revision 9143e598

b/target-sparc/cpu.h
127 127
#define FSR_FTT_MASK (FSR_FTT2 | FSR_FTT1 | FSR_FTT0)
128 128
#define FSR_FTT_IEEE_EXCP (1 << 14)
129 129
#define FSR_FTT_UNIMPFPOP (3 << 14)
130
#define FSR_FTT_SEQ_ERROR (4 << 14)
130 131
#define FSR_FTT_INVAL_FPR (6 << 14)
131 132

  
132 133
#define FSR_FCC1  (1<<11)
......
239 240
#else
240 241
#define GET_FSR32(env) (env->fsr)
241 242
#define PUT_FSR32(env, val) do { uint32_t _tmp = val;                   \
242
        env->fsr = (_tmp & 0xcfc1ffff) | (env->fsr & 0x000e0000);       \
243
        env->fsr = (_tmp & 0xcfc1dfff) | (env->fsr & 0x000e0000);       \
243 244
    } while (0)
244 245
#endif
245 246

  
b/target-sparc/translate.c
2602 2602
		    gen_op_stfsr();
2603 2603
		    gen_op_ldst(stf);
2604 2604
		    break;
2605
#if !defined(CONFIG_USER_ONLY)
2605 2606
		case 0x26: /* stdfq */
2606
		    goto nfpu_insn;
2607
		    if (!supervisor(dc))
2608
			goto priv_insn;
2609
		    if (gen_trap_ifnofpu(dc))
2610
			goto jmp_insn;
2611
		    goto nfq_insn;
2612
#endif
2607 2613
		case 0x27:
2608 2614
                    gen_op_load_fpr_DT0(DFPREG(rd));
2609 2615
		    gen_op_ldst(stdf);
......
2675 2681
    gen_op_fpexception_im(FSR_FTT_UNIMPFPOP);
2676 2682
    dc->is_br = 1;
2677 2683
    return;
2684
#if !defined(CONFIG_USER_ONLY)
2685
 nfq_insn:
2686
    save_state(dc);
2687
    gen_op_fpexception_im(FSR_FTT_SEQ_ERROR);
2688
    dc->is_br = 1;
2689
    return;
2690
#endif
2678 2691
#ifndef TARGET_SPARC64
2679 2692
 ncp_insn:
2680 2693
    save_state(dc);

Also available in: Unified diff