summaryrefslogtreecommitdiff
path: root/utils/TableGen/TableGen.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-12-02 17:43:43 +0000
committerChris Lattner <sabre@nondot.org>2002-12-02 17:43:43 +0000
commit9833493bae15d9b84cb1c5dc26a2d7bcc8aefebd (patch)
treea86ae653dc32e8f6104c6ccf7d53477aa4b7f66a /utils/TableGen/TableGen.cpp
parentf1e37d9d037bb5f7beb688822beddd2340cd871e (diff)
downloadllvm-9833493bae15d9b84cb1c5dc26a2d7bcc8aefebd.tar.gz
llvm-9833493bae15d9b84cb1c5dc26a2d7bcc8aefebd.tar.bz2
llvm-9833493bae15d9b84cb1c5dc26a2d7bcc8aefebd.tar.xz
Adjustments due to new FieldInit stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4852 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/TableGen.cpp')
-rw-r--r--utils/TableGen/TableGen.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/utils/TableGen/TableGen.cpp b/utils/TableGen/TableGen.cpp
index a66ffe6765..6f330ea818 100644
--- a/utils/TableGen/TableGen.cpp
+++ b/utils/TableGen/TableGen.cpp
@@ -236,7 +236,7 @@ static void PrintValue(Record *I, unsigned char *Ptr, const RecordVal &Val) {
unsigned Offset = 0;
for (unsigned f = 0, e = Vals.size(); f != e; ++f)
if (Vals[f].getPrefix()) {
- BitsInit *FieldInit = (BitsInit*)Vals[f].getValue();
+ BitsInit *FieldInitializer = (BitsInit*)Vals[f].getValue();
if (&Vals[f] == &Val) {
// Read the bits directly now...
for (unsigned i = 0, e = BI->getNumBits(); i != e; ++i)
@@ -246,13 +246,19 @@ static void PrintValue(Record *I, unsigned char *Ptr, const RecordVal &Val) {
// Scan through the field looking for bit initializers of the current
// variable...
- for (unsigned i = 0, e = FieldInit->getNumBits(); i != e; ++i)
+ for (unsigned i = 0, e = FieldInitializer->getNumBits(); i != e; ++i)
if (VarBitInit *VBI =
- dynamic_cast<VarBitInit*>(FieldInit->getBit(i))) {
- if (VBI->getVariable()->getName() == Val.getName())
- Value |= getMemoryBit(Ptr, Offset+i) << VBI->getBitNum();
+ dynamic_cast<VarBitInit*>(FieldInitializer->getBit(i))) {
+ TypedInit *TI = VBI->getVariable();
+ if (VarInit *VI = dynamic_cast<VarInit*>(TI)) {
+ if (VI->getName() == Val.getName())
+ Value |= getMemoryBit(Ptr, Offset+i) << VBI->getBitNum();
+ } else if (FieldInit *FI = dynamic_cast<FieldInit*>(TI)) {
+ // FIXME: implement this!
+ std::cerr << "FIELD INIT not implemented yet!\n";
+ }
}
- Offset += FieldInit->getNumBits();
+ Offset += FieldInitializer->getNumBits();
}
std::cout << "0x" << std::hex << Value << std::dec;