Add support for emitting 64-bit integers
authorChris Lattner <sabre@nondot.org>
Tue, 12 Jul 2005 06:57:26 +0000 (06:57 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 12 Jul 2005 06:57:26 +0000 (06:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22399 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/ELFWriter.h

index 2afc3dd3f3f37263fe78ab223cda15783cc79b96..b2b00efa627b3a85882d86e11fd4eae1a8b4fec2 100644 (file)
@@ -208,11 +208,38 @@ namespace llvm {
         OutputBuffer.push_back((X >>  0) & 255);
       }
     }
+    void outxword(uint64_t X) {
+      if (isLittleEndian) {
+        OutputBuffer.push_back((X >>  0) & 255);
+        OutputBuffer.push_back((X >>  8) & 255);
+        OutputBuffer.push_back((X >> 16) & 255);
+        OutputBuffer.push_back((X >> 24) & 255);
+        OutputBuffer.push_back((X >> 32) & 255);
+        OutputBuffer.push_back((X >> 40) & 255);
+        OutputBuffer.push_back((X >> 48) & 255);
+        OutputBuffer.push_back((X >> 56) & 255);
+      } else {
+        OutputBuffer.push_back((X >> 56) & 255);
+        OutputBuffer.push_back((X >> 48) & 255);
+        OutputBuffer.push_back((X >> 40) & 255);
+        OutputBuffer.push_back((X >> 32) & 255);
+        OutputBuffer.push_back((X >> 24) & 255);
+        OutputBuffer.push_back((X >> 16) & 255);
+        OutputBuffer.push_back((X >>  8) & 255);
+        OutputBuffer.push_back((X >>  0) & 255);
+      }
+    }
+    void outaddr32(unsigned X) {
+      outword(X);
+    }
+    void outaddr64(uint64_t X) {
+      outxword(X);
+    }
     void outaddr(uint64_t X) {
       if (!is64Bit)
         outword((unsigned)X);
       else
-        assert(0 && "Emission of 64-bit data not implemented yet!");
+        outxword(X);
     }
 
     // fix functions - Replace an existing entry at an offset.