Re: [FFmpeg-devel] [PATCH] checkasm/aarch64: fix tests returning a float

2017-07-05 Thread Matthieu Bouron
Le 6 juil. 2017 4:08 AM, "James Almer"  a écrit :

On 6/22/2017 5:35 AM, Matthieu Bouron wrote:
> On Wed, Jun 21, 2017 at 10:19:33PM +0200, Matthieu Bouron wrote:
>> On Wed, Jun 21, 2017 at 04:57:53PM -0300, James Almer wrote:
>>> On 6/19/2017 6:08 AM, Matthieu Bouron wrote:
 Avoids overriding v0 (which containins the result of the tested
 function) in checkasm_call_checked.

 Also properly calls checkasm_call_checked.
 ---
  tests/checkasm/aarch64/checkasm.S | 8 
  tests/checkasm/checkasm.h | 2 ++
  2 files changed, 6 insertions(+), 4 deletions(-)

 diff --git a/tests/checkasm/aarch64/checkasm.S
b/tests/checkasm/aarch64/checkasm.S
 index 53a2a478dc..75a9a56143 100644
 --- a/tests/checkasm/aarch64/checkasm.S
 +++ b/tests/checkasm/aarch64/checkasm.S
 @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
  moviv3.8h,  #0

  .macro check_reg_neon reg1, reg2
 -ldr q0,  [x9], #16
 -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
 -eor v0.16b, v0.16b, v1.16b
 -orr v3.16b, v3.16b, v0.16b
 +ldr q1,  [x9], #16
 +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
 +eor v1.16b, v1.16b, v2.16b
 +orr v3.16b, v3.16b, v1.16b
  .endm
  check_reg_neon  8,  9
  check_reg_neon  10, 11
 diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
 index 695d871220..5249669fba 100644
 --- a/tests/checkasm/checkasm.h
 +++ b/tests/checkasm/checkasm.h
 @@ -145,6 +145,8 @@ void checkasm_stack_clobber(uint64_t clobber, ...);
  void checkasm_checked_call(void *func, ...);
  #define declare_new(ret, ...) ret (*checked_call)(void *, int, int,
int, int, int, int, int, __VA_ARGS__)\
= (void *)checkasm_checked_call;
 +#define declare_new_float(ret, ...) ret (*checked_call)(void *, int,
int, int, int, int, int, int, __VA_ARGS__)\
 +  = (void *)checkasm_checked_call;
>>>
>>> Isn't this doing the same as the generic "#define declare_new_float"
>>> about 15 lines below? If declare_new_float() is no different than
>>> declare_new() for a given target, then just let the aforementioned check
>>> handle it.
>>
>> You are right (I missed this define), so this chunk is removed from the
>> patch.
>>
>>>
  #define CLOB (UINT64_C(0xdeadbeefdeadbeef))
  #define call_new(...) (checkasm_stack_clobber(CLOB,
CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,\

CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB),\

>>>
>>> Should be ok either way if tested (The only aarch64 FATE client using
>>> git head hasn't run in twenty days, so no way for me to check if this
>>> fixes the problem anyway).
>>
>> I tested on my Odroid-C2 and fate passes with this patch (otherwise it
>> fails on checkasm float_dsp.scalarproduct_float test).
>>
>> I've attached the updated patch. I'll push it in a few hours if there is
>> no objection.
>>
>> --
>> Matthieu B.
>
>> From ee4bd4fdb9ac01bd331a43222e9029f820bec4e5 Mon Sep 17 00:00:00 2001
>> From: Matthieu Bouron 
>> Date: Mon, 19 Jun 2017 10:55:28 +0200
>> Subject: [PATCH] checkasm/aarch64: fix tests returning a float
>>
>> Avoids overriding v0 (which containins the result of the tested
>> function) in checkasm_call_checked.
>> ---
>>  tests/checkasm/aarch64/checkasm.S | 8 
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/tests/checkasm/aarch64/checkasm.S b/tests/checkasm/aarch64/
checkasm.S
>> index 53a2a478dc..75a9a56143 100644
>> --- a/tests/checkasm/aarch64/checkasm.S
>> +++ b/tests/checkasm/aarch64/checkasm.S
>> @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
>>  moviv3.8h,  #0
>>
>>  .macro check_reg_neon reg1, reg2
>> -ldr q0,  [x9], #16
>> -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
>> -eor v0.16b, v0.16b, v1.16b
>> -orr v3.16b, v3.16b, v0.16b
>> +ldr q1,  [x9], #16
>> +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
>> +eor v1.16b, v1.16b, v2.16b
>> +orr v3.16b, v3.16b, v1.16b
>>  .endm
>>  check_reg_neon  8,  9
>>  check_reg_neon  10, 11
>> --
>> 2.13.1
>>
>
> Patch applied.
>
> Thanks.

Do you know if this needs to be done for arm as well? Fate is reporting
an error in fate-checkasm-float_dsp.

I added a fate-checkasm-sbrdsp target earlier today, so if that one also
fails on arm then it will mean it's highly likely the function with a
float return value is what's at fault.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


I will look into this in ~12 hours (as I am currently off).
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpe

Re: [FFmpeg-devel] [PATCH] checkasm/aarch64: fix tests returning a float

2017-07-05 Thread James Almer
On 6/22/2017 5:35 AM, Matthieu Bouron wrote:
> On Wed, Jun 21, 2017 at 10:19:33PM +0200, Matthieu Bouron wrote:
>> On Wed, Jun 21, 2017 at 04:57:53PM -0300, James Almer wrote:
>>> On 6/19/2017 6:08 AM, Matthieu Bouron wrote:
 Avoids overriding v0 (which containins the result of the tested
 function) in checkasm_call_checked.

 Also properly calls checkasm_call_checked.
 ---
  tests/checkasm/aarch64/checkasm.S | 8 
  tests/checkasm/checkasm.h | 2 ++
  2 files changed, 6 insertions(+), 4 deletions(-)

 diff --git a/tests/checkasm/aarch64/checkasm.S 
 b/tests/checkasm/aarch64/checkasm.S
 index 53a2a478dc..75a9a56143 100644
 --- a/tests/checkasm/aarch64/checkasm.S
 +++ b/tests/checkasm/aarch64/checkasm.S
 @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
  moviv3.8h,  #0
  
  .macro check_reg_neon reg1, reg2
 -ldr q0,  [x9], #16
 -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
 -eor v0.16b, v0.16b, v1.16b
 -orr v3.16b, v3.16b, v0.16b
 +ldr q1,  [x9], #16
 +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
 +eor v1.16b, v1.16b, v2.16b
 +orr v3.16b, v3.16b, v1.16b
  .endm
  check_reg_neon  8,  9
  check_reg_neon  10, 11
 diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
 index 695d871220..5249669fba 100644
 --- a/tests/checkasm/checkasm.h
 +++ b/tests/checkasm/checkasm.h
 @@ -145,6 +145,8 @@ void checkasm_stack_clobber(uint64_t clobber, ...);
  void checkasm_checked_call(void *func, ...);
  #define declare_new(ret, ...) ret (*checked_call)(void *, int, int, int, 
 int, int, int, int, __VA_ARGS__)\
= (void *)checkasm_checked_call;
 +#define declare_new_float(ret, ...) ret (*checked_call)(void *, int, int, 
 int, int, int, int, int, __VA_ARGS__)\
 +  = (void *)checkasm_checked_call;
>>>
>>> Isn't this doing the same as the generic "#define declare_new_float"
>>> about 15 lines below? If declare_new_float() is no different than
>>> declare_new() for a given target, then just let the aforementioned check
>>> handle it.
>>
>> You are right (I missed this define), so this chunk is removed from the
>> patch.
>>
>>>
  #define CLOB (UINT64_C(0xdeadbeefdeadbeef))
  #define call_new(...) 
 (checkasm_stack_clobber(CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,\

 CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB),\

>>>
>>> Should be ok either way if tested (The only aarch64 FATE client using
>>> git head hasn't run in twenty days, so no way for me to check if this
>>> fixes the problem anyway).
>>
>> I tested on my Odroid-C2 and fate passes with this patch (otherwise it
>> fails on checkasm float_dsp.scalarproduct_float test).
>>
>> I've attached the updated patch. I'll push it in a few hours if there is
>> no objection.
>>
>> -- 
>> Matthieu B.
> 
>> From ee4bd4fdb9ac01bd331a43222e9029f820bec4e5 Mon Sep 17 00:00:00 2001
>> From: Matthieu Bouron 
>> Date: Mon, 19 Jun 2017 10:55:28 +0200
>> Subject: [PATCH] checkasm/aarch64: fix tests returning a float
>>
>> Avoids overriding v0 (which containins the result of the tested
>> function) in checkasm_call_checked.
>> ---
>>  tests/checkasm/aarch64/checkasm.S | 8 
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/tests/checkasm/aarch64/checkasm.S 
>> b/tests/checkasm/aarch64/checkasm.S
>> index 53a2a478dc..75a9a56143 100644
>> --- a/tests/checkasm/aarch64/checkasm.S
>> +++ b/tests/checkasm/aarch64/checkasm.S
>> @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
>>  moviv3.8h,  #0
>>  
>>  .macro check_reg_neon reg1, reg2
>> -ldr q0,  [x9], #16
>> -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
>> -eor v0.16b, v0.16b, v1.16b
>> -orr v3.16b, v3.16b, v0.16b
>> +ldr q1,  [x9], #16
>> +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
>> +eor v1.16b, v1.16b, v2.16b
>> +orr v3.16b, v3.16b, v1.16b
>>  .endm
>>  check_reg_neon  8,  9
>>  check_reg_neon  10, 11
>> -- 
>> 2.13.1
>>
> 
> Patch applied.
> 
> Thanks.

Do you know if this needs to be done for arm as well? Fate is reporting
an error in fate-checkasm-float_dsp.

I added a fate-checkasm-sbrdsp target earlier today, so if that one also
fails on arm then it will mean it's highly likely the function with a
float return value is what's at fault.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] checkasm/aarch64: fix tests returning a float

2017-06-22 Thread Matthieu Bouron
On Wed, Jun 21, 2017 at 10:19:33PM +0200, Matthieu Bouron wrote:
> On Wed, Jun 21, 2017 at 04:57:53PM -0300, James Almer wrote:
> > On 6/19/2017 6:08 AM, Matthieu Bouron wrote:
> > > Avoids overriding v0 (which containins the result of the tested
> > > function) in checkasm_call_checked.
> > > 
> > > Also properly calls checkasm_call_checked.
> > > ---
> > >  tests/checkasm/aarch64/checkasm.S | 8 
> > >  tests/checkasm/checkasm.h | 2 ++
> > >  2 files changed, 6 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/tests/checkasm/aarch64/checkasm.S 
> > > b/tests/checkasm/aarch64/checkasm.S
> > > index 53a2a478dc..75a9a56143 100644
> > > --- a/tests/checkasm/aarch64/checkasm.S
> > > +++ b/tests/checkasm/aarch64/checkasm.S
> > > @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
> > >  moviv3.8h,  #0
> > >  
> > >  .macro check_reg_neon reg1, reg2
> > > -ldr q0,  [x9], #16
> > > -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
> > > -eor v0.16b, v0.16b, v1.16b
> > > -orr v3.16b, v3.16b, v0.16b
> > > +ldr q1,  [x9], #16
> > > +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
> > > +eor v1.16b, v1.16b, v2.16b
> > > +orr v3.16b, v3.16b, v1.16b
> > >  .endm
> > >  check_reg_neon  8,  9
> > >  check_reg_neon  10, 11
> > > diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
> > > index 695d871220..5249669fba 100644
> > > --- a/tests/checkasm/checkasm.h
> > > +++ b/tests/checkasm/checkasm.h
> > > @@ -145,6 +145,8 @@ void checkasm_stack_clobber(uint64_t clobber, ...);
> > >  void checkasm_checked_call(void *func, ...);
> > >  #define declare_new(ret, ...) ret (*checked_call)(void *, int, int, int, 
> > > int, int, int, int, __VA_ARGS__)\
> > >= (void *)checkasm_checked_call;
> > > +#define declare_new_float(ret, ...) ret (*checked_call)(void *, int, 
> > > int, int, int, int, int, int, __VA_ARGS__)\
> > > +  = (void *)checkasm_checked_call;
> > 
> > Isn't this doing the same as the generic "#define declare_new_float"
> > about 15 lines below? If declare_new_float() is no different than
> > declare_new() for a given target, then just let the aforementioned check
> > handle it.
> 
> You are right (I missed this define), so this chunk is removed from the
> patch.
> 
> > 
> > >  #define CLOB (UINT64_C(0xdeadbeefdeadbeef))
> > >  #define call_new(...) 
> > > (checkasm_stack_clobber(CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,\
> > >
> > > CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB),\
> > > 
> > 
> > Should be ok either way if tested (The only aarch64 FATE client using
> > git head hasn't run in twenty days, so no way for me to check if this
> > fixes the problem anyway).
> 
> I tested on my Odroid-C2 and fate passes with this patch (otherwise it
> fails on checkasm float_dsp.scalarproduct_float test).
> 
> I've attached the updated patch. I'll push it in a few hours if there is
> no objection.
> 
> -- 
> Matthieu B.

> From ee4bd4fdb9ac01bd331a43222e9029f820bec4e5 Mon Sep 17 00:00:00 2001
> From: Matthieu Bouron 
> Date: Mon, 19 Jun 2017 10:55:28 +0200
> Subject: [PATCH] checkasm/aarch64: fix tests returning a float
> 
> Avoids overriding v0 (which containins the result of the tested
> function) in checkasm_call_checked.
> ---
>  tests/checkasm/aarch64/checkasm.S | 8 
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/checkasm/aarch64/checkasm.S 
> b/tests/checkasm/aarch64/checkasm.S
> index 53a2a478dc..75a9a56143 100644
> --- a/tests/checkasm/aarch64/checkasm.S
> +++ b/tests/checkasm/aarch64/checkasm.S
> @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
>  moviv3.8h,  #0
>  
>  .macro check_reg_neon reg1, reg2
> -ldr q0,  [x9], #16
> -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
> -eor v0.16b, v0.16b, v1.16b
> -orr v3.16b, v3.16b, v0.16b
> +ldr q1,  [x9], #16
> +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
> +eor v1.16b, v1.16b, v2.16b
> +orr v3.16b, v3.16b, v1.16b
>  .endm
>  check_reg_neon  8,  9
>  check_reg_neon  10, 11
> -- 
> 2.13.1
> 

Patch applied.

Thanks.

-- 
Matthieu B.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] checkasm/aarch64: fix tests returning a float

2017-06-21 Thread Matthieu Bouron
On Wed, Jun 21, 2017 at 04:57:53PM -0300, James Almer wrote:
> On 6/19/2017 6:08 AM, Matthieu Bouron wrote:
> > Avoids overriding v0 (which containins the result of the tested
> > function) in checkasm_call_checked.
> > 
> > Also properly calls checkasm_call_checked.
> > ---
> >  tests/checkasm/aarch64/checkasm.S | 8 
> >  tests/checkasm/checkasm.h | 2 ++
> >  2 files changed, 6 insertions(+), 4 deletions(-)
> > 
> > diff --git a/tests/checkasm/aarch64/checkasm.S 
> > b/tests/checkasm/aarch64/checkasm.S
> > index 53a2a478dc..75a9a56143 100644
> > --- a/tests/checkasm/aarch64/checkasm.S
> > +++ b/tests/checkasm/aarch64/checkasm.S
> > @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
> >  moviv3.8h,  #0
> >  
> >  .macro check_reg_neon reg1, reg2
> > -ldr q0,  [x9], #16
> > -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
> > -eor v0.16b, v0.16b, v1.16b
> > -orr v3.16b, v3.16b, v0.16b
> > +ldr q1,  [x9], #16
> > +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
> > +eor v1.16b, v1.16b, v2.16b
> > +orr v3.16b, v3.16b, v1.16b
> >  .endm
> >  check_reg_neon  8,  9
> >  check_reg_neon  10, 11
> > diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
> > index 695d871220..5249669fba 100644
> > --- a/tests/checkasm/checkasm.h
> > +++ b/tests/checkasm/checkasm.h
> > @@ -145,6 +145,8 @@ void checkasm_stack_clobber(uint64_t clobber, ...);
> >  void checkasm_checked_call(void *func, ...);
> >  #define declare_new(ret, ...) ret (*checked_call)(void *, int, int, int, 
> > int, int, int, int, __VA_ARGS__)\
> >= (void *)checkasm_checked_call;
> > +#define declare_new_float(ret, ...) ret (*checked_call)(void *, int, int, 
> > int, int, int, int, int, __VA_ARGS__)\
> > +  = (void *)checkasm_checked_call;
> 
> Isn't this doing the same as the generic "#define declare_new_float"
> about 15 lines below? If declare_new_float() is no different than
> declare_new() for a given target, then just let the aforementioned check
> handle it.

You are right (I missed this define), so this chunk is removed from the
patch.

> 
> >  #define CLOB (UINT64_C(0xdeadbeefdeadbeef))
> >  #define call_new(...) 
> > (checkasm_stack_clobber(CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,\
> >
> > CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB),\
> > 
> 
> Should be ok either way if tested (The only aarch64 FATE client using
> git head hasn't run in twenty days, so no way for me to check if this
> fixes the problem anyway).

I tested on my Odroid-C2 and fate passes with this patch (otherwise it
fails on checkasm float_dsp.scalarproduct_float test).

I've attached the updated patch. I'll push it in a few hours if there is
no objection.

-- 
Matthieu B.
>From ee4bd4fdb9ac01bd331a43222e9029f820bec4e5 Mon Sep 17 00:00:00 2001
From: Matthieu Bouron 
Date: Mon, 19 Jun 2017 10:55:28 +0200
Subject: [PATCH] checkasm/aarch64: fix tests returning a float

Avoids overriding v0 (which containins the result of the tested
function) in checkasm_call_checked.
---
 tests/checkasm/aarch64/checkasm.S | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tests/checkasm/aarch64/checkasm.S b/tests/checkasm/aarch64/checkasm.S
index 53a2a478dc..75a9a56143 100644
--- a/tests/checkasm/aarch64/checkasm.S
+++ b/tests/checkasm/aarch64/checkasm.S
@@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
 moviv3.8h,  #0
 
 .macro check_reg_neon reg1, reg2
-ldr q0,  [x9], #16
-uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
-eor v0.16b, v0.16b, v1.16b
-orr v3.16b, v3.16b, v0.16b
+ldr q1,  [x9], #16
+uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
+eor v1.16b, v1.16b, v2.16b
+orr v3.16b, v3.16b, v1.16b
 .endm
 check_reg_neon  8,  9
 check_reg_neon  10, 11
-- 
2.13.1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] checkasm/aarch64: fix tests returning a float

2017-06-21 Thread James Almer
On 6/19/2017 6:08 AM, Matthieu Bouron wrote:
> Avoids overriding v0 (which containins the result of the tested
> function) in checkasm_call_checked.
> 
> Also properly calls checkasm_call_checked.
> ---
>  tests/checkasm/aarch64/checkasm.S | 8 
>  tests/checkasm/checkasm.h | 2 ++
>  2 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/checkasm/aarch64/checkasm.S 
> b/tests/checkasm/aarch64/checkasm.S
> index 53a2a478dc..75a9a56143 100644
> --- a/tests/checkasm/aarch64/checkasm.S
> +++ b/tests/checkasm/aarch64/checkasm.S
> @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
>  moviv3.8h,  #0
>  
>  .macro check_reg_neon reg1, reg2
> -ldr q0,  [x9], #16
> -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
> -eor v0.16b, v0.16b, v1.16b
> -orr v3.16b, v3.16b, v0.16b
> +ldr q1,  [x9], #16
> +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
> +eor v1.16b, v1.16b, v2.16b
> +orr v3.16b, v3.16b, v1.16b
>  .endm
>  check_reg_neon  8,  9
>  check_reg_neon  10, 11
> diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
> index 695d871220..5249669fba 100644
> --- a/tests/checkasm/checkasm.h
> +++ b/tests/checkasm/checkasm.h
> @@ -145,6 +145,8 @@ void checkasm_stack_clobber(uint64_t clobber, ...);
>  void checkasm_checked_call(void *func, ...);
>  #define declare_new(ret, ...) ret (*checked_call)(void *, int, int, int, 
> int, int, int, int, __VA_ARGS__)\
>= (void *)checkasm_checked_call;
> +#define declare_new_float(ret, ...) ret (*checked_call)(void *, int, int, 
> int, int, int, int, int, __VA_ARGS__)\
> +  = (void *)checkasm_checked_call;

Isn't this doing the same as the generic "#define declare_new_float"
about 15 lines below? If declare_new_float() is no different than
declare_new() for a given target, then just let the aforementioned check
handle it.

>  #define CLOB (UINT64_C(0xdeadbeefdeadbeef))
>  #define call_new(...) 
> (checkasm_stack_clobber(CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,\
>
> CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB),\
> 

Should be ok either way if tested (The only aarch64 FATE client using
git head hasn't run in twenty days, so no way for me to check if this
fixes the problem anyway).
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] checkasm/aarch64: fix tests returning a float

2017-06-21 Thread Matthieu Bouron
On Mon, Jun 19, 2017 at 11:08:39AM +0200, Matthieu Bouron wrote:
> Avoids overriding v0 (which containins the result of the tested
> function) in checkasm_call_checked.
> 
> Also properly calls checkasm_call_checked.
> ---
>  tests/checkasm/aarch64/checkasm.S | 8 
>  tests/checkasm/checkasm.h | 2 ++
>  2 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/checkasm/aarch64/checkasm.S 
> b/tests/checkasm/aarch64/checkasm.S
> index 53a2a478dc..75a9a56143 100644
> --- a/tests/checkasm/aarch64/checkasm.S
> +++ b/tests/checkasm/aarch64/checkasm.S
> @@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
>  moviv3.8h,  #0
>  
>  .macro check_reg_neon reg1, reg2
> -ldr q0,  [x9], #16
> -uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
> -eor v0.16b, v0.16b, v1.16b
> -orr v3.16b, v3.16b, v0.16b
> +ldr q1,  [x9], #16
> +uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
> +eor v1.16b, v1.16b, v2.16b
> +orr v3.16b, v3.16b, v1.16b
>  .endm
>  check_reg_neon  8,  9
>  check_reg_neon  10, 11
> diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
> index 695d871220..5249669fba 100644
> --- a/tests/checkasm/checkasm.h
> +++ b/tests/checkasm/checkasm.h
> @@ -145,6 +145,8 @@ void checkasm_stack_clobber(uint64_t clobber, ...);
>  void checkasm_checked_call(void *func, ...);
>  #define declare_new(ret, ...) ret (*checked_call)(void *, int, int, int, 
> int, int, int, int, __VA_ARGS__)\
>= (void *)checkasm_checked_call;
> +#define declare_new_float(ret, ...) ret (*checked_call)(void *, int, int, 
> int, int, int, int, int, __VA_ARGS__)\
> +  = (void *)checkasm_checked_call;
>  #define CLOB (UINT64_C(0xdeadbeefdeadbeef))
>  #define call_new(...) 
> (checkasm_stack_clobber(CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,\
>
> CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB),\
> -- 
> 2.13.1
> 

Ping.


-- 
Matthieu B.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] checkasm/aarch64: fix tests returning a float

2017-06-19 Thread Matthieu Bouron
Avoids overriding v0 (which containins the result of the tested
function) in checkasm_call_checked.

Also properly calls checkasm_call_checked.
---
 tests/checkasm/aarch64/checkasm.S | 8 
 tests/checkasm/checkasm.h | 2 ++
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/tests/checkasm/aarch64/checkasm.S 
b/tests/checkasm/aarch64/checkasm.S
index 53a2a478dc..75a9a56143 100644
--- a/tests/checkasm/aarch64/checkasm.S
+++ b/tests/checkasm/aarch64/checkasm.S
@@ -112,10 +112,10 @@ function checkasm_checked_call, export=1
 moviv3.8h,  #0
 
 .macro check_reg_neon reg1, reg2
-ldr q0,  [x9], #16
-uzp1v1.2d,  v\reg1\().2d, v\reg2\().2d
-eor v0.16b, v0.16b, v1.16b
-orr v3.16b, v3.16b, v0.16b
+ldr q1,  [x9], #16
+uzp1v2.2d,  v\reg1\().2d, v\reg2\().2d
+eor v1.16b, v1.16b, v2.16b
+orr v3.16b, v3.16b, v1.16b
 .endm
 check_reg_neon  8,  9
 check_reg_neon  10, 11
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index 695d871220..5249669fba 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -145,6 +145,8 @@ void checkasm_stack_clobber(uint64_t clobber, ...);
 void checkasm_checked_call(void *func, ...);
 #define declare_new(ret, ...) ret (*checked_call)(void *, int, int, int, int, 
int, int, int, __VA_ARGS__)\
   = (void *)checkasm_checked_call;
+#define declare_new_float(ret, ...) ret (*checked_call)(void *, int, int, int, 
int, int, int, int, __VA_ARGS__)\
+  = (void *)checkasm_checked_call;
 #define CLOB (UINT64_C(0xdeadbeefdeadbeef))
 #define call_new(...) 
(checkasm_stack_clobber(CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,\
   
CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB,CLOB),\
-- 
2.13.1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel