Add support for emitting 64-bit integers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22399 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-07-12 06:57:26 +00:00
parent f5d507e905
commit 39429617e0

View File

@ -208,11 +208,38 @@ namespace llvm {
OutputBuffer.push_back((X >> 0) & 255); 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) { void outaddr(uint64_t X) {
if (!is64Bit) if (!is64Bit)
outword((unsigned)X); outword((unsigned)X);
else else
assert(0 && "Emission of 64-bit data not implemented yet!"); outxword(X);
} }
// fix functions - Replace an existing entry at an offset. // fix functions - Replace an existing entry at an offset.