Reflect MachineConstantPoolEntry changes.
authorEvan Cheng <evan.cheng@apple.com>
Tue, 12 Sep 2006 20:59:59 +0000 (20:59 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 12 Sep 2006 20:59:59 +0000 (20:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30277 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ExecutionEngine/JIT/JITEmitter.cpp

index 91ae641c2e6df7e3718afeb3d83ddaf3f8a5dc07..0fe82fd6c844608197012a6a32ff569a63a03418 100644 (file)
@@ -861,8 +861,11 @@ void JITEmitter::emitConstantPool(MachineConstantPool *MCP) {
   const std::vector<MachineConstantPoolEntry> &Constants = MCP->getConstants();
   if (Constants.empty()) return;
 
-  unsigned Size = Constants.back().Offset;
-  Size += TheJIT->getTargetData()->getTypeSize(Constants.back().Val->getType());
+  MachineConstantPoolEntry CPE = Constants.back();
+  unsigned Size = CPE.Offset;
+  const Type *Ty = CPE.isMachineConstantPoolEntry()
+    ? CPE.Val.ConstVal->getType() : CPE.Val.MachineCPVal->getType();
+  Size += TheJIT->getTargetData()->getTypeSize(Ty);
 
   ConstantPoolBase = allocateSpace(Size, 1 << MCP->getConstantPoolAlignment());
   ConstantPool = MCP;
@@ -872,7 +875,13 @@ void JITEmitter::emitConstantPool(MachineConstantPool *MCP) {
   // Initialize the memory for all of the constant pool entries.
   for (unsigned i = 0, e = Constants.size(); i != e; ++i) {
     void *CAddr = (char*)ConstantPoolBase+Constants[i].Offset;
-    TheJIT->InitializeMemory(Constants[i].Val, CAddr);
+    if (Constants[i].isMachineConstantPoolEntry()) {
+      // FIXME: add support to lower machine constant pool values into bytes!
+      std::cerr << "Initialize memory with machine specific constant pool entry"
+                << " has not been implemented!\n";
+      abort();
+    }
+    TheJIT->InitializeMemory(Constants[i].Val.ConstVal, CAddr);
   }
 }