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: request for assistance in understanding undocumented gas directives


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


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