Message ID | 1290538431-13170-10-git-send-email-peter.maydell@linaro.org |
---|---|
State | New |
Headers | show |
On Tue, Nov 23, 2010 at 06:53:48PM +0000, Peter Maydell wrote: > VCVT of 16 bit fixed point to float should ignore the top 16 bits > of the source register. Cast to int16_t and friends rather than > int16 -- the former is guaranteed exactly 16 bits wide where the > latter is merely at least 16 bits wide (and so is usually 32 bits). > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Nathan Froyd <froydnj@codesourcery.com> -Nathan
diff --git a/target-arm/helper.c b/target-arm/helper.c index 356715c..6a891da 100644 --- a/target-arm/helper.c +++ b/target-arm/helper.c @@ -2556,7 +2556,7 @@ float32 VFP_HELPER(fcvts, d)(float64 x, CPUState *env) ftype VFP_HELPER(name##to, p)(ftype x, uint32_t shift, CPUState *env) \ { \ ftype tmp; \ - tmp = sign##int32_to_##ftype ((itype)vfp_##p##toi(x), \ + tmp = sign##int32_to_##ftype ((itype##_t)vfp_##p##toi(x), \ &env->vfp.fp_status); \ return ftype##_scalbn(tmp, -(int)shift, &env->vfp.fp_status); \ } \
VCVT of 16 bit fixed point to float should ignore the top 16 bits of the source register. Cast to int16_t and friends rather than int16 -- the former is guaranteed exactly 16 bits wide where the latter is merely at least 16 bits wide (and so is usually 32 bits). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- target-arm/helper.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)