Commit 47ad35f16ae4b6b93cbfa238d51d4edc7dea90b5
1 parent
5f9981c7
Silence gcc warning about constant overflow
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5175 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
11 additions
and
3 deletions
target-sparc/cpu.h
... | ... | @@ -142,7 +142,15 @@ |
142 | 142 | #define FSR_FTT2 (1ULL << 16) |
143 | 143 | #define FSR_FTT1 (1ULL << 15) |
144 | 144 | #define FSR_FTT0 (1ULL << 14) |
145 | -#define FSR_FTT_MASK (FSR_FTT2 | FSR_FTT1 | FSR_FTT0) | |
145 | +//gcc warns about constant overflow for ~FSR_FTT_MASK | |
146 | +//#define FSR_FTT_MASK (FSR_FTT2 | FSR_FTT1 | FSR_FTT0) | |
147 | +#ifdef TARGET_SPARC64 | |
148 | +#define FSR_FTT_NMASK 0xfffffffffffe3fffULL | |
149 | +#define FSR_FTT_CEXC_NMASK 0xfffffffffffe3fe0ULL | |
150 | +#else | |
151 | +#define FSR_FTT_NMASK 0xfffe3fffULL | |
152 | +#define FSR_FTT_CEXC_NMASK 0xfffe3fe0ULL | |
153 | +#endif | |
146 | 154 | #define FSR_FTT_IEEE_EXCP (1ULL << 14) |
147 | 155 | #define FSR_FTT_UNIMPFPOP (3ULL << 14) |
148 | 156 | #define FSR_FTT_SEQ_ERROR (4ULL << 14) | ... | ... |
target-sparc/translate.c
... | ... | @@ -1602,7 +1602,7 @@ static inline void gen_op_fpexception_im(int fsr_flags) |
1602 | 1602 | { |
1603 | 1603 | TCGv r_const; |
1604 | 1604 | |
1605 | - tcg_gen_andi_tl(cpu_fsr, cpu_fsr, ~FSR_FTT_MASK); | |
1605 | + tcg_gen_andi_tl(cpu_fsr, cpu_fsr, FSR_FTT_NMASK); | |
1606 | 1606 | tcg_gen_ori_tl(cpu_fsr, cpu_fsr, fsr_flags); |
1607 | 1607 | r_const = tcg_const_i32(TT_FP_EXCP); |
1608 | 1608 | tcg_gen_helper_0_1(raise_exception, r_const); |
... | ... | @@ -1628,7 +1628,7 @@ static int gen_trap_ifnofpu(DisasContext *dc, TCGv r_cond) |
1628 | 1628 | |
1629 | 1629 | static inline void gen_op_clear_ieee_excp_and_FTT(void) |
1630 | 1630 | { |
1631 | - tcg_gen_andi_tl(cpu_fsr, cpu_fsr, ~(FSR_FTT_MASK | FSR_CEXC_MASK)); | |
1631 | + tcg_gen_andi_tl(cpu_fsr, cpu_fsr, FSR_FTT_CEXC_NMASK); | |
1632 | 1632 | } |
1633 | 1633 | |
1634 | 1634 | static inline void gen_clear_float_exceptions(void) | ... | ... |