From 39429617e05721c7cee22b745311d60d6741c8fc Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 12 Jul 2005 06:57:26 +0000 Subject: [PATCH] Add support for emitting 64-bit integers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22399 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/ELFWriter.h | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/include/llvm/CodeGen/ELFWriter.h b/include/llvm/CodeGen/ELFWriter.h index 2afc3dd3f3f..b2b00efa627 100644 --- a/include/llvm/CodeGen/ELFWriter.h +++ b/include/llvm/CodeGen/ELFWriter.h @@ -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. -- 2.34.1