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

Message ID 20200210233558.83580-1-cbiesinger@google.com
State New, archived
Headers

Commit Message

Terekhov, Mikhail via Gdb-patches Feb. 10, 2020, 11:35 p.m. UTC
  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(+)
  

Comments

Luis Machado Feb. 11, 2020, 12:32 a.m. UTC | #1
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. UTC | #2
> 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.
  
Terekhov, Mikhail via Gdb-patches Feb. 11, 2020, 4:28 p.m. UTC | #3
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 */