[0/2,arm] Armv8-M Custom Datapath Extension.

Message ID 158133346517.10770.13178331135147729297.scripted-patch-series@arm.com
Headers show
Series
  • Armv8-M Custom Datapath Extension.
Related show

Message

Matthew Malcomson Feb. 10, 2020, 11:17 a.m.
Hello,

This patch series adds the Custom Datapath Extension to the arm backend.
This extension is currently only for the Thumb ISA.

The specification can be found here:
https://developer.arm.com/docs/ddi0607/latest

The patch is in two parts:
Part 1 enables the scalar instructions, which are predicated on *either*
Armv8-m with the floating point extension *or* Armv8.1-m with the MVE
extension.

Part 2 enables the vector instructions which are dependent on Armv8.1-m with
MVE.

Part 1 was worked on by both me and Stam Markianos-Wright.

The patch series has been successfully regression tested on arm-none-eabi and
arm-wince-pe.

Ok for master?

Regards,
MM

Entire patch series attached to cover letter.

Comments

Nick Clifton Feb. 10, 2020, 3:11 p.m. | #1
Hi Matthew,

> The patch is in two parts:

> Part 1 enables the scalar instructions, which are predicated on *either*

> Armv8-m with the floating point extension *or* Armv8.1-m with the MVE

> extension.

> 

> Part 2 enables the vector instructions which are dependent on Armv8.1-m with

> MVE.

> 

> Part 1 was worked on by both me and Stam Markianos-Wright.

> 

> The patch series has been successfully regression tested on arm-none-eabi and

> arm-wince-pe.

> 

> Ok for master?


Yes - please apply.

Cheers
  Nick
Christophe Lyon Feb. 10, 2020, 9:50 p.m. | #2
On Mon, 10 Feb 2020 at 16:11, Nick Clifton <nickc@redhat.com> wrote:
>

> Hi Matthew,

>

> > The patch is in two parts:

> > Part 1 enables the scalar instructions, which are predicated on *either*

> > Armv8-m with the floating point extension *or* Armv8.1-m with the MVE

> > extension.

> >

> > Part 2 enables the vector instructions which are dependent on Armv8.1-m with

> > MVE.

> >

> > Part 1 was worked on by both me and Stam Markianos-Wright.

> >

> > The patch series has been successfully regression tested on arm-none-eabi and

> > arm-wince-pe.

> >

> > Ok for master?

>

> Yes - please apply.

>


Hi,

One of these two patches causes a build failure for gas. I'm seeing:
../../gas/config/tc-arm.c: In function ‘vcx_handle_register_arguments’:
../../gas/config/tc-arm.c:21985:3: error: ‘for’ loop initial
declarations are only allowed in C99 mode
   for (unsigned i = 0; i < num_registers; i++)
   ^
../../gas/config/tc-arm.c:21985:3: note: use option -std=c99 or
-std=gnu99 to compile your code
make[4]: *** [config/tc-arm.o] Error 1

Can you fix it?
Thanks

Christophe

> Cheers

>   Nick

>

>
Matthew Malcomson Feb. 11, 2020, 10:51 a.m. | #3
On 10/02/2020 21:50, Christophe Lyon wrote:
> On Mon, 10 Feb 2020 at 16:11, Nick Clifton <nickc@redhat.com> wrote:

>>

>> Hi Matthew,

>>

>>> The patch is in two parts:

>>> Part 1 enables the scalar instructions, which are predicated on *either*

>>> Armv8-m with the floating point extension *or* Armv8.1-m with the MVE

>>> extension.

>>>

>>> Part 2 enables the vector instructions which are dependent on Armv8.1-m with

>>> MVE.

>>>

>>> Part 1 was worked on by both me and Stam Markianos-Wright.

>>>

>>> The patch series has been successfully regression tested on arm-none-eabi and

>>> arm-wince-pe.

>>>

>>> Ok for master?

>>

>> Yes - please apply.

>>

> 

> Hi,

> 

> One of these two patches causes a build failure for gas. I'm seeing:

> ../../gas/config/tc-arm.c: In function ‘vcx_handle_register_arguments’:

> ../../gas/config/tc-arm.c:21985:3: error: ‘for’ loop initial

> declarations are only allowed in C99 mode

>     for (unsigned i = 0; i < num_registers; i++)

>     ^

> ../../gas/config/tc-arm.c:21985:3: note: use option -std=c99 or

> -std=gnu99 to compile your code

> make[4]: *** [config/tc-arm.o] Error 1

> 

> Can you fix it?

> Thanks

> 

> Christophe


Wow!
I'm really sorry about that.

I've committed the fix as obvious, but I'd like to double check what 
went wrong here to ensure I avoid it in the future.

My best guess for the problem is that I compile with gcc 5 which has a 
default standard of gnu11, while you're testing with an earlier gcc 
which has a default standard of gnu89.

Does that fit? (i.e. are you using an older gcc?)

I will use `-std=gnu89` from now on.

Regards, and apologies again:
MM

> 

>> Cheers

>>    Nick

>>

>>
Christophe Lyon Feb. 12, 2020, 9:47 a.m. | #4
On Tue, 11 Feb 2020 at 11:51, Matthew Malcomson
<matthew.malcomson@arm.com> wrote:
>

> On 10/02/2020 21:50, Christophe Lyon wrote:

> > On Mon, 10 Feb 2020 at 16:11, Nick Clifton <nickc@redhat.com> wrote:

> >>

> >> Hi Matthew,

> >>

> >>> The patch is in two parts:

> >>> Part 1 enables the scalar instructions, which are predicated on *either*

> >>> Armv8-m with the floating point extension *or* Armv8.1-m with the MVE

> >>> extension.

> >>>

> >>> Part 2 enables the vector instructions which are dependent on Armv8.1-m with

> >>> MVE.

> >>>

> >>> Part 1 was worked on by both me and Stam Markianos-Wright.

> >>>

> >>> The patch series has been successfully regression tested on arm-none-eabi and

> >>> arm-wince-pe.

> >>>

> >>> Ok for master?

> >>

> >> Yes - please apply.

> >>

> >

> > Hi,

> >

> > One of these two patches causes a build failure for gas. I'm seeing:

> > ../../gas/config/tc-arm.c: In function ‘vcx_handle_register_arguments’:

> > ../../gas/config/tc-arm.c:21985:3: error: ‘for’ loop initial

> > declarations are only allowed in C99 mode

> >     for (unsigned i = 0; i < num_registers; i++)

> >     ^

> > ../../gas/config/tc-arm.c:21985:3: note: use option -std=c99 or

> > -std=gnu99 to compile your code

> > make[4]: *** [config/tc-arm.o] Error 1

> >

> > Can you fix it?

> > Thanks

> >

> > Christophe

>

> Wow!

> I'm really sorry about that.

>

> I've committed the fix as obvious, but I'd like to double check what

> went wrong here to ensure I avoid it in the future.

>

> My best guess for the problem is that I compile with gcc 5 which has a

> default standard of gnu11, while you're testing with an earlier gcc

> which has a default standard of gnu89.

>

> Does that fit? (i.e. are you using an older gcc?)

>

Yes, that CI loop is running under Ubuntu Trusty, which has gcc-4.8.

I'm not sure what's the oldest GCC version supported by binutils though.

Thanks

Christophe

> I will use `-std=gnu89` from now on.

>

> Regards, and apologies again:

> MM

>

> >

> >> Cheers

> >>    Nick

> >>

> >>

>