X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2FTableGen%2FCodeGenRegisters.h;h=8e9008c74aad69c3bac5e078008a1abda0752aff;hb=39376d08436dc7bc04daa0da84b0648f0cf48751;hp=2cd312941b80aeaad0fceb31f76d4bd6fd16794a;hpb=3da94aec4d429b2ba0f65fa040c33650cade196b;p=oota-llvm.git diff --git a/utils/TableGen/CodeGenRegisters.h b/utils/TableGen/CodeGenRegisters.h index 2cd312941b8..8e9008c74aa 100644 --- a/utils/TableGen/CodeGenRegisters.h +++ b/utils/TableGen/CodeGenRegisters.h @@ -17,6 +17,7 @@ #include #include +#include "llvm/CodeGen/ValueTypes.h" namespace llvm { class Record; @@ -32,12 +33,23 @@ namespace llvm { struct CodeGenRegisterClass { Record *TheDef; + std::string Namespace; std::vector Elements; + std::vector VTs; unsigned SpillSize; unsigned SpillAlignment; - std::string MethodDefinitions; + std::string MethodProtos, MethodBodies; const std::string &getName() const; + const std::vector &getValueTypes() const { return VTs; } + unsigned getNumValueTypes() const { return VTs.size(); } + + const MVT::ValueType getValueTypeNum(unsigned VTNum) const { + if (VTNum < VTs.size()) + return VTs[VTNum]; + assert(0 && "VTNum greater than number of ValueTypes in RegClass!"); + abort(); + } CodeGenRegisterClass(Record *R); };