diff mbox

target-i386/FPU: a misprint in helper_fistll_ST0

Message ID 2692911436348920@web2m.yandex.ru
State New
Headers show

Commit Message

Dmitry Poletaev July 8, 2015, 9:48 a.m. UTC
There is a misprint in the patch https://lists.gnu.org/archive/html/qemu-devel/2014-11/msg01657.html . It cause errors in guest work.
Here is the bugfix.

From: Dmitry Poletaev <poletaev-qemu@yandex.ru>
Signed-off-by: Dmitry Poletaev <poletaev-qemu@yandex.ru>
Reported-by: Kirill Batuzov <batuzovk@ispras.ru>

---
 target-i386/fpu_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Aurelien Jarno July 23, 2015, 9:59 p.m. UTC | #1
On 2015-07-08 12:48, Dmitry Poletaev wrote:
> There is a misprint in the patch https://lists.gnu.org/archive/html/qemu-devel/2014-11/msg01657.html . It cause errors in guest work.
> Here is the bugfix.
> 
> From: Dmitry Poletaev <poletaev-qemu@yandex.ru>
> Signed-off-by: Dmitry Poletaev <poletaev-qemu@yandex.ru>
> Reported-by: Kirill Batuzov <batuzovk@ispras.ru>
> 
> ---
>  target-i386/fpu_helper.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target-i386/fpu_helper.c b/target-i386/fpu_helper.c
> index fc25a03..fcf400d 100644
> --- a/target-i386/fpu_helper.c
> +++ b/target-i386/fpu_helper.c
> @@ -273,7 +273,7 @@ int64_t helper_fistll_ST0(CPUX86State *env)
>      old_exp_flags = get_float_exception_flags(&env->fp_status);
>      set_float_exception_flags(0, &env->fp_status);
>      
> -    val = floatx80_to_int32(ST0, &env->fp_status);
> +    val = floatx80_to_int64(ST0, &env->fp_status);
>      if (get_float_exception_flags(&env->fp_status) & float_flag_invalid) {
>          val = 0x8000000000000000ULL;
>      }

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>

Adding the maintainers of target-i386 in the loop so they might pick-up
the patch for 2.4.
diff mbox

Patch

diff --git a/target-i386/fpu_helper.c b/target-i386/fpu_helper.c
index fc25a03..fcf400d 100644
--- a/target-i386/fpu_helper.c
+++ b/target-i386/fpu_helper.c
@@ -273,7 +273,7 @@  int64_t helper_fistll_ST0(CPUX86State *env)
     old_exp_flags = get_float_exception_flags(&env->fp_status);
     set_float_exception_flags(0, &env->fp_status);
     
-    val = floatx80_to_int32(ST0, &env->fp_status);
+    val = floatx80_to_int64(ST0, &env->fp_status);
     if (get_float_exception_flags(&env->fp_status) & float_flag_invalid) {
         val = 0x8000000000000000ULL;
     }