target-ppc: Use correct precision for FPRF setting
Use correct FP precision when setting FPRF in FP conversion helpers instead of always assuming float64 precision. Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
f566c0474a
commit
9aeae8e16e
@ -109,6 +109,7 @@ void helper_compute_fprf_##tp(CPUPPCState *env, tp arg) \
|
||||
}
|
||||
|
||||
COMPUTE_FPRF(float16)
|
||||
COMPUTE_FPRF(float32)
|
||||
COMPUTE_FPRF(float64)
|
||||
|
||||
/* Floating-point invalid operations exception */
|
||||
@ -2652,8 +2653,7 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \
|
||||
xt.tfld = ttp##_snan_to_qnan(xt.tfld); \
|
||||
} \
|
||||
if (sfprf) { \
|
||||
helper_compute_fprf_float64(env, ttp##_to_float64(xt.tfld, \
|
||||
&env->fp_status)); \
|
||||
helper_compute_fprf_##ttp(env, xt.tfld); \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
|
@ -244,4 +244,5 @@ static inline void putVSR(int n, ppc_vsr_t *vsr, CPUPPCState *env)
|
||||
}
|
||||
|
||||
void helper_compute_fprf_float16(CPUPPCState *env, float16 arg);
|
||||
void helper_compute_fprf_float32(CPUPPCState *env, float32 arg);
|
||||
#endif /* PPC_INTERNAL_H */
|
||||
|
Loading…
Reference in New Issue
Block a user