OpenASIP
2.0
|
#include <LEDataSection.hh>
Public Member Functions | |
virtual | ~LEDataSection () |
virtual SectionType | type () const |
virtual void | writeValue (Word index, Word numOfMAUs, unsigned long value) |
virtual void | writeValue (Word index, Word numOfMAUs, signed long value) |
Public Member Functions inherited from TPEF::DataSection | |
virtual | ~DataSection () |
virtual Byte | byte (const Chunk *chunk) const |
virtual Byte | byte (Word offset) const |
virtual void | addByte (Byte aByte) |
virtual MinimumAddressableUnit | MAU (Word index) const |
virtual void | addMAU (MinimumAddressableUnit aMAU) |
virtual Word | length () const |
virtual void | setDataLength (Word length) |
virtual bool | isDataSection () const override |
Public Member Functions inherited from TPEF::UDataSection | |
virtual | ~UDataSection () |
Public Member Functions inherited from TPEF::RawSection | |
virtual bool | isChunkable () const |
virtual Chunk * | chunk (SectionOffset offset) const |
virtual void | assureInSection (SectionOffset offset) const |
virtual | ~RawSection () |
bool | empty () const |
virtual void | setLengthInMAUs (Word length) |
virtual Word | lengthInMAUs () const |
virtual Word | bytesToMAUs (Word byteCount) const |
virtual Word | MAUsToBytes (Word mauCount) const |
virtual Word | chunkToMAUIndex (const Chunk *chunk) const |
Word | referredChunkCount () const |
Chunk * | referredChunk (Word index) const |
bool | belongsToSection (const Chunk *chunk) const |
Public Member Functions inherited from TPEF::Section | |
virtual | ~Section () |
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 | isCodeSection () const |
Public Member Functions inherited from TPEF::SafePointable | |
virtual | ~SafePointable () |
Protected Member Functions | |
LEDataSection (bool init) | |
virtual Section * | clone () const |
Protected Member Functions inherited from TPEF::DataSection | |
DataSection (bool init) | |
virtual void | setByte (Word offset, Byte aByte) |
Protected Member Functions inherited from TPEF::UDataSection | |
UDataSection (bool init) | |
Protected Member Functions inherited from TPEF::RawSection | |
RawSection () | |
Protected Member Functions inherited from TPEF::Section | |
Section () | |
void | setFlagVLen () |
void | unsetFlagVLen () |
Protected Member Functions inherited from TPEF::SafePointable | |
SafePointable () | |
Static Private Attributes | |
static LEDataSection | proto_ |
Prototype instance of section. 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) |
Data section for initialized data in Little-Endian ADFs
Derives from big-endian data section so, this is extension of DataSection.
Definition at line 52 of file LEDataSection.hh.
|
virtual |
|
protected |
Constructor.
init | true if registeration is wanted |
Definition at line 51 of file LEDataSection.cc.
References TPEF::Section::registerSection(), TPEF::Section::unsetFlagNoBits(), and TPEF::Section::unsetFlagVLen().
Referenced by clone().
|
protectedvirtual |
Creates an instance of DataSection.
Reimplemented from TPEF::DataSection.
Definition at line 83 of file LEDataSection.cc.
References LEDataSection().
|
virtual |
Returns section's type.
Reimplemented from TPEF::DataSection.
Definition at line 73 of file LEDataSection.cc.
References TPEF::Section::ST_LEDATA.
|
virtual |
Writes signed value to data section.
For example, when we call writeValue(0, 4, -3) and MAU is 2bit start of data section will be 11 11 11 01.
MAUs are stored in data section like this: 00000011 000000011 00000011 00000001 (one MAU per byte)
If we call writeValue(0, 4, -3) and MAU is 10bit start of data section will be 1111111111 1111111111 1111111111 1111111101.
However the MAUs are stored in data section like this:
00000011 11111111|00000011 11111111|00000011 11111111|00000011 11111101| MAU1 | MAU2 | MAU3 | MAU4 |
index | MAU offset to section where to we write value. |
numOfMAUs | Number of MAUs that we use for storing value. |
value | Value to write. |
Reimplemented from TPEF::DataSection.
Definition at line 161 of file LEDataSection.cc.
References TPEF::Section::aSpace(), BYTE_BITWIDTH, TPEF::ASpaceElement::MAU(), TPEF::RawSection::MAUsToBytes(), and TPEF::DataSection::setByte().
|
virtual |
Writes unsigned value to data section.
Value is aligned to field as normal big endian value least significant bit is stored to last bit of last MAU.
If we call writeValue(0, 4, 3) and MAU is 2bit start of data section will be 00 00 00 11.
However the MAUs are stored in data section like this: 00000000|000000000|00000000|00000011 (one MAU per byte) MAU1 | MAU2 | MAU3 | MAU4
index | MAU offset to section where to we write value. |
numOfMAUs | Number of MAUs that we use for storing value. |
value | Value to write. |
Reimplemented from TPEF::DataSection.
Definition at line 107 of file LEDataSection.cc.
References TPEF::Section::aSpace(), BYTE_BITWIDTH, TPEF::ASpaceElement::MAU(), TPEF::RawSection::MAUsToBytes(), and TPEF::DataSection::setByte().
|
staticprivate |
Prototype instance of section.
Definition at line 66 of file LEDataSection.hh.