This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: request for assistance in understanding undocumented gas directives
- From: Daniel Wilkerson <daniel dot wilkerson at gmail dot com>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: Nicholas Clifton <nickc at redhat dot com>, Binutils <binutils at sourceware dot org>
- Date: Wed, 2 Jul 2014 13:05:57 -0700
- Subject: Re: request for assistance in understanding undocumented gas directives
- Authentication-results: sourceware.org; auth=none
- References: <CALzRTRnGBUYh-NQi+2--T0bNTA845911-Hg0EgL-aX=zRaGE6A at mail dot gmail dot com> <53B281E0 dot 5010906 at redhat dot com> <CAKOQZ8zwDC5uB9t9mXqEQY5ARTO3Mt=NiwJWz42R8pNiAFfHtg at mail dot gmail dot com>
Thanks. From p.7-5 and p.8-6 / table 8-1 (below) of
http://www.tik.ee.ethz.ch/education/lectures/TI1/materials/assemblylanguageprogdoc.pdf
it seems to indicate which registers are saved. I cannot tell however
if it actually performs said saving of the registers or merely
annotates that they somehow should be saved.
---- .mask
Sets a mask with a bit turned on for each general purpose register
that the current routine saved. Bit one corresponds to register $1.
The offset is the distance in bytes from the virtual frame pointer
where the registers are saved. The assembler saves higher
register numbers closer to the virtual frame pointer. Space should
be allocated for those registers appearing in the mask. If bit zero is
set it is assumed that space is allocated for all 31 registers
regardless of whether they appear in the mask. (For use by
compilers).
On Tue, Jul 1, 2014 at 2:21 PM, Ian Lance Taylor <iant@google.com> wrote:
> On Tue, Jul 1, 2014 at 2:39 AM, Nicholas Clifton <nickc@redhat.com> wrote:
>>
>> The .fmask directive appears to be part of some kind of debug information
>> generation facility, although again documentation is severely lacking.
>
> As I recall, .mask and .fmask set the values that are stored in the
> .pdr section. See the -mpdr and -mno-pdr options. The .pdr section
> holds runtime procedure descriptors that are used for stack unwinding
> on some MIPS systems.
>
> I doubt anything uses this information any more.
>
> Ian