This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] GAS: Add ECOFF `.aent' pseudo-op support


Hi Nick,

> > Assembly language documentation available describes the pseudo-op 
> > respectively as follows[1]:
> > 
> > "
> > .aent name, symno Sets an alternate entry point for the current
> >                   procedure.  Use this information when you want
> >                   to generate information for the debugger.  It must
> >                   appear inside an .ent/.end pair."
> > 
> > and[2]:
> > 
> > "
> > .aent name [,symno]
> >      Sets an alternate entry point for the current procedure.  Use this
> >      information when you want to generate information for the debugger.
> >      This directive must appear between a pair of .ent and .end directives.
> >      (The optional symno is for compiler use only.  It refers to a dense
> >      number in a .T file (symbol table).)"
> 
> Should this documentation be added to gas/doc/as.texinfo ?  Or failing that
> maybe names of the pseudo ops could be added along with the URLs in [1] and [2] ?

 We don't have a chapter covering the ECOFF/PDR set of directives for the 
MIPS target, and therefore I think adding `.aent' alone would make no 
sense without the context.  I'll try to cook up something, especially as 
we have a suitable chapter already for the Alpha target, which can be used 
as a starting point.

 Overall I think I'll have to review all MIPS pseudo-ops and document any 
that are missing; there are ones beyond the ECOFF/PDR set, such as all the 
PIC stuff.  People ask about them sometimes, so it would be good to have 
documentation included so that they don't have to be referred to old SGI 
books (which, BTW I'm told, have been regrettably taken offline recently).

 I'll have to properly document `-mdebug' too (already noted here 
<https://sourceware.org/ml/binutils/2003-07/msg00403.html>, sigh...).

> > 	gas/
> > 	* ecoff.c (ecoff_directive_ent, add_procedure): Handle `.aent'.
> > 	* config/obj-ecoff.c (obj_pseudo_table): Add "aent" entry.  
> > 	* config/obj-elf.c (ecoff_debug_pseudo_table): Likewise.
> > 	* testsuite/gas/mips/aent-2.d: New test.
> > 	* testsuite/gas/mips/aent-mdebug.d: New test.
> > 	* testsuite/gas/mips/aent-mdebug-2.d: New test.
> > 	* testsuite/gas/mips/mips.exp: Run the new tests.
>  
> Approved - please apply.

 Done, thanks for your review.

> Is this feature worth an entry in the gas/NEWS file ?  I am not an aficionado of
> the ECOFF format, so I am not sure of the significance of the feat

 Well, nobody noticed the breakage in ~15 years, so I wouldn't bother.  
The use of `.aent' is not frequent and even less so is `.mdebug'.  I only 
came across this issue by chance, in making a test case for another 
problem (just posted), which in turn I discovered by seeing yet another 
test case, for an R_MIPS_JALR relocation corner case, fail for IRIX.

 NB, I've missed it somehow that Alpha actually handles `.aent' already, 
with `s_ignore'.  I suspect it may make sense to do the same as with MIPS 
then, that is to set BSF_FUNCTION for the symbol requested, if for example 
the disassembler cares.  I'll defer it to another occasion though.  I seem 
to be the only to care as even the original MIPS part was done by myself:

commit 7c0fc5246b2cdaa6f12c8693732f05e440c125d0
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date:   Sat Dec 19 00:21:29 2009 +0000

("MIPS/GAS: Make .aent set function symbol type", reviewed: 
<https://sourceware.org/ml/binutils/2009-12/msg00173.html>).

  Maciej


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]