* Add option to read isLittleEndianEncoding for InstrInfo classes
[oota-llvm.git] / utils / TableGen / CodeGenTarget.cpp
index 4c882ad5557423030913c4788448ce828c7e3fbb..3680f197c4913ff4c5c418f37b614d9faf82edf7 100644 (file)
@@ -188,6 +188,7 @@ void CodeGenTarget::ReadInstructions() const {
 }
 
 /// getPHIInstruction - Return the designated PHI instruction.
+///
 const CodeGenInstruction &CodeGenTarget::getPHIInstruction() const {
   Record *PHI = getInstructionSet()->getValueAsDef("PHIInst");
   std::map<std::string, CodeGenInstruction>::const_iterator I =
@@ -197,6 +198,13 @@ const CodeGenInstruction &CodeGenTarget::getPHIInstruction() const {
   return I->second;
 }
 
+/// isLittleEndianEncoding - Return whether this target encodes its instruction
+/// in little-endian format, i.e. bits laid out in the order [0..n]
+///
+bool CodeGenTarget::isLittleEndianEncoding() const {
+  return getInstructionSet()->getValueAsBit("isLittleEndianEncoding");
+}
+
 CodeGenInstruction::CodeGenInstruction(Record *R, const std::string &AsmStr)
   : TheDef(R), AsmString(AsmStr) {
   Name      = R->getValueAsString("Name");
@@ -250,6 +258,7 @@ CodeGenInstruction::CodeGenInstruction(Record *R, const std::string &AsmStr)
 /// getOperandNamed - Return the index of the operand with the specified
 /// non-empty name.  If the instruction does not have an operand with the
 /// specified name, throw an exception.
+///
 unsigned CodeGenInstruction::getOperandNamed(const std::string &Name) const {
   assert(!Name.empty() && "Cannot search for operand with no name!");
   for (unsigned i = 0, e = OperandList.size(); i != e; ++i)