Patchwork Add a comment for the ARM_F{0..7}_REGNUM registers

login
register
mail settings
Submitter Doug Evans via gdb-patches
Date Feb. 10, 2020, 11:35 p.m.
Message ID <20200210233558.83580-1-cbiesinger@google.com>
Download mbox | patch
Permalink /patch/37889/
State New
Headers show

Comments

Doug Evans via gdb-patches - Feb. 10, 2020, 11:35 p.m.
These are for the obsolete FPA architecture.

gdb/ChangeLog:

2020-02-10  Christian Biesinger  <cbiesinger@google.com>

	* arch/arm.h (enum gdb_regnum): Add comment for the FP0..7
	registers.

Change-Id: I6920616318ee637493d4ca12b91fa2ebcd103d76
---
 gdb/arch/arm.h | 1 +
 1 file changed, 1 insertion(+)
Luis Machado - Feb. 11, 2020, 12:32 a.m.
On 2/10/20 8:35 PM, Christian Biesinger via gdb-patches wrote:
> These are for the obsolete FPA architecture.
> 
> gdb/ChangeLog:
> 
> 2020-02-10  Christian Biesinger  <cbiesinger@google.com>
> 
> 	* arch/arm.h (enum gdb_regnum): Add comment for the FP0..7
> 	registers.
> 
> Change-Id: I6920616318ee637493d4ca12b91fa2ebcd103d76
> ---
>   gdb/arch/arm.h | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/gdb/arch/arm.h b/gdb/arch/arm.h
> index 13f030af82..2d9e87eb42 100644
> --- a/gdb/arch/arm.h
> +++ b/gdb/arch/arm.h
> @@ -31,6 +31,7 @@ enum gdb_regnum {
>     ARM_SP_REGNUM = 13,		/* Contains address of top of stack */
>     ARM_LR_REGNUM = 14,		/* address to return to from a function call */
>     ARM_PC_REGNUM = 15,		/* Contains program counter */
> +  /* F0..F7 are the fp registers for the (obsolete) FPA architecture.  */
>     ARM_F0_REGNUM = 16,		/* first floating point register */
>     ARM_F3_REGNUM = 19,		/* last floating point argument register */
>     ARM_F7_REGNUM = 23, 		/* last floating point register */
> 

This looks obvious enough. cc-ed Alan in case he has any thoughts.
Alan Hayward - Feb. 11, 2020, 9:20 a.m.
> On 11 Feb 2020, at 00:32, Luis Machado <luis.machado@linaro.org> wrote:

> 

> On 2/10/20 8:35 PM, Christian Biesinger via gdb-patches wrote:

>> These are for the obsolete FPA architecture.

>> gdb/ChangeLog:

>> 2020-02-10  Christian Biesinger  <cbiesinger@google.com>

>> 	* arch/arm.h (enum gdb_regnum): Add comment for the FP0..7

>> 	registers.

>> Change-Id: I6920616318ee637493d4ca12b91fa2ebcd103d76

>> ---

>>  gdb/arch/arm.h | 1 +

>>  1 file changed, 1 insertion(+)

>> diff --git a/gdb/arch/arm.h b/gdb/arch/arm.h

>> index 13f030af82..2d9e87eb42 100644

>> --- a/gdb/arch/arm.h

>> +++ b/gdb/arch/arm.h

>> @@ -31,6 +31,7 @@ enum gdb_regnum {

>>    ARM_SP_REGNUM = 13,		/* Contains address of top of stack */

>>    ARM_LR_REGNUM = 14,		/* address to return to from a function call */

>>    ARM_PC_REGNUM = 15,		/* Contains program counter */

>> +  /* F0..F7 are the fp registers for the (obsolete) FPA architecture.  */

>>    ARM_F0_REGNUM = 16,		/* first floating point register */

>>    ARM_F3_REGNUM = 19,		/* last floating point argument register */

>>    ARM_F7_REGNUM = 23, 		/* last floating point register */

> 

> This looks obvious enough. cc-ed Alan in case he has any thoughts.


I’m happy for that to be pushed as is. But...

My only problem here is the use of the word “obsolete”. If it’s obsolete, why are
we still supporting it?

Digging into it, I didn’t realise FPA was quite that old, but it dates back to around 1995.

Some good background information here (question was asked only 22 days ago!)
https://retrocomputing.stackexchange.com/questions/13400/history-of-arm-linux-and-fpa

GCC support for FPA was removed back in 2012, in GCC 4.8.
And GDB has a history of removing features after GCC support has been removed.

I’d suggest it’s worth someone ripping out FPA support entirely in a follow on set of
patches. This leaves us with vfpv2, vfpv3, xscale-iwmmxt and no float.

(cc-ing Richard who removed the FPA from GCC, on the off chance he has any objections).

Alan.
Doug Evans via gdb-patches - Feb. 11, 2020, 4:28 p.m.
On Tue, Feb 11, 2020 at 3:20 AM Alan Hayward <Alan.Hayward@arm.com> wrote:
> > On 11 Feb 2020, at 00:32, Luis Machado <luis.machado@linaro.org> wrote:
> >
> > On 2/10/20 8:35 PM, Christian Biesinger via gdb-patches wrote:
> >> These are for the obsolete FPA architecture.
> >> gdb/ChangeLog:
> >> 2020-02-10  Christian Biesinger  <cbiesinger@google.com>
> >>      * arch/arm.h (enum gdb_regnum): Add comment for the FP0..7
> >>      registers.
> >> Change-Id: I6920616318ee637493d4ca12b91fa2ebcd103d76
> >> ---
> >>  gdb/arch/arm.h | 1 +
> >>  1 file changed, 1 insertion(+)
> >> diff --git a/gdb/arch/arm.h b/gdb/arch/arm.h
> >> index 13f030af82..2d9e87eb42 100644
> >> --- a/gdb/arch/arm.h
> >> +++ b/gdb/arch/arm.h
> >> @@ -31,6 +31,7 @@ enum gdb_regnum {
> >>    ARM_SP_REGNUM = 13,               /* Contains address of top of stack */
> >>    ARM_LR_REGNUM = 14,               /* address to return to from a function call */
> >>    ARM_PC_REGNUM = 15,               /* Contains program counter */
> >> +  /* F0..F7 are the fp registers for the (obsolete) FPA architecture.  */
> >>    ARM_F0_REGNUM = 16,               /* first floating point register */
> >>    ARM_F3_REGNUM = 19,               /* last floating point argument register */
> >>    ARM_F7_REGNUM = 23,               /* last floating point register */
> >
> > This looks obvious enough. cc-ed Alan in case he has any thoughts.
>
> I’m happy for that to be pushed as is. But...

Thanks, pushed.

> My only problem here is the use of the word “obsolete”. If it’s obsolete, why are
> we still supporting it?
>
> Digging into it, I didn’t realise FPA was quite that old, but it dates back to around 1995.
>
> Some good background information here (question was asked only 22 days ago!)
> https://retrocomputing.stackexchange.com/questions/13400/history-of-arm-linux-and-fpa
>
> GCC support for FPA was removed back in 2012, in GCC 4.8.
> And GDB has a history of removing features after GCC support has been removed.
>
> I’d suggest it’s worth someone ripping out FPA support entirely in a follow on set of
> patches. This leaves us with vfpv2, vfpv3, xscale-iwmmxt and no float.
>
> (cc-ing Richard who removed the FPA from GCC, on the off chance he has any objections).

I'm not familiar enough with any of this to do this removal myself, fwiw.

(I just wanted to fix a netbsd-arm build error, heh. Actually
originally I just wanted to remove a deprecated function...)

Christian

Patch

diff --git a/gdb/arch/arm.h b/gdb/arch/arm.h
index 13f030af82..2d9e87eb42 100644
--- a/gdb/arch/arm.h
+++ b/gdb/arch/arm.h
@@ -31,6 +31,7 @@  enum gdb_regnum {
   ARM_SP_REGNUM = 13,		/* Contains address of top of stack */
   ARM_LR_REGNUM = 14,		/* address to return to from a function call */
   ARM_PC_REGNUM = 15,		/* Contains program counter */
+  /* F0..F7 are the fp registers for the (obsolete) FPA architecture.  */
   ARM_F0_REGNUM = 16,		/* first floating point register */
   ARM_F3_REGNUM = 19,		/* last floating point argument register */
   ARM_F7_REGNUM = 23, 		/* last floating point register */