OpenASIP
2.0
|
#include <ASpaceSection.hh>
Public Member Functions | |
virtual | ~ASpaceSection () |
virtual SectionType | type () const |
bool | isUndefined (ASpaceElement *aSpace) const |
void | setUndefinedASpace (ASpaceElement *aSpace) |
ASpaceElement * | undefinedASpace () const |
Public Member Functions inherited from TPEF::Section | |
virtual | ~Section () |
virtual bool | isChunkable () const |
virtual Chunk * | chunk (SectionOffset offset) const |
bool | isProgramSection () const |
bool | isAuxSection () const |
virtual void | addElement (SectionElement *element) |
virtual void | setElement (Word index, SectionElement *element) |
SectionElement * | element (Word index) const |
Word | elementCount () const |
void | setFlagNoBits () |
void | unsetFlagNoBits () |
bool | noBits () const |
bool | vLen () const |
Byte | flags () const |
void | setFlags (Byte flagByte) |
void | setStartingAddress (AddressImage address) |
AddressImage | startingAddress () const |
void | setLink (const ReferenceManager::SafePointer *aLink) |
void | setLink (Section *aLink) |
Section * | link () const |
void | setASpace (const ReferenceManager::SafePointer *addrSpace) |
void | setASpace (ASpaceElement *addrSpace) |
ASpaceElement * | aSpace () const |
void | setName (const ReferenceManager::SafePointer *sectionName) |
void | setName (Chunk *sectionName) |
Chunk * | name () const |
virtual bool | isDataSection () const |
virtual bool | isCodeSection () const |
Public Member Functions inherited from TPEF::SafePointable | |
virtual | ~SafePointable () |
Protected Member Functions | |
ASpaceSection (bool init) | |
virtual Section * | clone () const |
Protected Member Functions inherited from TPEF::Section | |
Section () | |
void | setFlagVLen () |
void | unsetFlagVLen () |
Protected Member Functions inherited from TPEF::SafePointable | |
SafePointable () | |
Private Attributes | |
const ReferenceManager::SafePointer * | undefinedElement_ |
Undefined address space. This element is not allowed to be removed from section is recognized as special undefined address space. More... | |
Static Private Attributes | |
static ASpaceSection | proto_ |
Prototype instance. More... | |
Additional Inherited Members | |
Public Types inherited from TPEF::Section | |
enum | SectionType { ST_NULL = 0x00, ST_STRTAB = 0x01, ST_SYMTAB = 0x02, ST_DEBUG = 0x03, ST_RELOC = 0x04, ST_LINENO = 0x05, ST_NOTE = 0x06, ST_ADDRSP = 0x07, ST_MR = 0x0A, ST_CODE = 0x81, ST_DATA = 0x82, ST_UDATA = 0x83, ST_LEDATA = 0x84, ST_DUMMY = 0xff } |
enum | SectionFlag { SF_VLEN = 0x40, SF_NOBITS = 0x80 } |
Static Public Member Functions inherited from TPEF::Section | |
static Section * | createSection (SectionType type) |
static bool | isProgramSection (SectionType type) |
Static Protected Member Functions inherited from TPEF::Section | |
static void | registerSection (const Section *section) |
Address space section.
Definition at line 44 of file ASpaceSection.hh.
|
virtual |
|
protected |
Constructor.
init | true if registeration is wanted |
Definition at line 48 of file ASpaceSection.cc.
References TPEF::Section::registerSection(), TPEF::Section::setStartingAddress(), TPEF::Section::unsetFlagNoBits(), and TPEF::Section::unsetFlagVLen().
Referenced by clone().
|
protectedvirtual |
Creates an instance of class.
Implements TPEF::Section.
Definition at line 82 of file ASpaceSection.cc.
References ASpaceSection().
bool TPEF::ASpaceSection::isUndefined | ( | ASpaceElement * | aSpace | ) | const |
Checks if the parameter, is undefined address space.
aSpace | Element to check. |
Definition at line 93 of file ASpaceSection.cc.
References TPEF::Section::aSpace(), assert, TPEF::ReferenceManager::SafePointer::null, TPEF::ReferenceManager::SafePointer::pointer(), and undefinedElement_.
Referenced by TPEFDumper::addressSpaceString(), and TPEF::TPEFRelocSectionReader::finalize().
void TPEF::ASpaceSection::setUndefinedASpace | ( | ASpaceElement * | aSpace | ) |
Set undefined address space.
This method must be runned, before checking of undefined address space is allowed. If set is runned many times, it overrides earlier setings.
aSpace | Element to define as undefined address space. |
Definition at line 109 of file ASpaceSection.cc.
References TPEF::ASpaceElement::align(), TPEF::Section::aSpace(), assert, TPEF::ASpaceElement::MAU(), TPEF::ReferenceManager::SafePointer::replaceReference(), undefinedElement_, and TPEF::ASpaceElement::wordSize().
Referenced by TTAProgram::ProgramWriter::createBinary(), TPEF::TPEFASpaceSectionReader::readData(), TPEF::AOutReader::readData(), and MachineResourceManager::undefinedAddressSpace().
|
virtual |
Returns sections type.
Implements TPEF::Section.
Definition at line 72 of file ASpaceSection.cc.
References TPEF::Section::ST_ADDRSP.
ASpaceElement * TPEF::ASpaceSection::undefinedASpace | ( | ) | const |
Returns undefined address space element.
Definition at line 124 of file ASpaceSection.cc.
References TPEF::ReferenceManager::SafePointer::pointer(), and undefinedElement_.
Referenced by TTAProgram::ProgramWriter::createRelocSections().
|
staticprivate |
Prototype instance.
Definition at line 62 of file ASpaceSection.hh.
|
private |
Undefined address space. This element is not allowed to be removed from section is recognized as special undefined address space.
Definition at line 66 of file ASpaceSection.hh.
Referenced by isUndefined(), setUndefinedASpace(), and undefinedASpace().