Lines Matching defs:of

6 // This file is part of gold.
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 3 of the License, or
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // You should have received a copy of the GNU General Public License
37 // This file handles generation of the exception frame header that
46 // 1: The encoding of the pointer to the exception frames. This can
50 // 2: The encoding of the count of the number of FDE pointers in the
55 // 3: The encoding of the lookup table entries. Currently gcc's
57 // which means that the values are 4 byte offsets from the start of
61 // of the exception frame section (.eh_frame). This pointer is
62 // encoded as specified in the byte at offset 1 of the header (i.e.,
65 // If there is a lookup table, this is followed by the count of the
66 // number of FDE pointers, encoded as specified in the byte at offset
67 // 2 of the header (i.e., normally a 4 byte unsigned integer).
71 // Each entry represents an FDE. The first four bytes of each entry
73 // of each entry are an offset to the FDE data. The offsets are from
74 // the start of the exception frame header information. The entries
91 // Set the size of the exception frame header.
110 Eh_frame_hdr::do_write(Output_file* of)
116 this->do_sized_write<32, false>(of);
121 this->do_sized_write<32, true>(of);
126 this->do_sized_write<64, false>(of);
131 this->do_sized_write<64, true>(of);
143 Eh_frame_hdr::do_sized_write(Output_file* of)
147 unsigned char* const oview = of->get_output_view(off, oview_size);
152 // Write out a 4 byte PC relative offset to the address of the
164 // There are no FDEs, or we didn't recognize the format of the
165 // some of the .eh_frame sections, so we can't write out the
180 // We have the offsets of the FDEs in the .eh_frame section. We
182 // relocations which are, of course, target specific. This code
188 this->get_fde_addresses<size, big_endian>(of, &this->fde_offsets_,
212 of->write_output_view(off, oview_size, oview);
215 // Given the offset FDE_OFFSET of an FDE in the .eh_frame section, and
216 // the contents of the .eh_frame section EH_FRAME_CONTENTS, where the
217 // FDE's encoding is FDE_ENCODING, return the output address of the
293 // Given an array of FDE offsets in the .eh_frame section, return an
294 // array of offsets from the exception frame header to the FDE's
295 // output PC and to the output address of the FDE itself. We get the
301 Eh_frame_hdr::get_fde_addresses(Output_file* of,
309 const unsigned char* eh_frame_contents = of->get_input_view(eh_frame_offset,
323 of->free_input_view(eh_frame_offset, eh_frame_size, eh_frame_contents);
329 // offset of the CIE in OVIEW. OUTPUT_OFFSET is the offset of the
332 // ADDRESS is the virtual address of OVIEW. Record the FDE pc for
350 // Write the length of the FDE as a 32-bit word. The length word
351 // does not include the four bytes of the length word itself, but it
357 // difference between the address of the offset word itself and the
362 // Copy the rest of the FDE. Note that this is run before
410 // Set the output offset of a CIE. Return the new output offset.
447 // offset of the Eh_frame section within the output section. Round up
448 // the bytes to ADDRALIGN. ADDRESS is the virtual address of OVIEW.
470 // Write the length of the CIE as a 32-bit word. The length word
471 // does not include the four bytes of the length word itself.
541 // Return false if we ran off the end of the string.
559 // SYMBOLS is the contents of the symbol table section (size
561 // SYMBOL_NAMES_SIZE). RELOC_SHNDX is the index of a relocation
563 // RELOC_TYPE is the type of the reloc section if there is one, either
589 // If this is the marker section for the end of the data, then
592 // of unrecognized .eh_frame sections.
630 // The bulk of the implementation of add_ehframe_input_section.
652 // Get the contents of the reloc section if any.
656 // Keep track of which CIEs are at which offsets.
672 // We should only find a zero-length entry at the end of the
987 // start of the CIE. The offset we recorded for the CIE is 8 bytes
988 // after the start of the CIE--after the length and the zero tag.
1016 // The FDE should start with a reloc to the start of the code which
1026 // (regardless of whether the PC encoding is absolute, pc-relative,
1027 // or data-relative) instead of a pointer to the start of the code.
1084 // of the field depends on the PC encoding given in the CIE, but
1146 // Return the number of FDEs.
1218 Eh_frame::do_write(Output_file* of)
1222 unsigned char* const oview = of->get_output_view(offset, oview_size);
1250 of->write_output_view(offset, oview_size, oview);