qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-arm] [PATCH 0/4] softfloat: fix some helper definitions


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-arm] [PATCH 0/4] softfloat: fix some helper definitions
Date: Tue, 7 Nov 2017 11:52:27 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

On 11/04/2017 01:18 PM, Philippe Mathieu-Daudé wrote:
> On 11/04/2017 05:55 AM, Laurent Vivier wrote:
>> Le 03/11/2017 à 22:51, Philippe Mathieu-Daudé a écrit :
>>>> On 11/03/2017 05:26 PM, Laurent Vivier wrote:
>>>>> This series fixes some errors found by
>>>>> enabling USE_SOFTFLOAT_STRUCT_TYPES.
>>> [...]
>>>>
>>>> I'm getting those errors:
>>>>
>>>> $ make subdir-arm-softmmu -j2
>>>>
>>>> /source/qemu/migration/vmstate-types.c:430:5: error: conversion to
>>>> non-scalar type requested
>>>>      qemu_put_be64(f, float64_val(*v));
>>>>      ^~~~~~~~~~~~~
>>>> make: *** [migration/vmstate-types.o] Error 1
> [...]
>>
>> These series doesn't fix all the problems, only the easiest to fix...
>>
>> for this one, you need:
>>
>> diff --git a/migration/vmstate-types.c b/migration/vmstate-types.c
>> index 48184c380d..0c273d616a 100644
>> --- a/migration/vmstate-types.c
>> +++ b/migration/vmstate-types.c
>> @@ -425,7 +425,7 @@ static int get_float64(QEMUFile *f, void *pv, size_t
>> size,
>>  static int put_float64(QEMUFile *f, void *pv, size_t size, VMStateField
>> *field,
>>                         QJSON *vmdesc)
>>  {
>> -    uint64_t *v = pv;
>> +    float64 *v = pv;
>>
>>      qemu_put_be64(f, float64_val(*v));
>>      return 0;
> 
> If you respin with this one you can add my Reviewed-by + Tested-by.
> 
> Another error:
> 
> $ make subdir-aarch64-softmmu
> [...]
>   CC      target/arm/helper-a64.o
> /source/qemu/target/arm/helper-a64.c: In function ‘helper_simd_tbl’:
> /source/qemu/target/arm/helper-a64.c:162:38: error: incompatible type
> for argument 1 of ‘extract64’
>              uint64_t val = extract64(env->vfp.regs[elt], bitidx, 8);
>                                       ^~~
> In file included from /source/qemu/include/qemu/bitmap.h:16:0,
>                  from /source/qemu/include/hw/qdev-core.h:6,
>                  from /source/qemu/include/qom/cpu.h:23,
>                  from /source/qemu/target/arm/cpu-qom.h:23,
>                  from /source/qemu/target/arm/cpu.h:39,
>                  from /source/qemu/target/arm/helper-a64.c:21:
> /source/qemu/include/qemu/bitops.h:316:24: note: expected ‘uint64_t {aka
> long unsigned int}’ but argument is of type ‘float64 {aka struct
> <anonymous>}’
>  static inline uint64_t extract64(uint64_t value, int start, int length)
>                         ^~~~~~~~~
> make: *** [target/arm/helper-a64.o] Error 1

OK with:

- uint64_t val = extract64(env->vfp.regs[elt], bitidx, 8);
+ uint64_t val = extract64(float64_val(env->vfp.regs[elt]), bitidx, 8);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]