34#ifndef TTA_BINARY_ENCODING_HH
35#define TTA_BINARY_ENCODING_HH
95 const std::string& iTemp,
const std::string& dstUnit)
const;
117 virtual int width()
const;
int instructionFormatCount() const
void addInstructionFormat(InstructionFormat &format)
ImmediateControlField & immediateControlField() const
static const std::string OSNAME_TEMPLATE_NAME
int socketCodeTableCount() const
LImmDstRegisterField & longImmDstRegisterField(int index) const
std::vector< ImmediateSlotField * > ImmediateSlotContainer
Container type for ImmediateSlotFields.
static const std::string OSNAME_BEM
ObjectState name for binary encoding.
int moveSlotCount() const
bool hasSocketCodeTable(const std::string &name) const
void addLongImmDstRegisterField(LImmDstRegisterField &field)
void addSocketCodeTable(SocketCodeTable &table)
virtual int width() const
bool hasInstructionFormat(const std::string &name) const
int longestTemplateExtraBits() const
void removeMoveSlot(MoveSlot &slot)
virtual ObjectState * saveState() const
ImmediateSlotContainer immediateSlots_
A container for immediate slots.
virtual int childFieldCount() const
void deleteInstructionFormats()
int templateExtraBits(const TCEString &templateName) const
int immediateSlotCount() const
static const std::string OSNAME_TEMPLATE_EXTRA_BIT_COUNT
MoveSlot & moveSlot(int index) const
InstructionFormatContainer instructionFormats_
A container for instruction formats.
int longImmDstRegisterFieldCount() const
MoveSlotContainer moveSlots_
A container for move slots.
void removeLongImmDstRegisterField(LImmDstRegisterField &field)
LImmDstRegisterFieldContainer longImmDstRegFields_
A container for long immediate register fields.
void addMoveSlot(MoveSlot &slot)
virtual void loadState(const ObjectState *state)
std::map< TCEString, int > TemplateExtraBitCountMap
Template extra bit count container.
std::vector< InstructionFormat * > InstructionFormatContainer
Container type for InstructionFormats.
bool hasImmediateSlot(const std::string &name) const
std::vector< SocketCodeTable * > SocketCodeTableContainer
Container type for SocketCodeTables.
std::vector< MoveSlot * > MoveSlotContainer
Container type for MoveSlots.
void unsetImmediateControlField()
void addImmediateSlot(ImmediateSlotField &slot)
TemplateExtraBitCountMap extraTemplateBits_
Extra (padding) bits per instruction template.
void removeInstructionFormat(InstructionFormat &format)
void removeSocketCodeTable(SocketCodeTable &table)
void removeImmediateSlot(ImmediateSlotField &slot)
void deleteLongImmDstRegisterFields()
ImmediateSlotField & immediateSlot(int index) const
void setImmediateControlField(ImmediateControlField &field)
static const std::string OSNAME_FU_OPCODE
SocketCodeTableContainer socketCodes_
A container for socket code tables.
bool hasMoveSlot(const std::string &name) const
SocketCodeTable & socketCodeTable(int index) const
std::vector< LImmDstRegisterField * > LImmDstRegisterFieldContainer
Container type for LImmDstRegisterFields.
virtual ~BinaryEncoding()
bool hasImmediateControlField() const
static const std::string OSNAME_TEMPLATE_EXTRA_BITS
ImmediateControlField * immediateField_
The immediate control field.
virtual InstructionField & childField(int position) const
void deleteImmediateSlots()
InstructionFormat & instructionFormat(int index) const
void setTemplateExtraBits(const TCEString &templateName, int bitCount)